Мы вернулись, детка. Уже давно вы не видели новостей от нас или каких-то нововведений, но мы всё это время долго работали, над разными аспектами, многие, которые коснулись различных сфер и аспектов форума, многие конечно они коснулись внутренним механикам форума и модерации/администрирования, но они вам будут мало интересны. И так сейчас мы поговорим об одном, но большом улучшение форума. Это хайд, много лет для поддержки нескольких хайдов, вы вставляли несколько хайдов в 1 сообщение. Сейчас мы решили данную проблему, а также теперь вы можете писать условия хайда, настолько, насколько позволяет ваша фантазия. В будущем мы реализуем какие-то функции, которые вы можете просто написать в условие хайда. И так, что же нового? Давайте посмотрим под капот.
Тег
Разрешенные выражения (теги):
Давайте отобразим хайд, для первых 20 зарегистрированных человек на форуме, соответственно наше условие будет выглядеть так:
Но вы можете указать и для определенных идентификаторов, например, так:
Но это ещё не всё, из-за того, что такая масштабная система, вы можете как угодно придумать данный тег, например просто добавить отрицание
Давайте, рассмотрим ещё несколько примеров:
- Скрытый текст "Привет, мир!" будет отображаться, если количество сообщений пользователя больше 1 ИЛИ количество реакций больше 1.
- Скрытый текст "Привет, мир!" будет отображаться, если количество сообщений пользователя больше 1 И количество реакций больше 1.
- Скрытый текст "Привет, мир!" будет отображаться, если количество дней с момента регистрации пользователя больше 1 ИЛИ состояние пользователя равно "valid".
- Скрытый текст "Привет, мир!" будет отображаться, если пользователь является членом группы 2 ИЛИ количество трофеев пользователя больше или равно 0.
- Скрытый текст "Привет, мир!" будет отображаться, если пользователь является сотрудником.
Тут приведены для вас, самые элементарные условия и примеры, но, как мы и говорили выше, всё ограничивается лишь вашей фантазией и как вы это хотите видеть. А так же будьте аккуратны с условиями, т.к если вы например укажите
Перед вами, сейчас открыты все двери и возможность создания сложных хайдов, без использования структуры "хайд в хайде".
Но вы наверное спросите, а что если у меня будут ошибки или я захочу вписать неразрешенные теги? А всё просто, если вы впишите левый какой то тег, он просто не будет участвовать в рендере, хотя и может обработаться ошибка, но мы решили сделать только со списком разрешенных. Но а что если допущена ошибка? Вы получите сообщение, об ошибке парсинга.
Мы надеемся увидеть ваши условия и какую фантазию вы примете в реализации различных условий. Ну и на последок, вот вам видосик:
Но это не точно.
Тег
[HIDE]
используется для скрытого содержимого. Если в теге [HIDE=(condition)]
, написано условие, оно будет обрабатывать скрытое содержимое в соответствие с заданными условиями. Внимание! После указания = у вас обязательно должны быть указаны круглые скобки, где означают начало и конец обработки условий. Внутри вы можете использовать как угодно группировку условий и не только. Вы можете использовать следующий синтаксис:Разрешенные выражения (теги):
- posts: Количество сообщений пользователя.
- likes: Счетчик реакций пользователя.
- reactions: Счетчик реакций пользователя (то же, что и likes).
- trophies: Количество трофеев пользователя.
- days: Количество дней, прошедших с момента регистрации пользователя.
- isMemberOf(id): Группа пользователей, для нескольких групп вы можете использовать перечисление.
- username: Имя пользователя.
- user_id: Идентификатор пользователя.
- user_state: Состояние пользователя.
- is_staff: Флаг, указывающий, является ли пользователь сотрудником.
- is_admin: Флаг, указывающий, является ли пользователь администратором.
- is_moderator: Флаг, указывающий, является ли пользователь модератором.
- Арифметические операторы:
Операторы арифметических операций используются для выполнения математических вычислений:- +
- -
- *
- /
- % (остаток от деления)
- ** (возведение в степень)
- Операторы сравнения:
Операторы сравнения используются для сравнения значений и возвращают булев результат:- == (равно)
- === (строго равно)
- != (не равно)
- !== (строго не равно)
- < (меньше)
- > (больше)
- <= (меньше или равно)
- >= (больше или равно)
- Логические операторы:
Логические операторы используются для выполнения логических операций и возвращают булев результат:- and или && (логическое И)
- or или || (логическое ИЛИ)
- not или ! (логическое НЕ)
- Битовые операции:
Битовые операции выполняются над двоичными представлениями чисел:- & (побитовое И)
- | (побитовое ИЛИ)
- ^ (побитовое исключающее ИЛИ)
- Строковые операторы:
Оператор ~ используется для объединения (конкатенации) строк:- ~ (конкатенация строк)
- Операторы массива:
Операторы массива используются для проверки принадлежности элемента к массиву:- in (вхождение в массив)
- not in (отсутствие в массиве)
- Числовые операторы:
Числовой оператор .. используется для создания диапазона чисел:- .. (диапазон чисел)
- Тернарный оператор:
Тернарный оператор ?: используется для выполнения условных операций в одной строке:- ?: (тернарный оператор)
Давайте отобразим хайд, для первых 20 зарегистрированных человек на форуме, соответственно наше условие будет выглядеть так:
[HIDE=(user_id in 1..20)]Привет мир![/HIDE]
user_id in 1..20
Но вы можете указать и для определенных идентификаторов, например, так:
[HIDE=(user_id == 1)]Привет мир![/HIDE]
Идентификатор пользователя 1 (0)
Но это ещё не всё, из-за того, что такая масштабная система, вы можете как угодно придумать данный тег, например просто добавить отрицание
!=
и будут видеть, все кроме определенного пользователя. Вы можете даже использовать тернарные операторы и писать свои условия дальше.Давайте, рассмотрим ещё несколько примеров:
[HIDE=(posts > 1 or likes > 1)]Привет, мир![/HIDE]
сообщение > 1 (0) или реакций > 1 (0)
[HIDE=(posts > 1 and likes > 1)]Привет, мир![/HIDE]
сообщение > 1 (0) и реакций > 1 (0)
[HIDE=(days > 1 or user_state == "valid")]Привет, мир![/HIDE]
день > 1 (0) или Статус пользователя "valid" (valid)
Привет, мир!
[HIDE=(isMemberOf(2) or trophies >= 0)]Привет, мир![/HIDE]
Группа(ы) пользователей: Пользователь или баллов >= 0 (0)
Привет, мир!
[HIDE=(is_staff)]Привет, мир![/HIDE
Команда форума
Тут приведены для вас, самые элементарные условия и примеры, но, как мы и говорили выше, всё ограничивается лишь вашей фантазией и как вы это хотите видеть. А так же будьте аккуратны с условиями, т.к если вы например укажите
==
или ===
оно будет требовать именно равно, а не то сравнение. Исходя из всего этого, включайте свою логику и фантазию и просто творите, как хотите.Перед вами, сейчас открыты все двери и возможность создания сложных хайдов, без использования структуры "хайд в хайде".
Но вы наверное спросите, а что если у меня будут ошибки или я захочу вписать неразрешенные теги? А всё просто, если вы впишите левый какой то тег, он просто не будет участвовать в рендере, хотя и может обработаться ошибка, но мы решили сделать только со списком разрешенных. Но а что если допущена ошибка? Вы получите сообщение, об ошибке парсинга.
Мы надеемся увидеть ваши условия и какую фантазию вы примете в реализации различных условий. Ну и на последок, вот вам видосик: