Sadece Smarty Template (PHP) kullanarak bir sayfanın bir bölümünü önbelleğe nasıl?

4 Cevap php

Nasıl (gerçekten dinamik olan) içeriğinin küçük bir bölümü dışında bir Smarty şablon sayfadaki her şeyi önbelleğe mi?

4 Cevap

Lütfen "dinamik" içerik permütasyonların bir sonlu sayı varsa o permütasyon için ayrı şablonlar oluşturmak, ve fetch() Onları bazı değişken dayalı - Zed 'cevabını üzerine inşa Sıralama. Gibi bir şey:

<html>
<body>
<p>Common content would go here with other Smarty {$variables}.</p>

<p>You could then fetch other content using
{if $var1 eq 'foo'}
    {fetch file='/path/to/foo.tpl'}
{elseif $var1 eq 'bar'}
    {fetch file='/path/to/bar.tpl'}
{/if}
</body>
</html>

Eğer really dahil dosyaları önbelleğe istemiyorsanız, bu alt şablonlar önbelleğe sağlamak için dışlama mantığı çeşit kurmak gerekiyor.

Eğer potansiyel dinamik seçenekler sınırsız sayıda varsa Ancak, sadece PHP kodu HTML oluşturmak ve bir görünümü değişken olarak Smarty için geçmek zorunda kalabilirsiniz.

Sen ayrı bir şablon içine önbelleğe alınacak parti koymak, ve diğer şablondan alişverişine içeriği () getirebilir.

Sen Smarty en uç işlevini kullanabilirsiniz.

http://www.smarty.net/manual/en/language.function.insert.php

Sen denilen ve sayfadaki dinamik içeriği ekler alır bir işlev oluşturmak. Alışveriş sepetleri için iyi, örneğin.

{} Nocache bir şablon bölümünün önbelleğe devre dışı bırakmak için kullanılır. Her {nocache} eşleşen {/ nocache} ile eşleştirilmesi gerekir.

Örnek:

<html>    
<body>

<p>Some code, it will be cached</p>
{nocache}
<p>It won't be cached</p>
{/nocache}

</body>
</html>