XF 2.2 Как добавить data-template для страницы созданой в узлах?

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.5

bucefal82

Заблокирован
Сообщения
87
Реакции
38
Баллы
8,115
Имеется страница /pages/name, но data-template равняется page_view, а надо page_node_181 для удобной работы css со стандартными классами, которые использует XenForo.

Страница создана через стандартную xenforo функцию( /admin.php?nodes/ )


1638639572681.png
 
Последнее редактирование модератором:
Решение
Не совсем.

Посмотреть вложение 134004

Я создал отдельную страницу и взял код из account_details


HTML:
<xf:wrap template="account_wrapper" />

        <xf:if is="$xf.visitor.canEditProfile()">
            <xf:if contentcheck="true">
                <h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('identities') }}</span></h2>
                <div class="block-body">
                    <xf:contentcheck>
                        <xf:macro template="custom_fields_macros" name="custom_fields_edit" arg-type="users" arg-group="contact" arg-set="{$xf.visitor.Profile.custom_fields}" />
                    </xf:contentcheck>
                </div>
            </xf:if>
            <xf:submitrow icon="save"...
Имеется страница /pages/name, но data-template равняется page_view, а надо page_node_181 для удобной работы css со стандартными классами, которые использует XenForo.

Страница создана через стандартную xenforo функцию( /admin.php?nodes/ )


Посмотреть вложение 134002
Если нужно конкретно на определенной странице, то что-то типо такого.
Less:
.template-page_view
{
     &[data-container-key='node-ЗДЕСЬАЙДИ']
    {
        //code here
    }
}
 
Можно селектится по data-container-key атрибуту у тега HTML.
Он равен значению node-{pageId}
Как пример Правила нашего форума
А как можно использовать это, где используется <xf:wrap template="account_wrapper" /> ?

Внутри используется data-template для подсветки вкладки в меню слева.

<a class="blockLink {{ $pageSelected == 'Тут должна быть страница' ? 'is-selected' : '' }}" href="{{ link('account/contact') }}">
 
Ты хочешь подсветку выбранной вкладки навигации?
Да, но со своей страницей, так-как там контакты располагаются. Ибо стандартные настройки XenForo неудобны.
 
bucefal82, все там удобно, создаешь пункт навигации со ссылкой на страницу, потом в настройках страницы указываешь раздел навигации. Конечно если я правильно понял.
 
bucefal82, все там удобно, создаешь пункт навигации со ссылкой на страницу, потом в настройках страницы указываешь раздел навигации. Конечно если я правильно понял.
Только там по дефолту, если я не ошибаюсь, не применяется is-selected.
Нужно добавить в HTML-шаблон страницы следующий код:
HTML:
<xf:page option="section" value="testPage" />
Где testPage - необходимо указать идентификатор созданного пункта меню в навигации здесь /admin.php?navigation/
 
bucefal82, все там удобно, создаешь пункт навигации со ссылкой на страницу, потом в настройках страницы указываешь раздел навигации. Конечно если я правильно понял.
Не совсем.

1638641423150.png

Я создал отдельную страницу и взял код из account_details


HTML:
<xf:wrap template="account_wrapper" />

        <xf:if is="$xf.visitor.canEditProfile()">
            <xf:if contentcheck="true">
                <h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('identities') }}</span></h2>
                <div class="block-body">
                    <xf:contentcheck>
                        <xf:macro template="custom_fields_macros" name="custom_fields_edit" arg-type="users" arg-group="contact" arg-set="{$xf.visitor.Profile.custom_fields}" />
                    </xf:contentcheck>
                </div>
            </xf:if>
            <xf:submitrow icon="save" sticky="true" />
        </xf:if>
 
Не совсем.

Посмотреть вложение 134004

Я создал отдельную страницу и взял код из account_details


HTML:
<xf:wrap template="account_wrapper" />

        <xf:if is="$xf.visitor.canEditProfile()">
            <xf:if contentcheck="true">
                <h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('identities') }}</span></h2>
                <div class="block-body">
                    <xf:contentcheck>
                        <xf:macro template="custom_fields_macros" name="custom_fields_edit" arg-type="users" arg-group="contact" arg-set="{$xf.visitor.Profile.custom_fields}" />
                    </xf:contentcheck>
                </div>
            </xf:if>
            <xf:submitrow icon="save" sticky="true" />
        </xf:if>
Так-то 1 вопрос = 1 тема.
Но делается это следующим образом:

Создаём модификацию шаблона.

Шаблон: account_wrapper
Найти: <!--[XF:settings_links:bottom]-->
Заменить:
HTML:
$0

<xf:if is="$xf.visitor.правоЕслиЕсть()">
    <a class="blockLink {{ $pageSelected == 'test' ? 'is-selected' : '' }}" href="{{ link('account/test') }}">
        {{ phrase('фраза') }}
    </a>
</xf:if>
Дальше немного магии в PHPStorm для расширения XFCP_Account и получаем следующее
bucefal.gif
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу