Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Снова вопросы про шаблонизатор

Супер пользователь
Сообщений: 125
как в блоке создать несколько переменных
например в блоке template есть массив page. Вот сюда нужно добавить еще один массив который будет виден во всех детях
Разработчик
Сообщений: 605
Fort:
например в блоке template есть массив page. Вот сюда нужно добавить еще один массив который будет виден во всех детях

Вы не совсем правы. page - это алиас шаблонного блока template. А глобальный он просто потому, что просто задается в theme.html и все остальные обычно находятся в нем.

Так то с помощью методов System::site()->AddBlock() и System::site()->SetVar() никто не запрещает вам создавать новые блоки и переменные (или добавлять их в существующие блоки).
Супер пользователь
Сообщений: 125
Мартин: Мне нужно 2 алиаса в одном блоке. Это возможно ?

И еще вопрос по теме
Я написал функцию

<?
public function AddTemplatedBox( $title, $template_file, $va
rs = array() ){<br />
        <br />
        $this->BlockContents = $this->BlockContentBox->NewSubBlock(true, array('title' => $title), array(), '', ''
)->NewBlock('contents', true, true, 'content');<br />
        <br />
        $this->BlockContents->NewSubBlock(true, $vars, array(), $template_file);<br />
        <br />
        $this->content_block = true;<br />
    }
?>

в класс админки. При ajax переходах, шаблон инклюдится, но переменные в нем не заменяются(

-- Изменено "Fort": 06.05.2016 21:05 --

Что делать с шаблонизатором для аякс ?
Разработчик
Сообщений: 605
Fort:
Что делать с шаблонизатором для аякс ?

Зависит от целей. Нужна шаблонизация? Пользуйтесь. Не нужна (отдаете JSON или что-то еще свое) - не используйте.

С помощью функции инициализации модуля можно отключать шаблонизатор, когда он не нужен. Дальше просто сами рулите выводом. Например, если все же он нужен, то сами его инициализируйте с нужным корневым шаблоном.

Самый простой путь - это просто вывести через echo и вызвать exit(). Хоть это нее красиво, но такое в системе зачастую используется.
Супер пользователь
Сообщений: 125
Мартин: Разъясните подробнее почему работает подключение шаблона, а переменные в нем не устанавливаются
Разработчик
Сообщений: 605
Fort:
Мне нужно 2 алиаса в одном блоке. Это возможно ?

Шаблонизатор не поддерживает такого. Да и для чего это понадобилось?

По идее то центральная колонка контента у сайта работает следующим образом. Шаблонизатор создает новый блок content_box, который обычно вставлен в theme.html. Дальше модули с помощью вызова метода AddTemplatedBox() как бы итерируют его с нужными шаблонами. Ну а потом просто создают нужные блоки и итерируют их.

А вот зачем вы нагородили создание нового вложенного блока в методе AddTemplatedBox() - мне не понятно. Тем более опять полного кода нет.
Супер пользователь
Сообщений: 125
Это новый метод с таким же названием, что и в классе для сайта, только в классе админки. Что бы убрать html из php. И сохранить совместимость.
Это полный код. Вызов метода из файлов admin.php

<?
System::admin()->AddTemplatedBox('', 'modules/' . MOD_NAME . '/list.html');<br />
        System::site()->AddBlock(MOD_NAME, true, true, 'mb');<br />
        System::site()->AddSubBlock(MOD_NAME, true, $vars);
?>
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: