Smarty önbelleği Sorun!

3 Cevap php

i used smarty in my projects when i enable caching it’s not working . because i use this structure :

index.php - ekran (index.tpl)

index.tpl —- {include file=$page_center}

?module=product — $smarty->assign(”page_center” , “product.tpl”) ;

ok?

i’m in product.php so poduct.tpl must load in center of index.tpl . when i enable caching it’s still show default content not product.tpl ! when it’s disabled it’s working

what’s the problem ? how can i solve that ?! sorry about my bad english .

3 Cevap

Doğru, bu işi yapmak için her sayfa için benzersiz bir önbellek kimliğini kullanmak gerekir:

$cacheID = 'some_unique_value_for_this_page';
$smarty->assign('page_center', 'product.tpl');
$smarty->display('index.tpl', $cacheID);

Eğer söz verdi örnek göz önüne alındığında, bu önbellek kimliği için temel olarak sorgu dizesinden modül adını kullanmak mantıklı olabilir.

Smarty kılavuzda hakkında daha fazla bilgi var: http://www.smarty.net/manual/en/api.display.php

Eğer dinamik bir modül oluşturmanız gerekiyor!

function smarty_block_dynamic($param, $content, &$smarty) {
    return $content;
}

o zaman

$smarty = new Smarty
$smarty->register_block('dynamic',
                        'smarty_block_dynamic',
                        false /* this block wont be cached */);

ve tpl

Hello {$name}

this is your las update

{/dyamic}
{include file="some/dynamic/thing.tpl"}
{/dynamic}

Lütfen templates_c klasör tüm izinleri okuma ve yazma eğer önbelleği oluyor değilse bilmiş önbelleğe alma sorunu, yani çözmeye çalışmadan önce, kontrol edin