Масштабное обновление хайда!

image-57.png
Мы вернулись, детка. Уже давно вы не видели новостей от нас или каких-то нововведений, но мы всё это время долго работали, над разными аспектами, многие, которые коснулись различных сфер и аспектов форума, многие конечно они коснулись внутренним механикам форума и модерации/администрирования, но они вам будут мало интересны. И так сейчас мы поговорим об одном, но большом улучшение форума. Это хайд, много лет для поддержки нескольких хайдов, вы вставляли несколько хайдов в 1 сообщение. Сейчас мы решили данную проблему, а также теперь вы можете писать условия хайда, настолько, насколько позволяет ваша фантазия. В будущем мы реализуем какие-то функции, которые вы можете просто написать в условие хайда. И так, что же нового? Давайте посмотрим под капот.
Тег [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)
- Скрытый текст "Привет, мир!" будет отображаться, если количество сообщений пользователя больше 1 ИЛИ количество реакций больше 1.

[HIDE=(posts > 1 and likes > 1)]Привет, мир![/HIDE]
сообщение > 1 (0) и реакций > 1 (0)
- Скрытый текст "Привет, мир!" будет отображаться, если количество сообщений пользователя больше 1 И количество реакций больше 1.

[HIDE=(days > 1 or user_state == "valid")]Привет, мир![/HIDE]
день > 1 (0) или Статус пользователя "valid" (valid)
Привет, мир!
- Скрытый текст "Привет, мир!" будет отображаться, если количество дней с момента регистрации пользователя больше 1 ИЛИ состояние пользователя равно "valid".

[HIDE=(isMemberOf(2) or trophies >= 0)]Привет, мир![/HIDE]
Группа(ы) пользователей: Пользователь или баллов >= 0 (0)
Привет, мир!
- Скрытый текст "Привет, мир!" будет отображаться, если пользователь является членом группы 2 ИЛИ количество трофеев пользователя больше или равно 0.

[HIDE=(is_staff)]Привет, мир![/HIDE
Команда форума
- Скрытый текст "Привет, мир!" будет отображаться, если пользователь является сотрудником.

Тут приведены для вас, самые элементарные условия и примеры, но, как мы и говорили выше, всё ограничивается лишь вашей фантазией и как вы это хотите видеть. А так же будьте аккуратны с условиями, т.к если вы например укажите == или === оно будет требовать именно равно, а не то сравнение. Исходя из всего этого, включайте свою логику и фантазию и просто творите, как хотите.
Перед вами, сейчас открыты все двери и возможность создания сложных хайдов, без использования структуры "хайд в хайде".
Но вы наверное спросите, а что если у меня будут ошибки или я захочу вписать неразрешенные теги? А всё просто, если вы впишите левый какой то тег, он просто не будет участвовать в рендере, хотя и может обработаться ошибка, но мы решили сделать только со списком разрешенных. Но а что если допущена ошибка? Вы получите сообщение, об ошибке парсинга.
1684253093241.png
Мы надеемся увидеть ваши условия и какую фантазию вы примете в реализации различных условий. Ну и на последок, вот вам видосик:
Но это не точно.
 
А можно как-то список игнорированных подтянуть как массив айдишников? :D Чтобы всегда закрывать всем хейтерам доступ!
 
  • Ха-ха-ха
Реакции: kick
Projack, конкретно, кого автор игнорирует или же те, кто игнорируют автора?
 
Projack, конкретно, кого автор игнорирует или же те, кто игнорируют автора?
О, а это идея, тролить тса, постя в его триде хайды с игнором (чтобы только он не смог хайд пройти) его самого. :pandaredlol:
 
Projack, конкретно, кого автор игнорирует или же те, кто игнорируют автора?
Ну вторая информация как будто бы приватная и дело каждого, но! Хейтеры должны страдать

А что и так работает?
not Команда форума
Лютая запрещенка, реклама и нарушение всех правил форума!
 
Последнее редактирование:
Ну вторая информация как будто бы приватная и дело каждого, но! Хейтеры должны страдать

А что и так работает?
*** Скрытый текст не может быть процитирован. ***
Админы видят хайды
 
Почему нет репутации?
Чтобьі 0 ставить, и у тех кого минус хайд не работал)
P.S. я что зря всем минусьі ставлю?)
 
  • Ха-ха-ха
Реакции: kick
Ну вторая информация как будто бы приватная и дело каждого, но! Хейтеры должны страдать
Ну так если они игнорируют автора хайда, то и не факт, что будут читать и его пост. Ведь не все даже видят кнопку после всех постов "Показать игнорируемые публикации"
1684403456135.png
А в статистике и так не будет видно тем. Может всё таки наоборот? Что бы не видели хайд те, кого игнорирует автор?)
 
Назад
Сверху Снизу