2 заметки с тегом

xenforo

Пользовательские настройки стиля

Когда-то смотрел стили у XenFocus, и очень понравилась идея с возможностью пользователю самому менять какие-то части стиля. Тот же фон, например. Администратор заливает какие-то картинки на сервер, указывает их в свойствах стиля, а они становятся доступны для выбора пользователем. Или переключатели, позволяющие, к примеру, поменять сторону у сайдбара. Вот был он слева, а стал справа.

Я солидарен с XenFocus, и считаю, что такие вещи не должны выноситься в свойства стиля, которые доступны только администратору, и которые распространяются на всех сразу. Они должны выноситься именно в пользовательские настройки, а пользователь уже сам решает, что ему нужно, а что — нет.

Не забудьте нажать «Demo»!

XenFocus сделал это через JS и хранение в локал сторейдже. Простая, но в то же время неплохая задумка толком не реализована никак отдельно от его стилей. Before this day.
Какое-то время я потратил на реализацию дополнения, реализующего этот же механизм. Но без необходимости конечным администратором писать JS-код. Он пишет только LESS, который и активируется на странице. А дополнение само всё делает :)

Админка
Пользовательская часть

Пока что,

  1. Мы умеем выводить только обычные галочки. При активации которых после сохранения, активируется нужный LESS-код. Именно LESS, не CSS. Но заранее откомпилированный на сервере, и имеющий доступ ко всем свойствам стиля XenForo, если очень нужно.
  2. Админка совсем сырая :(
  3. Кешей нет почти. Каждый запрос к каждой странице провоцирует один дополнительный запрос за включенными настройками. Зато LESS компилируется единожды через стандартный механизм движка.

Из приятного, если сравнивать с реализацией Фокуса: настройки сохраняются на сервере, тут же «бродкастятся» (передаются) в рамках браузера на соседние вкладки с этим же сайтом. На остальных устройствах потребуется или обновить страницу, или спровоцировать любой поход на сервер по AJAX. Как настроили ресурс — так его и видите везде. Ну, почти. Помним про адаптивность, и размеры экранов.

После первоначального релиза, который состоится явно не раньше, чем два последних пункта из списка выше будут поправлены, хотелось бы сделать ещё:

  1. Хранение разных значений настройки для разных стилей.
  2. Возможность делать те или иные настройки — недоступными для некоторых стилей.

Ах да, цена. Я не знаю пока ещё сам, как дополнение будет распространяться. С одной стороны, я выпустил уже много дополнений бесплатно на всеобщее пользование, и некоторые из них реально используются много где (тот же вход через Телегу), с другой — кошелёк мой пустеет с каждым днём, донаты прибывают раз в столетие, а люди порой не понимают, что на дополнение я потратил время, и что было бы неплохо закинуть немного на кофе/пропитание, чтобы хоть как-то восполнить то время, что я потратил фактически на них, а мог пойти запилить что-то кому-то в приват или вообще на работу уйти...
Так что этот вопрос я пока оставлю без ответа.

Если кого-то заинтересовало — ждите релиз на оф. форуме в ближайшее время (неделя-две). А прямо сейчас дополнение можно уже пощупать на HLmod, но потребуется зарегистрироваться (платно, 150р; ценник выставляю вовсе не я).

 Нет комментариев   2 мес   php   style options   user   xenforo

[Telegram] Core: приближающийся мажорный v2.1

Близится дата релиза следующего «мажорного» апдейта [Telegram] Core, и на момент написания заметки, уже вышли основные изменения, которые будут представлены в новой версии:

  • Несколько ботов. Может использоваться сторонними дополнениями для некоторых специфичных задач.
  • Более удобное API для реализации команд.
    • Для реализации команды, достаточно написать небольшой класс-хандлер (наследуется от специального класса).
    • Ядро строит цепочки обработчиков для той или иной команды. К примеру, есть «супер-обработчик» /start, который при виде специального аргумента, передаст управление на обработчики команды /auth.
    • Пока что необходимо вручную «вставлять» запись в базу при установке; при удалении — удалять. Позже будет механизм импорта/экспорта, как основная часть метаданных самого движка сделана (те же шаблоны).
  • Markdown Renderer. Теперь можно те же темы «рендерить» для отправки в Telegram. Единственные ограничения — это сам Markdown; те же таблицы никак не отрисовать.
  • Пользовательские команды. Можно реализовать свою команду по типу /rules, которая будет выводить относительно статический контент. Может быть полезно в групповых чатах. Для групповых чатов так же позже будет выложено отдельное дополнение, которое расширит возможности интеграции.
  • Клиент и API теперь можно расширять через функционал движка Class extensions.

Обновление

При обновлении на новую версию будут выполнены следующие действия:

  1. Созданы таблицы для хранения обработчиков команд (xf_smodders_tgcore_command), пользовательских команд (xf_smodders_tgcore_user_command) и ботов (xf_smodders_tgcore_bot).
  2. В таблицу обработчиков команд будут занесены все стандартные обработчики (их два): /start и /auth.
  3. Будет произведён импорт токена в «ботов», установлен «бот для авторизации» в настройках интеграции.
  4. Перестроен локальный кеш команд. Пока что он глобальный, но к релизу он станет локальным для каждого бота, и можно будет выключать обработку тех или иных команд для бота индивидуально

Админка

Все скриншоты были сделаны на версии движка XenForo v2.1.10 Patch 2 и версии дополнения [Telegram] Core v2.0.5 Alpha 8
После установки обновления, в админке появится отдельный раздел Telegram

Раздел в админ-панели

В «интеграции с социальными сетями», привычный интерфейс ввода токена заменится на выпадающий список с выбором уже созданного бота.

Выбор бота

В интерфейсе редактирования бота, по сути, есть только одно важное поле для заполнения: токен доступа (он же «Ключ доступа» в русской локализации).

Интерфейс редактирования бота

Если не заполнять заголовок, туда автоматически подставится юзернейм бота.
Если бот был импортирован с прошлой установки — он получит «заголовок» Authorization bot (@username).

«Пользовательские» команды крайне минималистичны на данный момент. При создании команды, Вам нужно заполнить только два поля: сама команда и ответ бота на неё.
В ответе работает шаблонизатор XenForo, и доступна глобальная переменная $xf, что позволяет, к примеру, делать такие штуки:

Пользовательская команда, отправляющая пользователю ссылку на правила

При выполнении любой команды, ядро переводит контекст исполнения (активного пользователя, шаблон и язык) по привязанной учётной записи — на форумную учётную запись.
Позже будут добавлены более гибкие настройки для команды, но пока — как-то так.

Прямо сейчас Вы можете установить текущую альфа-версию на свой форум, но понадобится собрать релизную версию или включить на «продакшене» режим разработчика (как?) и установить дополнение через консоль. Все исходники, как и прежде, доступны на GitHub.

О номере версии

По плану, версия 2.1 должна была быть представлена как 2.0.5 (о чём можно догадаться из текущего версионирования), но было решено поднять мажорную версию в связи с серьёзностью внесённых изменений.

10 мес   addons   telegram   telegram core   update announcement   xenforo