Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#26 2012-01-14 00:03:10

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

t3s пишет:

спасибо, но...
0. выводится лишь один entries - на старом выводились все полученные в цикле

У меня была опечатка там, я теперь исправил.

t3s пишет:

1. почему так не делать?

Твиг поддерживает встроенный цикл.

t3s пишет:

2. как тогда надо делать?

Уже я вижу написано.

t3s пишет:

3. с кешированием тоже меняется синтаксис если юзать твиг?

Так же.

t3s пишет:

4. а вообще он нужен или ну его, не заморачиваться и делать по-старому?

Стоит.

Не в сети

#27 2012-01-14 16:27:13

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

ROZARD, vitaly - спасибо, буду переходить на твиг...
но появились новые вопросы:
1. когда данные имеются то все нормально, работает отлично
но когда в массиве пусто - получаю ошибку

[ 1]: Call to a member function render() on a non-object

- ругается на строку     

$template['vars']['mainblock'] = $xg->render($tVars);

в голову лезет такое решение - проверять массив и если он пустой то вместо

'entries'      =>    $favEntries

ставить

'entries'      =>    'ничего нету'

но если уже взялся делать "правильно" - хочется знать, почему не работает условие в шаблоне? так как в примере Виталия:

{% for entry in entries %}
тут данные
...
{% else %}
тут сообщение что данных нету
{% endfor %}

2. на старом шаблонизаторе время генерации было примерно одинаковое и если несколько раз обновлять одну и туже страницу отличалось незначительно (использовал {queries} и {exectime})... когда сделал на твиге - то если пообновлять  страницу, значение {exectime} может отличаться в несколько раз - лично у меня получалось от 0.11 до 0.99 сек... почему такой большой разброс? это нормально? 0.99 считаю неприемлимым - как бороться?


Проекты любой сложности. Качественно. Дорого.

Не в сети

#28 2012-01-14 16:31:45

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

t3s, Кажется ты не добавил global $twig;
2. Возможно это было при первом показе когда твиг скомпилировал твой шаблон в php

Не в сети

#29 2012-01-14 17:53:16

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

ROZARD, $twig добавлен - полагаю что без него вообще плагин бы не работал...

а по поводу компилирования - что-то подозрительно много раз компилирует - могу скинуть урл в личку, сам глянешь... хотя стоп - если я сделал изменения в плагине - то он компилирует заново?


Проекты любой сложности. Качественно. Дорого.

Не в сети

#30 2012-01-14 17:56:12

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

Компилирует он заново по моему только при модификации шаблона.

Не в сети

#31 2012-01-14 18:34:06

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

все, разобрался - с первым вопросом ошибка была из-за того что

	$xg = $twig->loadTemplate($tpath['plugin'].'plugin.tpl');

был внутри цикла, а надо было до него...

со вторым - пока что хз, попробую глянуть еще на другом сервере...

если кому интересно - с твигом получился чуть меньший размер плагина (3060 кб против 3218) но увеличился размер шаблона - один файл на 1029 кб против двух файлов 393кб + 450кб
первое преимущество лежит на поверхности - верстальщику будет проще изменять/создавать шаблон, особенно если он раньше имел дело со SMARTY (не нужно париться с пхп)
буду благодарен если накидаете в меня другими преимуществами твига


Проекты любой сложности. Качественно. Дорого.

Не в сети

#32 2012-01-14 18:40:33

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

Главное преимущество ТВИГА это то, что первый раз он работает с TPL файлом, делает из него PHP и потом работает только с PHP вариантом, в отличии от стандартного шаблонизатора, который постоянно регулярками ищет в текстовом файле переменные. Посмотреть и ужаснуться что он сгенерировал можно в папке с кешом сайта.

Не в сети

#33 2012-01-17 22:47:31

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

парни, поскольку с циклами разобрался - остался вопрос с условиями, ведь в твиге есть поддержка условий?
полагаю, что условие "старым" методом раскритикует ROZARD, и будет прав
поэтому вопрос 1 - как сделать как в  SMARTY:

{if $smarty.get.ukey eq 'блаблабла'}
тут выводим, если джет.юкей соответствует блаблабла
{/if}

т.е. передать условие из плагина в шаблонизатор? ведь подобная реализация более "правильная", чем сравнивать в плагине и передавать в разные переменные шаблона? или все-же нет?

вопрос 2
//оффтоп бегин
тут вспомнился топик где говорили что ходужник и верстальщик в одном лице - это типа круто, типа значит чел шарит, рубит и все такое... вероятно те кто говорили не встречались с перлами от подобных "художниковерстальщиков" вроде

{if условие1 eq 'блаблабла'}инфа для условия 1 {if условие2 eq 'блаблабла'}инфа для условия 2 {if условие3 eq 'блаблабла'}инфа для условия 3 {/if}{/if}{/if}

//оффтоп енд

т.е. второй вопрос - как "правильно" для твига сделать сложные условия?


Проекты любой сложности. Качественно. Дорого.

Не в сети

#34 2012-01-17 22:56:22

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

Все ответы здесь.

Twig for Template Designers
Twig for Developers

Готовый пример здесь см. работу с переменной $twig

Это есть ты хочешь понять действительно что он может. Документация от разработчика smile

Не в сети

#35 2012-01-17 23:02:54

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

<?php
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$tVars = array(
			'user' => is_array($userROW)?1:0,
			'user_status' => $userROW['status']
);

$template['vars']['mainblock'] = $xt->render($tVars);

В *.tpl

{% if (user) %}
//Видит только авторизованый
{% endif %}

{% if (user) %}
//Видит только авторизованый
{% else %}
//Видит только не авторизованый
{% endif %}

{% if (user_status == 1) %}
//Видит только админ
{% elseif (user_status == 2) %}
//Видит только редактор
{% elseif (user_status == 3) %}
//Видит только журналист
{% elseif (user_status == 4) %}
//Видит только комментатор
{% endif %}

Всё очень просто...

Не в сети

#36 2012-01-17 23:05:49

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

Только в этом нет необходимости, сейчас уже везде (при использовании TWIG) доступна переменная user, которая является копией $userROW

Не в сети

#37 2012-01-17 23:06:47

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: разбираюсь в плагинной системе, есть вопрос

Wolverine пишет:

Только в этом нет необходимости, сейчас уже везде (при использовании TWIG) доступна переменная user, которая является копией $userROW

Это просто пример условий на примере $userROW))))

Не в сети

Подвал раздела

Работает на FluxBB