XF 1.5 Вывод страницы page в переменной

Improvs

Проверенные
Сообщения
633
Реакции
87
Баллы
8,130
Итак, создал через дерево узлов новую страницу с ID 97
Теперь есть причины, по которым мне нужно ее вывести с помощью условия переменных.
Как написать переменную для ее отображения?

Если для форума, я пишу следующим образом:
Код:
<xen:if is="{$forum.node_id} == 97">

то как это сделать для страницы?

Я пробовал и
Код:
<xen:if is="{$page.node_id} == 97">
и
Код:
pages_id
и
Код:
page_id
, но правильного решения так и не нашел.

Может у кого-то найдутся соображения?
 
Георгий Шевченко, я не понимаю что вы имеете ввиду, наверное потому что не знаю как это должно работать, не имею такого опыта.
Exile, пробовал начинать с этого, но не цепляется
Код:
<xen:if is="{$page.node_id} == xx">
, разделы форума цепляются на отлично, а вот страница нет
 
Георгий Шевченко, я не понимаю что вы имеете ввиду, наверное потому что не знаю как это должно работать, не имею такого опыта.
Exile, пробовал начинать с этого, но не цепляется
Код:
<xen:if is="{$page.node_id} == xx">
, разделы форума цепляются на отлично, а вот страница нет

А вы где это пытаетесь вывести?

Вывожу в шаблоне node_page_level_2
Код:
{xen:helper dump, $page}

И получаю результат
test-page.png

Ну а теперь всё просто, подставляем из массива уже то что нужно.
 
Improvs, согласно офф. форуму условие как вы и пишете:
<xen:if is="{$page.node_id} == 4">
If page node and node id is 4 include this
</xen:if>
Если не подходит - опишите что вы вообще хотите сделать.
 
Георгий Шевченко, вывожу на странице, получаю:
Код:
array(24) {
  ["node_id"] => int(97)
  ["title"] => string(14) "Правила"
  ["description"] => string(0) ""
  ["node_name"] => string(7) "pravila"
  ["node_type_id"] => string(4) "Page"
  ["parent_node_id"] => int(0)
  ["display_order"] => int(1)
  ["display_in_list"] => int(0)
  ["lft"] => int(169)
  ["rgt"] => int(170)
  ["depth"] => int(0)
  ["style_id"] => int(0)
  ["effective_style_id"] => int(0)
  ["breadcrumb_data"] => string(6) "a:0:{}"
  ["grouped_ids"] => string(0) ""
  ["is_need_filter"] => int(0)
  ["publish_date"] => int(1447753883)
  ["modified_date"] => int(1447885408)
  ["view_count"] => int(0)
  ["log_visits"] => int(0)
  ["list_siblings"] => int(0)
  ["list_children"] => int(0)
  ["callback_class"] => string(0) ""
  ["callback_method"] => string(0) ""
}
Exile, хочу сделать
Код:
<xen:if is="{$forum.node_id} == 97">class="active"</xen:if>>
<a href="/pages/pravila/">Правила</a>
 
Последнее редактирование:
Георгий Шевченко, вывожу на странице, получаю:
Код:
array(24) {
  ["node_id"] => int(97)
  ["title"] => string(14) "Правила"
  ["description"] => string(0) ""
  ["node_name"] => string(7) "pravila"
  ["node_type_id"] => string(4) "Page"
  ["parent_node_id"] => int(0)
  ["display_order"] => int(1)
  ["display_in_list"] => int(0)
  ["lft"] => int(169)
  ["rgt"] => int(170)
  ["depth"] => int(0)
  ["style_id"] => int(0)
  ["effective_style_id"] => int(0)
  ["breadcrumb_data"] => string(6) "a:0:{}"
  ["grouped_ids"] => string(0) ""
  ["is_need_filter"] => int(0)
  ["publish_date"] => int(1447753883)
  ["modified_date"] => int(1447885408)
  ["view_count"] => int(0)
  ["log_visits"] => int(0)
  ["list_siblings"] => int(0)
  ["list_children"] => int(0)
  ["callback_class"] => string(0) ""
  ["callback_method"] => string(0) ""
}

Ну а теперь {$page.node_id} используй, где нужно тебе в этом шаблоне.
Просто теперь через точку указываешь то что есть в массиве. И получишь те значения которые уже есть там.
 
  • Мне нравится
Реакции: Hope
Ну в общем-то не хочет оно так работать, может я опять что-то не так понял :unsure:
Вы хотите сделать, если человек находиться на странице 97 к примеру, то ссылка должна быть активной, да?
Код:
<xen:if is="{$forum.node_id} == 97">class="active"</xen:if>>
<a href="/pages/pravila/">Правила</a>
 
Георгий Шевченко, да, к странице данный вариант не работает, к разделу применим

Попробуйте сделать так.
Сделать ссылку с ID.
Код:
<a href="/pages/pravila/" id="link_active">Правила</a>

И просто в шаблоне где выводится сама страница правил, заверните условие и там поместить скрипт на этот самый ID.

К примеру.
Код:
<xen:if is="{$page.node_id} == 97"><script>
$(document).ready(function() {
$("#link_active").addClass("active");
});
</script></xen:if>

Не проверял, но по логике, должно работать.
 
  • Мне нравится
Реакции: Hope
Попробовал, не работает. Пробовал также вместо $page ставить $forum , без результатов

Да и дело то не в пометке активного класса, разделы то работают, это дело в переменной, которая по каким-то причинам не применяется к странице:
<xen:if is="{$page.node_id} == 97"> или же <xen:if is="{$forum.node_id} == 97">
так и до использования самого скрипта, по идеи, дело не должно доходить
 
Кто подскажет, в каком формате хранится дата в таблице xf_team_event?
Сразу предвосхищаю - про Integer говорить не надо. Итак ясно.

publish_date int(1447753883) - Что это за число? Секунды, минуты, недели и от какой отправной точки идёт отсчет?
modified_date int(1447885408) здесь аналогично.

UNIX_TIMESTAMP() is called with a date argument, it returns the value of the argument as seconds since '1970-01-01 00:00:00' UTC ?

Всё. Нашел.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу