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

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

Вы не зашли.

#1 2012-08-14 06:03:06

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Как сделать блоки используя Twig ?

Вопшем я уже запутался у всех этих вариантах размещения блоков  в разных местах (глявная, неглавная, в категории и т.д). Хотелось бы ясности как можно размещать блоки. Если кто помнит был такой плагин Елка, хотя он и есть я им дальше пользуюсь, там был пример как его можно использовать наглядно, предлагаю тем кто в этом чтото понимает дописать как можно с помощю Twig выводить следующие

1. Блок только на главной
2. Блок всюду кроме главной
3. Блок только на страничках категорий
4. Блок только на страничках полных новостей
5. Блок только на страничке определенной категории
6. Блок показывать всюду кроме определенной категории
7. Блок показывать всюду кроме определенного плагина
8. Блок на страничке определенной полной новости или полных новостей определенной категории
9. Блок только на страничках поиска
10. Блок только на страничках плагина календар/архив
11. Блок только на страничках регистрации/ввода пароля и т.д.
12. Блок только на страничке плагина тегов
13. Блок только на страничке профиля
14. Блок только на статике
15. Блок всюду кроме статики
16. Блок только на страничке ошыбки
17. Блок на страничке иных плагинов и т.д. может чтото забыл....

18. Блок только на страничках определенной категории как кратких так и полных новостей

и еще одно что такое вывод через Twig и через ifhandler, это одно и тоже или нет? я просто в этом полный ноль) обясните на примерах, типа как вот

1. [ifhandler:news:main]Блок только на главной[/ifhandler]
2. [ifnhandler:news:main]Блок всюду кроме главной[/ifhandler]
3... дальше???

если нето то как тогда все это выводить через Twig и чем лучше?

Думаю такая инфа пригодится всем)

Изменено legenda (2012-08-14 23:38:30)

Не в сети

#2 2012-08-14 13:25:18

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

1. Блок только на главной
при условии что у вас на главной новости

{% if isHandler('news:main') %}
   только на главной
{% endif %}

2. Блок всюду кроме главной
при условии что у вас на главной новости

{% if not isHandler('news:main') %}
   всюду, кроме главной
{% endif %}

3. Блок только на страничках категорий

{% if isHandler('news:by.category') %}
   на всех страничках категориий
{% endif %}

4. Блок только на страничках полных новостей

{% if isHandler('news:news') %}
   на всех страничках с полными новостями
{% endif %}

5. Блок только на страничке определенной категории

{% if isCategory('some_cat') %}
   Блок на страничке со списком новостей из категории some_cat
{% endif %}

6. Блок показывать всюду кроме определенной категории

{% if not isCategory('some_cat') %}
   Блок не показывается на страничке со списком новостей из категории some_cat
{% endif %}

7. Блок показывать всюду кроме определенного плагина

{% if not isHandler('tags') %}
   Блок показывать всюду кроме определенного плагина (tags)
{% endif %}

8. Блок на страничке определенной полной новости или полных новостей определенной категории

{% if isHandler('news:news') and handler.params.altname == 'altname_novosti' %}
   блок на страничке новости с альтнеймом = altname_novosti
{% endif %}

9. Блок только на страничках поиска

{% if isHandler('search') %}
   Блок только на страничках поиска
{% endif %}

10. Блок только на страничках плагина календар/архив
(как я понял, новости в опр промежуток времени)

{% if isHandler('news:by.year') %}
  новости за год
{% endif %}

{% if isHandler('news:by.month') %}
   новости за месяц
{% endif %}

{% if isHandler('news:by.day') %}
   новости в за день
{% endif %}

{% if isHandler('news:by.year|news:by.month') %}
  новости за год или за месяц
{% endif %}

{% if isHandler('news:by.year|news:by.day') %}
  новости за год или за день
{% endif %}

{% if isHandler('news:by.month|news:by.day') %}
  новости за месяц или за день
{% endif %}

{% if isHandler('news:by.year|news:by.month|news:by.day') %}
  новости за год или за месяц или за день
{% endif %}

11. Блок только на страничках регистрации/ввода пароля и т.д.

{% if isHandler('core:login') %}
   на странице входа
{% endif %}

{% if isHandler('core:registration') %}
   на странице рег
{% endif %}

