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

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

Вы не зашли.

#101 2013-10-13 12:59:39

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

{% if not isNews('my_news') %}  здесь твой блок	{% endif %}

где "my_news" альт имя новости

Изменено irbees2008 (2013-10-13 13:00:38)

Не в сети

#102 2013-11-12 10:45:59

SFproG
Участник
Откуда Тюмень
Зарегистрирован: 2010-08-01
Сообщений: 132
Рейтинг :   
Сайт

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

Можно ли как-то твиг использовать для плагина "архив"? Чтобы он выводил определенную одну категорию. А не все сразу.

Не в сети

#103 2013-11-21 18:03:40

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

infinity237 пишет:

Не понял вопроса.

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

Не в сети

#104 2013-11-21 18:48:36

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

То тебе нужны подкатегории, теперь уже первый уровень... Вообщем определись для начала.

Изменено infinity237 (2013-11-21 18:48:50)

Не в сети

#105 2014-01-10 08:39:31

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

в news.table.tpl

{% if (handler == 'by.category') %}
здесь вывод
{% endif %}
Как сделать вывод только на первой постраничке категории и не делать в остальныХ?

Не в сети

#106 2014-01-10 17:58:09

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

Обсуждалось: http://ngcms.ru/forum/viewtopic.php?pid=36117#p36117
Через Twig никак, там бага в CMS.

Не в сети

#107 2014-02-06 01:30:51

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

Мало кто знает, что плагин xnews может выводить информацию из дополнительных полей xfields.

