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

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

rss

Вы не зашли.

Объявление

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

UriyZenkov
Пользователь
Зарегистрирован: 2011-01-13
Сообщений: 257
Рейтинг :   
Профиль  Вебсайт

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

Код:

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

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

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

Неактивен

 

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

UriyZenkov
Пользователь
Зарегистрирован: 2011-01-13
Сообщений: 257
Рейтинг :   
Профиль  Вебсайт

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

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

Неактивен

 

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

SFproG
Пользователь
Откуда: Тюмень
Зарегистрирован: 2010-08-01
Сообщений: 131
Рейтинг :   
Профиль  Вебсайт

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

infinity237 написал:

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

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

Неактивен

 

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

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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

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

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

Неактивен

 

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

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

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

в news.table.tpl

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

Неактивен

 

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

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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

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

Неактивен

 

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

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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 09: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 13:15:36

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

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

Неактивен

 

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

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

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

irbees2008 написал:

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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 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)

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

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

Неактивен

 

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

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

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

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

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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 21:35:48

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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)

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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 03:15:48

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   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 07:17:06

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

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

Неактивен

 

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

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   39 
Профиль

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

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

Неактивен

 

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

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

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

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.028 seconds, 31 queries executed ]