{% if isHandler('core:lostpassword') %}
   на странице востановления пасса
{% endif %}

12. Блок только на страничке плагина тегов

{% if isHandler('tags') %}
	на странице тегов
{% endif %}

13. Блок только на страничке профиля

{% if isHandler('uprofile:show') %}
	только на страничке профиля
{% endif %}

{% if isHandler('uprofile:edit') %}
	только на страничке редактированния профиля
{% endif %}

14. Блок только на статике

{% if isHandler('static') %}
    только на статике
{% endif %}

15. Блок всюду кроме статики

{% if not isHandler('static') %}
   кроме статики
{% endif %}

16. Блок только на страничке ошибки

{% if not isSet(handler) %}
	На странице с ошибкой 404
{% endif %}

17. Блок на страничке иных плагинов и т.д. может что-то забыл....

{% if handler.pluginName == 'pluginname' %}
выводимый контент
{% endif %}

Изменено Knopik (2015-08-05 08:53:34)

Не в сети

#3 2012-08-14 14:16:02

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

legenda, комбинации для ifhandler можно найти в "Управление форматом ссылок" тока не все можно организовать через ifhandler
Knopik, это все работает тока в SVN через хак [TWIG] ... [/TWIG]

Не в сети

#4 2012-08-14 14:29:22

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

vip, [TWIG] ... [/TWIG] используется там, где шаблон строится старым шаблонезатором

Не в сети

#5 2012-08-14 14:38:15

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

Knopik, так это доступно только для версии SVN а в актуальной версии через [TWIG] ... [/TWIG] не где не вывести

Не в сети

#6 2012-08-14 14:46:21

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

vip, я на ночной версии проверял.

Не в сети

#7 2012-08-14 15:11:44

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Как сделать блоки используя Twig ?

Knopik, а можно ли для плагина feedback сделать обработчик по определенным формам?
http://site.ru/plugin/feedback/?id=1
http://site.ru/plugin/feedback/?id=2
http://site.ru/plugin/feedback/?id=3 и тд и тп

EDIT: вот так: {% if handler.pluginName == 'feedback' and handler.params.altname == '?id=1' %}выводимый контент{% endif %}  ?


I NGeneration CMS

Не в сети

#8 2012-08-14 15:34:28

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

Евгений, для конкретной формы сделать обработчик через twig не получится

Не в сети

#9 2012-08-14 15:50:24

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Как сделать блоки используя Twig ?

Knopik, да, neutral я попробовал, код не сработал, жаль, но все равно спасибо за ответ. wink


I NGeneration CMS

Не в сети

#10 2012-08-14 16:02:59

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

Knopik, я про нее и говорил что работает тока в SVN версии а в 0.9.3 теги [TWIG] ... [/TWIG] не работают

Не в сети

#11 2012-08-14 16:22:32

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Как сделать блоки используя Twig ?

Knopik, попробовал конструкцию для определенной новости, не работает:

<a href="/uslugi/uchet-teplovoi-energii.html">
    <li>
    {% if isHandler('news:news') and handler.params.altname == 'uchet-teplovoi-energii' %}<strong>{% endif %}
    Учет тепловой энергии
    {% if isHandler('news:news') and handler.params.altname == 'uchet-teplovoi-energii' %}</strong>{% endif %}
    </li>
    </a>

и так тоже пробовал:

<a href="/uslugi/uchet-teplovoi-energii.html">
    <li>
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}<strong>{% endif %}
    Учет тепловой энергии
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}</strong>{% endif %}
    </li>
    </a>

Итог един:
6b1344097385a42484abd4746371e416_pv.png


I NGeneration CMS

Не в сети

#12 2012-08-14 16:36:14

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

Евгений, нужно через теги [TWIG] ... [/TWIG]

пример

[TWIG]
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}<strong>{% endif %}
    Учет тепловой энергии
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}</strong>{% endif %}
[/TWIG]

Изменено vip (2012-08-14 16:37:59)

Не в сети

#13 2012-08-14 16:56:50

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

Knopik, супер! буду тестить.

У меня стоит NGCMS 0.9.3 + SVN [SVN1040+] надо все блоки заключать в тег  [TWIG] ... [/TWIG]?

Не в сети

#14 2012-08-14 16:59:09

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

legenda, тока там где работает старый шаблонизатор