Предположим, что у нас есть xfields дополнительное поле (тип Группа изображений) с ID:imgtest
Тогда, чтобы вывести эти изображения в блоках плагина xnews (шаблон entries.tpl) нужно прописать такой цикл:
1. Сначало проверяем есть ли изображения в доп.поле, если нету то ничего не выводим, по сути можно прописать {% else %} и вывести изображение-заглужку.
2. Далее цикл по изображениям. Внутри можно использовать различные переменные с параметром img (как он задан внутри for'a).
3. Чтобы вывести только первое изображение можно сделать внутри цикла условие {% if (loop.first) %}XXX{% endif %} - которое будет показывать блок только при первой иттерации цикла (только первое изображение). Другие параметры loop можно посмотреть здесь:
http://twig.sensiolabs.org/doc/tags/for.html

{% if (p.xfields.imgtest.count > 0) %}
	{% for img in p.xfields.imgtest.entries %}
		{% if (loop.first) %}
			{{img.url}}
			{{img.purl}}
			{{img.width}}
			{{img.height}}
			{{img.pwidth}}
			{{img.pheight}}
			{{img.name}}
			{{img.origName}}
			{{img.description}}
			{{img.flags.hasPreview}}
		{% endif %}
	{% endfor %}
{% endif %}

Аналогичено этому коду можно просто выводить первый элемент из массива.

{% if (p.xfields.imgtest.count > 0) %}
	{{ p.xfields.imgtest.entries[0].url }}
	{{ p.xfields.imgtest.entries[0].purl }}
{% endif %}

Также, содержимое любой переменной можно посмотреть при помощи debugValue, например:  {{ debugValue(p.xfields) }}
Или можно просто вывести отладочную информацию по всем доступным в данном месте переменным с их значениями при помощи {{ debugContext(0) }}

Не в сети

#108 2014-02-25 09:19:16

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

Как задействовать плагин Логинза в новых версиях движка с твигом?
Такие выражения нужно переписать на твиг:

[if-loginza]... {loginza_account}... [/if-loginza]

[if-not-loginza]...[/if-not-loginza]

Не в сети

#109 2014-02-25 13:15:36

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

Посмотри в новом дефолтном шаблоне

Не в сети

#110 2014-02-25 13:53:31

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

irbees2008 пишет:

Посмотри в новом дефолтном шаблоне

Я его стёр. Из-за этого разворачивать ещё раз систему "накладно". Насколько понимаю, в шаблоне profile.tpl  (users.tpl в кр. случае) должны быть искомые выражения, но дико сомневаюсь, что есть, т.к. в плагине нет нового описания вообще. irbees2008, посмотри сам, пож-та!  Очень нужно.

Не в сети

#111 2014-02-25 15:28:39

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

{% if pluginIsActive('auth_loginza') %}
		<div class="modal-footer">
			Вход через социальные сети: <br>
			<div class="social-in-modal">
				<script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
				<a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/fb.png" alt=""> Facebook</a>
				<a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/vk.png" alt=""> Вконтакте</a>
				<a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/tw.png" alt=""> Twitter</a>
			</div>
		</div>
		{% endif %}

это в usermenu.tpl дефолтного шаблона

Не в сети

#112 2014-02-25 16:53:08

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

Спасибо. Но посмотрим что получается:

{% if pluginIsActive('auth_loginza') %}
        <div class="modal-footer">
            Вход через социальные сети: <br>
            <div class="social-in-modal">
                <script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
                <a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/fb.png" alt=""> Facebook</a>
                <a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/vk.png" alt=""> Вконтакте</a>
                <a href="https://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/" class="loginza"><img src="{{ tpl_url }}/img/social/tw.png" alt=""> Twitter</a>
            </div>
        </div>
        {% endif %}

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

А что нужно (это спокойно реализовано без твига, обычным способом:

<!-- если акк уже прикреплен - мы можем показать тип сервиса и вывести сообщение, что акк прикреплен -->
[if-loginza]Авторизация OpenID: Есть - <a href="{loginza_account}">{loginza_account}</a><br/><small>(тип сервиса OpenID виден только Вам)</small>[/if-loginza]
<!-- если акк не прикреплен - выводим сообщение об этом -->
[if-not-loginza]Авторизация OpenID:Нет[/if-not-loginza]

[if-not-loginza] <!-- если акк не прикреплен к логинзе, мы его можем прикрепить
 (заметьте, это совсем не то, как если бы плагин логинза не работал ( не был включен) - а именно этот последний вариант и прописан кодом выше--->
<script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
Прикрепить аккаунт к учетной записи сервисов (рекомендуется):
<br />
<a href="http://loginza.ru/api/widget?token_url={home}/plugin/auth_loginza/">
<img src="/engine/plugins/auth_loginza/tpl/img/yandex.png" alt="Yandex" title="Yandex">
<img src="/engine/plugins/auth_loginza/tpl/img/google.png" alt="Google" title="Google Accounts">
<img src="/engine/plugins/auth_loginza/tpl/img/vkontakte.png" alt="Вконтакте" title="Вконтакте">
</a>
[/if-not-loginza]

[if-loginza]  <!-- если акк уже прикреплен - мы можем его открепить, показывая ссылку на открепление -->
<a href="/plugin/auth_loginza/delete/">Открепить аккаунт</a> от учетной записи популярных сервисов.
[/if-loginza]

Итак, как же всё-таки сделать на твиге то, что делается обычным способом??? (индикацию прикрепления к логинзе, ссылку на открепление, ссылку на тип сервиса нужно реализовать, иначе пользователь сам может не знать/не помнить/не видеть - прикреплен ли он через логинзу и каким сервисом в итоге, т е никакого юзабилити)

Изменено Neo (2014-02-25 16:58:03)

Не в сети

#113 2014-02-25 17:55:53

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

что то не встречал такого варианта,где взял?

Не в сети

#114 2014-02-25 18:40:08

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

Так это "самый обычный" вариант (сам составлял: уже несколько лет использую). Все переменные описаны в мануале к плагину.

Wolverine, может опишешь твиг-компоновку, плаг ведь идёт в новых версиях ng комплектом!

Или кто-нибудь, помогите вписать условные блоки [if-loginza], [if-not-loginza] и переменную {loginza_account} !

Не в сети

#115 2014-02-25 19:45:23

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

Врят ли получится,даже в юзер меню такие переменные не заменили .

Не в сети

#116 2014-02-28 19:46:04

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

как заставить работать такую конструкцию

{% if (handler == 'by.category') %}
{% for entry in getCategoryTree('category.id') %}
     {% if(entry.level == '1') %}
        {{ entry.cat }}
        {% endif %}
		
{% endfor %}
{% endif %}

Не в сети

#117 2014-02-28 21:35:48

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

Ты же знаешь twig, дак в чем проблема сделать? big_smile

Не в сети

#118 2014-02-28 22:11:48

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

С помощью Витали увидел ошибку,правильно так

{% if (handler == 'by.category') %}
{% for entry in getCategoryTree(category.id) %}
     {% if(entry.level == '1') %}
        <a href="{{ entry.link }}">{{ entry.cat }}</a>
        {% endif %}
        {% endfor %}
{% endif %}

кавычки были лишние.но теперь другая проблема,этот код выводит в категории 1 уровень под категорий,когда переходишь в под категорию 1 уровня то не выводятся под категории следующего уровня.

Изменено irbees2008 (2014-02-28 22:20:32)

Не в сети

#119 2014-03-02 18:48:24

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

В svn появилось обновление,в news.table.tpl добавлена переменная level в массиве category, указывает уровень вложения текущей категории
вот код вывода под категорий текущей категории

{% for entry in getCategoryTree(category.id) %}
     {% if (entry.level == (category.level+1)) %}
        <h3><a href="{{ entry.link }}">{{ entry.cat }}</a></h3>
        {% endif %}
{% endfor %}

Не в сети

#120 2014-05-17 03:15:48

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

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

как вот такой вот набор условий написать одним условием?

{% if isHandler('news:by.year|news:by.month|news:by.day') %} {plugin_calendar} {% endif %}
{% if isHandler('tags') %} {plugin_calendar} {% endif %}
{% if isHandler('news:all') %} {plugin_calendar} {% endif %}
{% if not isSet(handler) %} {plugin_calendar} {% endif %}
{% if isHandler('search') %} {plugin_calendar} {% endif %}
{% if isHandler('static') %} {plugin_calendar} {% endif %}
{% if isHandler('uprofile:show') %} {plugin_calendar} {% endif %}
{% if isHandler('core:registration') %} {plugin_calendar} {% endif %}
{% if isHandler('core:login') %} {plugin_calendar} {% endif %}

Не в сети

#121 2014-05-17 07:17:06

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

Одинаковое условие делай как здесь указано http://ngcms.ru/forum/viewtopic.php?pid=30784#p30784

Не в сети

#122 2014-05-17 08:31:09

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

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

irbees2008, можеш написать пример?

Не в сети

#123 2014-05-17 09:59:25

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

{% if isHandler('core:login|news:by.year|news:by.month|news:by.day|tags|news:all|search|static|uprofile:show|core:registration') %} {plugin_calendar} {% endif %}

все кроме

{% if not isSet(handler) %} {plugin_calendar} {% endif %}

Не в сети

#124 2014-05-17 19:38:04

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

{% if (isHandler('core:login|news:by.year|news:by.month|news:by.day|tags|news:all|search|static|uprofile:show|core:registration')) or (not isSet(handler)) %} {plugin_calendar} {% endif %}

попробуй так

Изменено irbees2008 (2014-05-17 19:38:21)

Не в сети

#125 2014-05-26 10:32:37

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

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

Как не выводить на постраничке Главной?

Не в сети

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

Работает на FluxBB