Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Возможно ли сделать теги которые выводили б текст в определенный сезон года?

Возможно ли сделать теги которые выводили б текст в определенный сезон года?


     19.04.2014    Общие вопросы по PHP    1157

вопрос
Здравствуйте все. Подскажите как реализовать теги, к примеру [winter]текст[/winter] и что бы текст выводился когда настал декабрь и аж по февраль. Что бы можно было в любом tpl файле вставить и оно работало. Спасибо за помощь и внимание!

Ответил: rocksmart


engine/classes/templates.class.php

После строки
$this->template = file_get_contents( $this->dir . "/" . $tpl_name );

Вставить
if (strpos ( $this->template, "[season=" ) !== false) {
            $this->template = preg_replace_callback ( "#\\[(season)=(.+?)\\](.*?)\\[/season\\]#is", array( &$this, 'check_season'), $this->template );
        }

Добавить новую функцию в этом классе
function check_season( $matches=array() ) {
        global $_TIME;
        $seasons =  array(
        'winter' => array(12,1,2),
        'spring' => array(3,4,5),
        'summer' => array(6,7,8),
        'autumn' => array(9,10,11)
        );
        
        $month = date ( "n", $_TIME );
        $season = $seasons[$matches[2]];
        $block = $matches[3];
        if( isset($seasons[$matches[2]]) ) {
                if( (in_array($month,$seasons[$matches[2]])) ) return $block; else return '';
        } else {
                return $block;    
         }
    
    }

Использование:
[season=spring]весна[/season]       
[season=winter]зима[/season]
[season=summer]лето[/season]
[season=autumn]осень[/season]

Комментарии пользователей (3)

dj-avtosh
39

1479 | 390

dj-avtosh - 19 апреля 2014 15:45 - шашлычник

Если в любом tpl то надо везде его подключать) или в класс шаблонизатоа напрямую)

skype: elhan.isaev

Gameer
226

1124 | 396

Gameer - 19 апреля 2014 15:58 - Эксперт

dj-avtosh, можно только в main.tpl

Истина в противоречии.​

Gameer
226

1124 | 396

Gameer - 19 апреля 2014 16:51 - Эксперт

Спасибо большое! Очень помогли!

Истина в противоречии.​

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы