Вопрос Условия переменных в шаблонах

LordGusli

Проверенный
Регистрация
21.12.22
Сообщения
34
Реакции
6
Баллы
20
Приветствую. Пытался настроить модификацию шаблона с условием отображения лишь в некоторых форумах:

Код:
<xf:if is="in_array({$forum.node_id}, [x,y])">
    Этот текст будет показан в форуме x, y
</xf:if>

Вроде как понял суть, вписал ID форумов, но в итоге требуемый мне текст не отображается как нужно, с условием (forum.node_id) он вообще пропадает, без него - виден на всём форуме.
Вот мой код:

Шаблон: post_macros
Описание: Публикация номера темы
Тип поиска: Простая замена
Найти:
            <li class="u-concealed">
                <a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow">
                    <xf:date time="{$post.post_date}" itemprop="datePublished" />
                </a>
            </li>
Заменить:
            <li class="u-concealed">
                <a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow">
                    <xf:date time="{$post.post_date}" itemprop="datePublished" />
                </a>
                <xf:if is="{$post.position} == 0">
                    <xf:if is="{$thread.first_post_id} == $post.post_id">
                        <xf:if is="in_array({$forum.node_id}, [4,5])">
                            <li class="u-concealed1">
                                <span style="color: #FF0000;">Тема №{{ $thread.thread_id }}</span>
                            </li>
                        </xf:if>
                    </xf:if>
                </xf:if>
            </li>
 
Решение
Как то так. В шаблоне thread_view
Регулярное выражение
Найти:
Код:
/(<xf:fa icon="fa-clock")(.*?)(<\/li>)/s
Заменить:
Код:
$0
        <xf:if is="in_array({$forum.node_id}, [4,5])">
            <li class="u-concealed">
                {{ phrase('thread') }} №{{ $thread.thread_id }}
            </li>
        </xf:if>

LordGusli

Проверенный
Регистрация
21.12.22
Сообщения
34
Реакции
6
Баллы
20
Спасибо, что ответили в той теме) Ваш код выглядит менее нагромождённым. Попытался вставить в условие && in_array({$forum.node_id}, [4,5])" и по итогу такая же проблема. Может я пытаюсь сделать то, что в принципе невозможно?
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
1 617
Решения
18
Реакции
1 209
Баллы
85
Ну так там же условие для первого поста :) <xf:if is="{$post.position} == 0">
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
1 617
Решения
18
Реакции
1 209
Баллы
85
да и шаблон не подходит для этого, скорее thread_view надо использовать, было бы понятнее если конкретнее описал, что хочешь сделать
 

LordGusli

Проверенный
Регистрация
21.12.22
Сообщения
34
Реакции
6
Баллы
20
Ну так там же условие для первого поста :) <xf:if is="{$post.position} == 0">
А возможно ли отобразить только в некоторых форумах? То есть именно текст "Тема №" будет, например, в 3-4-5-6 форумах, а в остальных обычное отображение: Дата публикации
Сообщение автоматически объединено:

да и шаблон не подходит для этого, скорее thread_view надо использовать, было бы понятнее если конкретнее описал, что хочешь сделать
Объясню:
Есть раздел на форуме - Жалобы на администрацию, в данном разделе люди публикуют жалобы, у каждой жалобы свой определённый порядковый номер. Там отображение: Тема № - требуется.
Есть раздел Новости, понятное дело там эта нумерация в принципе не нужна, тк. раздел является информационным.
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
1 617
Решения
18
Реакции
1 209
Баллы
85
как бы в теме и в посте не используется переменная $forum.node_id
 

LordGusli

Проверенный
Регистрация
21.12.22
Сообщения
34
Реакции
6
Баллы
20

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
1 617
Решения
18
Реакции
1 209
Баллы
85
Как то так. В шаблоне thread_view
Регулярное выражение
Найти:
Код:
/(<xf:fa icon="fa-clock")(.*?)(<\/li>)/s
Заменить:
Код:
$0
        <xf:if is="in_array({$forum.node_id}, [4,5])">
            <li class="u-concealed">
                {{ phrase('thread') }} №{{ $thread.thread_id }}
            </li>
        </xf:if>
 
Решение

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
1 617
Решения
18
Реакции
1 209
Баллы
85
<span style="color: #FF0000;">{{ phrase('thread') }} №{{ $thread.thread_id }}</span>
А лучше добавить класс <li class="u-concealed myclass">
Код:
.u-concealed.myclass {
    color: red;
}
и для него добавить свойства
 

LordGusli

Проверенный
Регистрация
21.12.22
Сообщения
34
Реакции
6
Баллы
20
Как то так. В шаблоне thread_view
Регулярное выражение
Найти:
Код:
/(<xf:fa icon="fa-clock")(.*?)(<\/li>)/s
Заменить:
Код:
$0
        <xf:if is="in_array({$forum.node_id}, [4,5])">
            <li class="u-concealed">
                {{ phrase('thread') }} №{{ $thread.thread_id }}
            </li>
        </xf:if>
Получилось. Спасибо Вам большое.
 

Похожие темы

Верх Низ