Yii

2011-04-20 21 views
6

'daki Markdown sınıfı nasıl kullanılır? Bir Markdown sınıfı CMarkdown görüyorum, ancak nasıl kullanırım?Yii

Hiçbir yerde örnek yoktur ve yöntemler kendiliğinden açıklayıcı değildir.

ben statik CHtml gibi kullanıyor musunuz veya Widget gibi garip?
Ya da bir Model gibi bir yerde init var mı?

cevap

7

Böyle bir görünümde bir widget olarak CMarkdown kullanabilirsiniz widget. Dizi, CMarkdown'un genel özellikleri için değerler içerir. Özellikler in the class reference belgelenmiştir.

CMarkdown Yii blog örnekte kullanılan ve siz this view file onu bulacaksınız.

+0

Daha da fazla çıktı tamponlaması ... Bu berbat. Yine de teşekkürler! Aradığım şey bu. – Rudie

6

Bu çalışır ve imo en kolay: Üst Denetleyicisi içinde

static function markdown($str) { 
    $md = new CMarkdown; 
    return $md->transform($str); 
} 

statik işlev. Muhtemelen Yii şekilde, ama basit: $ içeriği Markdown sözdizimi içeriyor zaman

$this->beginWidget('CMarkdown', array('purifyOutput'=>true)); 
echo $content; 
$this->endWidget(); 

o tarafından işlenecektir:

<?=self::markdown($post->body)?> 
+0

Doğru, Yii yolu bu olmayacak. Kullanımınız için, CMarkdownParser'ı değil, CMarkdown'u örneklemek en iyisidir, çünkü eskiden Markdown'a yönelik bir sarıcıdır ve ikincisi, CMarkdownParser'ı kullanan bir Yii çıktı ayrıştırıcısıdır. Sizin yönteminiz çalışırken, daha fazla yük getirir. ||| DÜZENLEME: tek fark, sizin yönteminizin de işaretlenen CSS'nin kaydedilmesiyle sonuçlanır. Bu senin arzun olup olmadığından emin değil. –

+0

Tepegöz Schmoverhead. 26 kat daha okunaklı ve sadece harflerin yarısı. Yii'yi uzun zaman önce terk ettim. [Go ROW!] (Https://github.com/rudiedirkx/Rudie-on-wheels/blob/master/example_app/views/blog/index.php#L19) – Rudie

+0

Statik bir yardımcı fonksiyonun işe yaramayacağını Sadece CMarkdown kullanımınızı tartışıyorsunuz, çünkü bu CMarkdownParser'a bir ağ geçidi (en azından, kullandığınız şekilde) çünkü CMarkdown'u tamamen atlayabilir ve sadece CMarkdownParser'ı başlatabilirsiniz. Tebrikler, kendi çerçevenizden bağımsız olarak. –