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

Вопросы про скрытие неиспользуемых колонок для блоков

Супер пользователь
Сообщений: 125
как исполльзовать в шаблоне это:

<?
$this->Blocks['right_coll']['if'] = true;
?>

?

И еще как можно увидеть полную структуру массива перед компиляцией starkyt ?

-- Изменено "Fort": 22.02.2016 17:44 --
Разработчик
Сообщений: 286
1. {right_coll} ... {/right_coll}
2. var_dump(System::site()->Blocks);
Супер пользователь
Сообщений: 125
Агний:
1. {right_coll} ... {/right_coll}
2. var_dump(System::site()->Blocks);

такой вариант не работает.
В начале инициальзации идет

<?
$this->NewBlock('left_coll', false);<br />
        $this->NewBlock('right_coll', false);<br />
        $this->NewBlock('top_coll', false);<br />
        $this->NewBlock('bottom_coll', false);
?>

затем их надо включить
так будет коррекно ?

<?
//$this->Blocks['left_coll']['if'] = true;<br />
$this->NewBlock('left_coll', true);
?>


п.с. еще не разобрался как работает шаблонизатор. Много классов с одинаковыми фун-ми.
Разработчик
Сообщений: 605
Fort:
п.с. еще не разобрался как работает шаблонизатор. Много классов с одинаковыми фун-ми.

Шаблонизатор, конечно, штука несколько мудреная, но он довольно примитивный и строк в нем всего 800. Так же в работе часто помогает IDE, ищет и анализирует что надо. Почитайте каждый из его методов, проанализируйте. Начните смотреть с его вызовов из более высокоуровневых классов.

По факту он тупо инклудит шаблон, с помощью буфферизации вывода считывает получившееся (так и происходит исполнение PHP кода в шаблонах). Далее строится дерево из блоков и распарсенные шаблоны склеиваются с ним. В итоге и получается страница. Разве что построение дерева тут мудрено.

И какие функции то одинаковы?

-- Изменено "Мартин": 27.02.2016 04:08 --
Разработчик
Сообщений: 286
Fort, как вы написали тоже можно, но шаблонизатор будет совмещать новый блок со старым, ранее добавленным.
NewBlock возвращает объект типа StarkytBlock, который можно использовать для манипуляций с блоком.
Например:

<?
<br />
$right_coll = $this->NewBlock('right_coll', false);<br />
// затем в другом месте<br />
$right_coll->Enabled(true);<br />

?>


$this->Blocks['right_coll']['if'] = true;

Да, возможно это не будет работать в этой версии шаблонизатора (это недоработка index_template.class.php). Нужно включать субблок:
$this->Blocks['right_coll']['sub'][0]['enabled'] = true;

Т.к. в 1.4 все блоки стали считаться множественными.
Супер пользователь
Сообщений: 125
Мартин:[quote]Fort:
п.с. еще не разобрался как работает шаблонизатор. Много классов с одинаковыми фун-ми.

Шаблонизатор, конечно, штука несколько мудреная, но он довольно примитивный и строк в нем всего 800. Так же в работе часто помогает IDE, ищет и анализирует что надо. Почитайте каждый из его методов, проанализируйте. Начните смотреть с его вызовов из более высокоуровневых классов.

По факту он тупо инклудит шаблон, с помощью буфферизации вывода считывает получившееся (так и происходит исполнение PHP кода в шаблонах). Далее строится дерево из блоков и распарсенные шаблоны склеиваются с ним. В итоге и получается страница. Разве что построение дерева тут мудрено.

И какие функции то одинаковы?


Я проследил, все начинается с html класса))
сильно разбит на кучу класов да и коментария в коде нет (

-- Изменено "Fort": 27.02.2016 10:48 --
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: