Вопрос Как правильно работать с отображением виджетов

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
Всем здравствуйте!

Вот сколько я пытаюсь понять эту тему, так и не разобрался технологию работы. Может кто подскажет)

Смотрите, создаю виджет (HTML). Выбираю позиции для отображения: "Просмотр форума: боковая панель" и "Просмотр темы: боковая панель".
Далее в шаблоне виджета я пишу обычный html код (дивы и стиль). Ок. Теперь мне надо, чтобы этот виджет отображался ТОЛЬКО В ФОРУМЕ NODE_ID = 63.

Вот как и где мне прописать это условие? Если пишу в самом шаблоне:
<xf:if is="$forum.node_id == 63">
ЗДЕСЬ МОЙ КОД
</xf:if>


То такой финт не срабатывает. Расскажите, как правильно надо делать?
 
Решение
В xenforo, есть еще парамеры для условия отображения, это data-container-key и data-content-key. Они устанавливаются для вновь созданных узлов, категорий, разделов или страниц.
Так для вновь созданной категории определяется:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданного раздела:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданной темы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
у темы data-container-key будет такой же, как у форума
для вновь созданной страницы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Как это можно использовать, к примеру в LESS:
Less:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
В xenforo, есть еще парамеры для условия отображения, это data-container-key и data-content-key. Они устанавливаются для вновь созданных узлов, категорий, разделов или страниц.
Так для вновь созданной категории определяется:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданного раздела:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданной темы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
у темы data-container-key будет такой же, как у форума
для вновь созданной страницы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Как это можно использовать, к примеру в LESS:
Less:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
так же с data-content-key, свойства стиля будут применятся только там где надо.
Можно использовать условия этих переменных:
PHP:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
 
Решение

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
У виджетов есть поле Условия отображения, там и указывается, например так:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
или
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Попробовал в условиях отображения вставить и первый и второй код, не сработало...
1703825007337.png

Причем, если не указывать в условиях отображения ничего, то да, все работает как надо. Только отображается везде в боковых панелях. Уже который раз пытаюсь работать с виджетами, чтобы не лезть ни в какие модификации, и натыкаюсь на проблемы подобного характера :(
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
Bucks B, я ж не зря писал сообщение об условиях, пробуй другие варианты описанные в нем
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
В xenforo, есть еще парамеры для условия отображения, это data-container-key и data-content-key. Они устанавливаются для вновь созданных узлов, категорий, разделов или страниц.
Так для вновь созданной категории определяется:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданного раздела:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
для вновь созданной темы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
у темы data-container-key будет такой же, как у форума
для вновь созданной страницы:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Как это можно использовать, к примеру в LESS:
Less:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
так же с data-content-key, свойства стиля будут применятся только там где надо.
Можно использовать условия этих переменных:
PHP:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Правильно я понимаю, что нужное мне условие надо прописать уже непосредственно в шаблоне виджета?
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
Правильно я понимаю, что нужное мне условие надо прописать уже непосредственно в шаблоне виджета?
не совсем правильно, я привел примеры, а условие укажи в поле, по принципу описанному выше
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
не совсем правильно, я привел примеры, а условие укажи в поле, по принципу описанному выше
Блин, я извиняюсь за глупые вопросы, но может ты можешь на скриншотах показать, как должно быть?
Я просто не понимаю, что мы можем писать в графу "Условия отображения", а что мы можем писать в сам Шаблон.. :cautious:
Сообщение автоматически объединено:

ВСЕЕЕЕЕЕЕ! ПОЛУЧИЛОСЬ! ОМГ!!!!! Дружище, всегда знал, что ты лучший!!!! Спасибо большое!
 
Последнее редактирование:

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
Если добавить позицию виджета Просмотр темы: Боковая панель, то во всех темах этого раздела будет отображаться этот виджет,
если добавить:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
то отображаться будет только в одной теме,
можно исключить из отображения какие-то темы раздела:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
или наоборот указать в каких будет отображаться:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
Если добавить позицию виджета Просмотр темы: Боковая панель, то во всех темах этого раздела будет отображаться этот виджет,
если добавить:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
то отображаться будет только в одной теме,
можно исключить из отображения какие-то темы раздела:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Спасибо большое за ответ! Но тут же вопрос задам: а в самом шаблоне виджета можно писать <xf:if>. чтобы, допустим, отображать определенный контент для определенной группы юзеров?
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
Спасибо большое за ответ! Но тут же вопрос задам: а в самом шаблоне виджета можно писать <xf:if>. чтобы, допустим, отображать определенный контент для определенной группы юзеров?
все условия можно указать в поле, там же как выше написал про темы можно добавить несколько условий, И-&& ИЛИ-||
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
Skaiman подскажи пожалуйста, а можно совместить вот это: $xf.reply.containerKey == 'node-63' && $xf.reply.contentKey == 'thread-11', только не в теме 11, а в конкретном сообщении темы? То есть нужно отобразить контент в конкретном сообщении конкретной темы.
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
Приветствую!
Не подскажете, а есть такое Условие отображения, когда оно применяется ко всем дочерним форумам исходного форума?

У меня есть форум 1 с темами. В этом форуме есть форум 2, форум 3 и т.д. И есть условие для отображения виджета в форуме 1. Чтобы это условие выполнялось в других форумах, я использую in_array($xf.reply.containerKey... Может есть иной вариант?
 

Skaiman

Администратор
Регистрация
29.06.18
Сообщения
2 097
Решения
33
Реакции
1 473
Баллы
85
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
 

Bucks B

Пользователь
Регистрация
29.12.23
Сообщения
21
Реакции
1
Баллы
20
<xf:if is="in_array({$forum.node_id}, [x,y])">
Этот текст будет показан в форуме x, y
</xf:if>

- то, что нужно, спасибо! 🤝
 
Верх Низ