Haran 9 Опубликовано: 25 октября 2011 Рассказать Опубликовано: 25 октября 2011 (изменено) Довольно странно, почему этого нет в движке. Критерии [aviable] и [group] в подключаемых инклюдом tpl-файлах работают, а [category] - нет. Чтобы добавить такую возможность, нам придётся отредактировать engine/classes/templates.class.php, поэтому как обычно, предупреждаю, что внесение изменений в исходный код движка - это плохо и нарушает парадигму работы с фреймворком. Но, мне эта возможность была крайне необходима, поэтому: Находим: if (strpos ( $this->template, "[group=" ) !== false) { $this->template = preg_replace ( "#\[group=(.+?)\](.*?)\[/group\]#ies", "$this->check_group('\1', '\2')", $this->template ); } После добавляем: if (strpos ( $this->template, "[category=" ) !== false) { $this->template = preg_replace ( "#\[category=(.+?)\](.*?)\[/category\]#ies", "$this->check_cat('\1', '\2')", $this->template ); } if (strpos ( $this->template, "[not-category=" ) !== false) { $this->template = preg_replace ( "#\[not-category=(.+?)\](.*?)\[/not-category\]#ies", "$this->check_cat('\1', '\2', false)", $this->template ); } Находим: function load_file( $name, $include_file = "tpl" ) { Перед добавляем: function check_cat($categories, $block, $action = true) { global $cat_info, $category_id; $categories = explode( ',', $categories ); if( $action ) { if( !array_key_exists($category_id, $cat_info) || !in_array($category_id, $categories) ) return ""; } else { if( in_array($category_id, $categories) ) return ""; } $block = str_replace( '\"', '"', $block ); return $block; } Находим: if (strpos ( $template, "[group=" ) !== false) { $template = preg_replace ( "#\[group=(.+?)\](.*?)\[/group\]#ies", "$this->check_group('\1', '\2')", $template ); } После добавляем: if (strpos ( $template, "[not-category=" ) !== false) { $template = preg_replace ( "#\[not-category=(.+?)\](.*?)\[/not-category\]#ies", "$this->check_cat('\1', '\2', false)", $template ); } if (strpos ( $template, "[category=" ) !== false) { $template = preg_replace ( "#\[category=(.+?)\](.*?)\[/category\]#ies", "$this->check_cat('\1', '\2')", $template ); } Всё, теперь можно использовать [category] и [not-category] для подключаемых tpl файлов. Хорошо бы эта возможность была в движке в оригинальном комплекте поставки.Ррр... сделайте хотя бы в этом форуме возможность редактировать свои сообщения по истечении 5 минут... Изменено 25 октября 2011 пользователем Haran 1 Цитата Ссылка на сообщение Поделиться на других сайтах
STEREOFEEL 10 Опубликовано: 13 ноября 2011 Рассказать Опубликовано: 13 ноября 2011 Полезная штука и ооочень вовремя!!!!!!! Спасибо! Единственная мелочь неверное экранирование. Цитата Ссылка на сообщение Поделиться на других сайтах
Haran 9 Опубликовано: 15 ноября 2011 Рассказать Опубликовано: 15 ноября 2011 Автор Единственная мелочь неверное экранирование. Опа-чки... То ли форумный парсер сожрал, то ли я как-то криво скопировал. Пропустил и пост не могу отредактировать. Спасибо за внимательность. Вынесу-ка в отдельный файл: http://www.multiupload.com/GO6GQKIY1O Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.