Nasıl Zend her sayfada bir dinamik altbilgi versinler?

3 Cevap php

In the app I'm building, I'd like to have a nice footer with data from the database (tags) and a contact-form. All the parts are scripted, but now I'd like to put them all together. The elements of the footer are the same for every page loaded, only the content is different.

Nasıl her denetleyicisi üzerinde çok fazla kod koymak zorunda kalmadan, bu yapabilirim?

3 Cevap

Kullan view helpers. Etiketleri gibi, dinamik bilgi her biri için bir yardımcı oluşturun. Ve o zaman görünümünde doğrudan çıktısı olabilir. Bu, kontrol gereksiz kod önler.

İşte etiketleri için bir örnek. : Içeren bir Tags.php dosyası oluşturun

class Zend_View_Helper_Tags extends Zend_View_Helper_Abstract {

    public function tags() {
        // build an array with all the tags and return it
    }
}

Ve şimdi üzerinde footer.phtml Bu gibi kullanabilirsiniz:

<?php $allTags = $this->tags();
foreach ($allTags as $tag) { ?>
    <a href="<?php echo $tag['url']; ?>"><?php echo $tag['name']; ?></a>
<?php } ?>

Sen partialLoop() temiz bir görünüm elde etmek için kullanabilirsiniz.

Bu farklılık hiç bir görünüm değişkene içerik atamak, ve sonra sadece bu görünümü değişkeni dayalı altbilgi'nın içeriği yazdırmak.

Bunu yapmanın en iyi yolu, iki aşamalı görüntüle Desen uygulamak için Zend_Layout bileşeni kullanmak için aslında. Ne demektir ki normal olarak düzenli görünüm oluşturmak olduğunu, ancak daha sonra bu çıkışı almak ve genel bir şablon içinde yerleştirin Zend_Layout var. Eğer altbilginizi nereye koyduğunuzu genel şablon olurdu. Zend_Layout Quick Start