Не в сети

#15 2012-08-14 17:00:49

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

legenda, да

Не в сети

#16 2012-08-14 17:07:13

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

vip, а что такое старый шаблонизатор?
В смисле в версии 0.9.3 + SVN [SVN1040+] он старый или новый?

Изменено legenda (2012-08-14 17:08:04)

Не в сети

#17 2012-08-14 17:15:00

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

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

Не в сети

#18 2012-08-14 23:39:00

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

Knopik, Можно еще пример для
18. Блок только на страничках определенной категории как кратких так и полных новостей
?

Не в сети

#19 2012-08-14 23:46:43

vip
Зaбанен
Зарегистрирован: 2011-03-23
Сообщений: 1,182
Рейтинг :   213 

Re: Как сделать блоки используя Twig ?

legenda, можно как через id категории так и через аль имя
{% if isCategory('1') %}
код для вывода определенной категории
{% endif %}

Не в сети

#20 2012-08-14 23:49:32

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

vip, так неработает для полных новостей этой категории

Не в сети

#21 2012-08-15 00:21:12

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

Вот например так

[TWIG]
{% if isHandler('news') %}
Блок для отображения только в любой категории и в полной новости (любой)
{% endif %}
[/TWIG]

а мне нужно чтоб только в категории и в полных новостях (но не любой, а например в категории blog, и во всех полных новостях категории blog)

Изменено legenda (2012-08-15 00:55:19)

Не в сети

#22 2012-08-15 01:15:39

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Как сделать блоки используя Twig ?

Попробовал сделать с обработчиком [TWIG], не помогло, выводит просто пустоту...хотя в коде шаблона main.tpl:

<a href="/uslugi/uchet-teplovoi-energii.html">
    <li>
    [TWIG]
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}<strong>{% endif %}
    Учет тепловой энергии
    {% if isHandler('news:uslugi') and handler.params.altname == 'uchet-teplovoi-energii' %}</strong>{% endif %}
    [/TWIG]
    </li>
    </a>


I NGeneration CMS

Не в сети

#23 2012-08-15 02:31:17

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

Евгений,

<a href="/uslugi/uchet-teplovoi-energii.html">
    <li>
    [TWIG]
    {% if isHandler('news:news') and handler.params.altname == 'uchet-teplovoi-energii' %}<strong>{% endif %}
    Учет тепловой энергии
    {% if isHandler('news:news') and handler.params.altname == 'uchet-teplovoi-energii' %}</strong>{% endif %}
    [/TWIG]
    </li>
    </a>
Это будет для определенной полной новости!, а вот как для определенной категории uslugi хз, вот више сам спрашываю

Изменено legenda (2012-08-15 02:45:55)

Не в сети

#24 2012-08-15 12:00:58

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Как сделать блоки используя Twig ?

legenda пишет:

Вот например так

[TWIG]
{% if isHandler('news') %}
Блок для отображения только в любой категории и в полной новости (любой)
{% endif %}
[/TWIG]

а мне нужно чтоб только в категории и в полных новостях (но не любой, а например в категории blog, и во всех полных новостях категории blog)

{% if isHandler('news') and handler.params.category == 'blog' %}
Я в категории блог, и на страничке полной новости с категорией блог
{% endif %}

----
описание isHandler() из доков

isHandler($rule) - возвращает true в случае, если текущее местоположение пользователя соотвествует указанным правилам в isHandler($rule) - возвращает true в случае, если текущее местоположение пользователя соотвествует указанным правилам в $rule
- Формат переменной $rule: Правило1[|Правило2[|Правило3[...]]]
- Формат записи ПравилоN: PLUGIN[:HANDLER]
   где:
     PLUGIN - ID плагина (можно посмотреть в админке, на странице Управление форматом ссылок, колонка Плагин)
     HANDLER - ID обработчика (если указан, колонка Действие)

{% if isHandler('tags|news:main') %}
 	* Пользователь находится на главной странице или на странице плагина tags *
{% endif %}

Изменено Knopik (2012-08-15 12:03:53)

Не в сети

#25 2012-08-15 16:41:42

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как сделать блоки используя Twig ?

Knopik, чето я вапше ниче не понял, для меня все это китайская грамота) , можно просто пример?

Не в сети

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

Работает на FluxBB