დაყენება.
ვხსნით: \engine\classes\templates.class.php
ვპოულობთ:
if (strpos ( $template, "[not-group=" ) !== false) {
$template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "\$this->check_group('\\1', '\\2', false)", $template );
}
მის ქვევით ვსვავთ:
if (strpos ( $this->template, "{if " ) !== false) {
$this->template = preg_replace ( "#\\{if (.+?)\\}(.*?)\\{/if\\}#ies", "\$this->check_else('\\1', '\\2', false)", $this->template );
}
ვპოულობთ:
function get_real_time() {
მის ზევით ვსვავთ ამას:
function check_else($condition, $block)
{
global $GLOBALS;
extract($GLOBALS, EXTR_SKIP, "");
if(is_array($matches=explode("{else}",$block))) {
$block=$matches[0];
$else=$matches[1];
}
if(eval(("return $condition;"))) return str_replace( '\"', '"', $block );
return str_replace( '\"', '"', $else );
}
ამით დაყენება დასრულებულია მაგრამ ჩნდება კითხვა, როგორ გამოვიყენოთ ეს ხაკი?ამისთვის საჭიროა php თუნდაც მცირე ოდნა
მაგალითი:
მაგალითად ჩვენ გვინდა ვაჩვენოთ მომხმარებელი დარეგისტრირებულია თუ არა , მაგრამ ამის გაკეთება საჭიროა არა login.tpl-ში, არამედ main.tpl ან მოკლე აღწერაში
ამის გაკეთება ძალიან მარტივია:
{if $is_logged}
თქვენ მომხმარებელი ხართ!
{else}
თქვენი სტუმარი ხართ
{/if}
ან გავაკეთოთ თხოვნდა დასარეგისტრირებლად:
{if !$is_logged}
დარეგისტრირდით საიტზე!
{/if}
ტეგები
if-else მნიშვნელობის შემოტანა dle -ზე
+2
ავტორი:
admin ნანახია: 1649 | კომენტარი: 4 | Hacks | 18-04-2011, 20:35