Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

#101 2013-10-13 11:30:38

UriyZenkov
Участник
Здесь с 2011-01-13
Сообщений: 271
Рейтинг :   
Сайт

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

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

Вне форума

#102 2013-10-13 11:59:39

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

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

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

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

Отредактировано irbees2008 (2013-10-13 12:00:38)

Вне форума

#103 2013-11-07 16:24:23

UriyZenkov
Участник
Здесь с 2011-01-13
Сообщений: 271
Рейтинг :   
Сайт

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

А как сделать блок для feedback и sitemap ?

Вне форума

#104 2013-11-12 09:45:59

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

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

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

Вне форума

#105 2013-11-21 17:03:40

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

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

infinity237 пишет:

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

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

Вне форума

#106 2013-11-21 17:48:36

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

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

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

Отредактировано infinity237 (2013-11-21 17:48:50)

Вне форума

#107 2014-01-10 07:39:31

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

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

в news.table.tpl

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

Вне форума

#108 2014-01-10 16:58:09

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

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

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

Вне форума

#109 2014-02-06 00: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) }}

Вне форума

#110 2014-02-25 08:19:16

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

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

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

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

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

Вне форума

#111 2014-02-25 12:15:36

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

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

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

Вне форума

#112 2014-02-25 12:53:31

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

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

irbees2008 пишет:

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

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

Вне форума

#113 2014-02-25 14:28:39

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

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 дефолтного шаблона

Вне форума

#114 2014-02-25 15: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 15:58:03)

Вне форума

#115 2014-02-25 16:55:53

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

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

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

Вне форума

#116 2014-02-25 17:40:08

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

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

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

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

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

Вне форума

#117 2014-02-25 18:45:23

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

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

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

Вне форума

#118 2014-02-28 18:46:04

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

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

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

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

Вне форума

#119 2014-02-28 20:35:48

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

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

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

Вне форума

#120 2014-02-28 21:11:48

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

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 21:20:32)

Вне форума

#121 2014-03-02 17:48:24

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

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 %}

Вне форума

#122 2014-05-17 02:15:48

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   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 %}

Вне форума

#123 2014-05-17 06:17:06

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

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

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

Вне форума

#124 2014-05-17 07:31:09

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

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

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

Вне форума

#125 2014-05-17 08:59:25

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

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 %}

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.019 сек, 7 запросов выполнено - Использовано памяти: 638.41 Кбайт (Пик: 691.41 Кбайт) ]