if-else მნიშვნელობის შემოტანა dle -ზე 2025-07-18 |
ეს ხაკი იძლევა საშვალებას შაბლონში შემოიტანოთ მნიშვნელობა {if} და {else}. დაყენება. ვხსნით: \engine\classes\templates.class.php ვპოულობთ: Code if (strpos ( $template, "[not-group=" ) !== false) { $template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "\$this->check_group('\\1', '\\2', false)", $template ); } მის ქვევით ვსვავთ: Code if (strpos ( $this->template, "{if " ) !== false) { $this->template = preg_replace ( "#\\{if (.+?)\\}(.*?)\\{/if\\}#ies", "\$this->check_else('\\1', '\\2', false)", $this->template ); } ვპოულობთ: Code function get_real_time() { მის ზევით ვსვავთ ამას: Code 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 ან მოკლე აღწერაში ამის გაკეთება ძალიან მარტივია: Code {if $is_logged} თქვენ მომხმარებელი ხართ! {else} თქვენი სტუმარი ხართ {/if} ან გავაკეთოთ თხოვნდა დასარეგისტრირებლად: Code {if !$is_logged} დარეგისტრირდით საიტზე! {/if} |
სულ კომენტარები: 0 | |