XenForo 2.1: Офф форум уже обновился до XF2.1 и вместе с этим были рассмотрены ещё ряд улучшений

Вот и настало время последнего обзора нововведений в XF 2.1, которые как и все предыдущие, уже можно посмотреть и покликать на .

Но, всё же рассмотрим ещё ряд улучшений, которые требуют внимания к себе.

JSON conversion

Традиционно мы всегда использовали встроенные функции сериализации PHP как способ преобразования массивов данных в строковые для хранения в базе данных. Хотя для использования сериализации все еще есть некоторые преимущества, мы обновили большую часть нашей системы, чтобы использовать JSON в будущем.

Также есть некоторые преимущества в использовании JSON, в том числе, что он технически "безопасен", поскольку он не может кодировать/декодировать объекты PHP. Но есть и некоторые долгосрочные перспективы, которые могут быть более актуальны в будущем.

Одним из таких преимуществ является то, что более новые версии MySQL поддерживают JSON в качестве типа данных более естественным образом, что добавляет множество новых способов непосредственного взаимодействия с массивоподобными данными. Мы пока не готовы поддерживать это, поскольку это потребует MySQL 5.7/8.0 (или эквивалент), но это, безусловно, будет чем-то полезным для нас и сторонних разработчиков в будущем. Самым большим препятствием для этого в настоящее время является то, что более 70% нашей существующей клиентской базы используют версии MySQL, которые не будут поддерживать дополнительные функции JSON, поэтому, если Вы попадете в эту категорию, тогда мы рекомендуем начать планировать свои обновления MySQL сейчас :)

С точки зрения развития мы рекомендовали бы разработчикам следовать примеру и переносить свои существующие данные в JSON. Чтобы помочь в преобразовании, мы добавили некоторые вспомогательные методы, которые вы можете использовать из своих классов установки. Вот пример этапа обновления в XFMG:

PHP:
public function upgrade902010010Step5(array $stepParams)
{
    $position = empty($stepParams[0]) ? 0 : $stepParams[0];

    return $this->entityColumnsToJson('XFMG:MediaNote', ['note_data'], $position, $stepParams);
}

Для выполнения преобразования требуется короткое имя объекта и массив имен столбцов. Последние два аргумента являются необязательными, но рекомендуется, если вы конвертируете значительный объем данных, так как он позволяет обрабатывать и возобновлять процесс.

Круглые аватары по умолчанию

XF 2.1 по умолчанию отображает круглые аватары. Они немного более эстетичны:

1541677906259.png

1541677920531.png
Это объясняет новый онлайн-индикатор ?
Тем не менее, некоторым людям могут не нравится круглые аватары, и если это так, Вы можете использовать новую настройку стиля, чтобы сделать их квадратными:

1541678127052.png
Изменение этого значения на 2px даст им тот же вид, что и в XF 2.0.

Аватар последнего ответившего в разделах на главной

Если уже речь зашла про аватары, то мы так же добавили вывод аватара последнего ответившего в разделах на главной.

1541678308925.png
Чтобы предоставить нам достаточно места для размещения аватаров, мы изменили статистику тем/сообщений для отображения в сокращённом формате, например. 1,4K, а не 1,396.
BB-коды и расширенный редактор текста для сообщений профиля и комментариев

Для некоторых форумов сообщения профиля являются важным фактором, помогающим Вашим пользователям общаться друг с другом. Однако общий опыт создания этого контента не так развит, как, скажем, стандартные сообщения на форуме. Поэтому мы подумали, что пришло время изменить это :)

1541678579866.png

1541678588896.png
Создание сообщений профиля теперь позволяет использовать полнофункциональный текстовый редактор, BB-коды (и Markdown), смайлики и все, что с ним связано.

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

Вот сообщение профиля с полным форматированием:

1541678959372.png
Так же Вы можете заметить ещё некоторые изменения. Раньше чтобы прокомментировать сообщения в профиле, Вы должны были кликнуть по ссылке "Комментарий" в панели действий профиля.

Основная проблема заключается в том, что если у Вас длинный список комментариев, Вам придется прокручивать вверх, чтобы нажать ссылку "Комментарий". Как Вы можете видеть выше, теперь у нас есть подсказка "Написать комментарий ..." непосредственно под списком комментариев. Нажав на эту кнопку, как уже упоминалось выше, загрузится редактор, который, опять же, также поддерживает форматирование:

1541679306594.png
Если Вы предпочитаете старый подход к для комментариев в профиле, мы также поддерживаем это. Вы можете просто отключить новый режим в настройках стиля:

1541679480676.png
Улучшеная поддержка iPhone X/Xr/Xs

Любой, кто в настоящее время имеет iPhone с "выемкой" или "вырезкой дисплея", например, iPhone X, будет знаком с чем-то вроде этого:

1541679656026.png
У iOS автоматически есть отслеживание, гарантирующее, что ни один контент не будет скрыт вырезами. Это существенно ограничивает область просмотра, так что содержимое вписывается в "безопасные области видимости".

Однако в XF 2.1 мы немного улучшили это, чтобы мы могли использовать полную ширину экрана для просмотра, в то же время с сохранением контента, что бы не скрывался за вырезом. (Чуть каламбуроно, но попытался передать суть проблемы и решения). Похоже на это!

1541679940943.png
В настоящее время это проверено и работает в Safari на iOS, но теоретически он должен работать на устройствах на базе Android P (таких как Google Pixel 3). Если не сейчас, то это, безусловно, будет выглядеть в будущем (это довольно новая функция Chrome).

Если вам повезет с Google Pixel 3 под управлением Android P, было бы здорово, если бы вы могли сообщить нам, похоже ли это на скриншот XF 2.0 выше или больше, как на скриншот XF 2.1 :)

Поддержка и автоматическая обработки запросов на отмену подписки с использованием заголовка List-Unsubscribe в письмах

Большинство писем в XenForo являются чисто транзакционными и не требуют такого же подхода с точки зрения отказа от подписки на них. Но для электронных писем, отправленных через страницу "Отправки электронных писем пользователям" в админке, пользователи получат их только в том случае, если они были выбраны, и мы предоставляем легкую ссылку в нижнем колонтитуле электронной почты для отказа от них (что не требуют входа в настройки пользователя и отключают "Получать новости и обновлять электронные письма").

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

Клиенты, которые поддерживают эту функцию, будут отображать более заметную ссылку на отмену подписки, поэтому Вашим пользователям не нужно искать ее в самом электронном письме. Вот некоторые примеры:

1541681471392.png
Механизм, который отображает ссылку "Отказаться от подписки" - это включение специального заголовка в электронное письмо, называемое List-Unsubscribe. Значение, которое большинство почтовых клиентов предпочитает, это что бы содержался адрес электронной почты, при клике на который отправляется электронное письмо. В настройках электронной почты есть новый вариант, который позволяет указать адрес электронной почты, на который отправляются запросы на отмену подписки:

1541681754689.png
Вы можете просто обработать эти письма вручную, если хотите. Но должен быть лучший способ!

1541681811110.png
Если Вы когда-либо настраивали автоматическую обработку сообщений об отказе, это будет Вам знакомо. Чтобы автоматически обрабатывать запросы на отказ от рассылки, Вам нужно будет создать новый почтовый ящик специально для этой цели и убедиться, что он доступен через соединение POP3 или IMAP. Когда Вы заполните эти поля соответствующей регистрационной информацией, XF будет периодически заходить в этот почтовый ящик за Вас, читать любые отправленные там письма и отключать предпочтения "Получать новости и рассылки электронной почты" для пользователей, которые решили отказаться от подписки.

Новые настройки аутентификации

Так как мы наконец, попрощались с PHP 5.4, то можем еще больше улучшить наши инструменты, используемые для создания и проверки хэшей паролей. Начиная с XF 2.0 мы уже пытались использовать следующие функции, которые были добавлены в PHP 5.5, если они были доступны:
Теперь все будут работать с PHP 5.6 как минимум, и мы можем использовать собственные функции PHP для всех наших потребностей в хешировании паролей.

Поскольку мы использовали Bcrypt для наших хэшей паролей, это было до того, как он стал полностью поддерживаем PHP, и даже сегодня он остается алгоритмом хэширования по умолчанию даже для PHP 7.2 и 7.3.

Но со временем PHP добавит дополнительные методы хэширования, и было бы идеально, если бы мы могли просто поддержать их из коробки, не имея необходимости делать какие-либо изменения кода. Вышеупомянутые функции служат согласованным интерфейсом и, следовательно, дают нам часть пути к тому, чтобы быть гибкими, но до сих пор на самом деле не было простого способа использовать другой алгоритм, если он был доступен, или поддерживать более гранулированную конфигурацию.

Однако PHP фактически реализовал (технически) два новых алгоритма хеширования пароля, основанных на . Это было впервые введено в PHP 7.2 с использованием варианта, известного как Argon2i, и его дальнейшее совершенствование в PHP 7.3 с использованием варианта, известного как Argon2id.

По умолчанию XF всегда будет использовать доступный по умолчанию или наиболее широко используемый алгоритм хеширования пароля, поэтому в этом случае это Bcrypt. Но если у вас есть соответствующая версия PHP и требуемые предварительные условия (PHP должен быть скомпилирован с поддержкой Argon2), тогда мы должны разрешить Вам использовать это, поэтому в XF 2.1 это теперь доступно. И это так же просто, как пара дополнительных строк в src/config.php.

Ниже приведена поддержка Argon2i, если вы используете PHP 7.2:

PHP:
$config['auth'] = [
   'algo' => PASSWORD_ARGON2I
];

Ниже приведена поддержка Argon2id, если вы используете PHP 7.3:

PHP:
$config['auth'] = [
   'algo' => PASSWORD_ARGON2ID
];

И, хотя это не требуется, потому что значения по умолчанию PHP должны быть достаточными (и со временем увеличится), Вы даже можете сделать свои хэш-коды еще более безопасными, передав дополнительные параметры для управления различными факторами:

PHP:
$config['auth'] = [
   'algo' => PASSWORD_ARGON2ID,
   'options' => [
      'memory_cost' => 1<<17,
      'time_cost' => 4,
      'threads' => 2
   ]
];

Благодаря гибкости API хеширования паролей в PHP любые изменения в алгоритме и параметрах автоматически вызывают повторное пересоздание существующих паролей при входе пользователя в систему.

Хотя мы настоятельно рекомендуем использовать последнюю версию PHP, которую мы поддерживаем, а также рекомендуем использовать хеширование Argon2i/id там, где это возможно, Вам нужно так же понимать, что если когда-либо понадобится понизить PHP или перейти на другой сервер. Если Argon2 внезапно становится недоступным по какой-либо причине, то Вы, скорее всего, столкнетесь с ошибками и не сможете авторизоваться по старым паролям, не сделав сначала сброс пароля.

Возможность просмотра поля пароля при входе в систему

Нет ничего хуже, как это чувство, которое Вы получаете, когда набираете свой пароль, и Вы просто знаете, что могли каким-то образом удалить лишний символ или случайно добавили. Вы понимаете, пароль будет неверный и отклонён, но Вы не можете проверить пароль, потому что он скрыт. И Вам просто нужно начать вводит его заново.

1541683743419.png
Я уверен, что допустил ошибку при вводе моего супер безопасного пароля ... ?

Явно показательно :) В XF 2.1 Вы просто нажимаете кнопку "Показать", чтобы увидеть пароль:

1541683875086.png
Я знал это! Черт тебя, толстые пальцы! ?
Просто убедитесь, что никто не стоит за вашей спиной и не подсматривает ?

Проверка сложности/надежности пароля с помощью zxcvbn

На протяжении многих лет у нас было желание реализовать требования к сложности пароля, но, в сущности, они не имеют потенциала. По опыту все наши попытки это лишь разочарование, даже в сочетании с автоматическим истечением срока действия пароля, это просто приводит к использованию одного и того же пароля снова и снова с другим символом на конце: :rolleyes:

В идеальном мире все люди будут использовать инструменты для работы с паролями, такие как 1Password или LastPass, но на самом деле люди все еще используют (откровенно) мусорные пароли, чтобы облегчить их запоминание. Возможно, Вы знакомы со следующим комиксом:

1541684501522.png
Более того, просто обучение пользователей - лучший подход. Большинство людей действительно не знают, что составляет хороший или сильный пароль, и часто они об этом не думают.

Вышеприведенный комикс в значительной степени вдохновил Dropbox на то, чтобы придумать лучший способ оценки сложности пароля, и они придумали , который мы теперь реализовали в XF 2.1. Когда пользователь сталкивается с возможностью выбора нового пароля, он увидит следующее:

1541684584959.png
Помимо визуального указания сложности пароля, в нем также приводится описание того, почему пароль, который вы выбрали, слабый:

1541684837157.png
Все в надежде, что однажды они увидят что используют что-то сложное, но легко запоминающееся, как мой любимый пароль:

1541684933352.png
Новый провайдер двухфакторной авторизации: Authy OneTouch

Подождите, я только что показал свой пароль? Даже если бы я это сделал, это не имеет значения. Я использую двухфакторную аутентификацию! Как бы там ни было, иногда процесс может казаться немного длинным. Однако с XF 2.1 теперь можно включить поддержку Authy OneTouch на вашем форуме, что позволяет отправлять push-уведомление в ваше приложение Authy для подтверждения входа в систему. Здесь он показан в действии:

authyonetouch.gif
Чтобы включить это, вам сначала нужно зарегистрироваться в Twilio и создать необходимое приложение и получить ключ API. Этот ключ можно ввести в новый интерфейс, который мы добавили для просмотра провайдеров двухфакторной авторизации.

1541685728612.png
Хотя здесь не так много, что может быть сделано для большинства поставщиков, это обеспечивает новый и согласованный пользовательский интерфейс для разработчиков, чтобы добавить более продвинутые параметры для пользовательских провайдеров двухфакторной авторизации в будущем.

После того, как провайдер Authy подключён, пользователи могут начать его настройку. Если у них еще нет приложения Authy на своих телефонах, им будет отправлена ссылка на него в процессе подключения.

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

Прежде чем настраивать Authy, возможно, стоит , поскольку они имеют только триальное ограниченное использование. Затем последующие push-аутентификации взимаются по 0,09 доллара США, что может быть значительным для некоторых сообществ. Тем не менее, в зависимости от вашей аудитории у Вас может быть меньше людей, активно использующих двухфакторную авторизацию и из тех, которым она нужна, скорее всего, нужно будет проходить проверку подлинности только через каждые 30 дней.

Возможность сортировки пользовательских полей

В XF 2.1 мы добавили возможность сортировки пользовательских полей выбора, это очень просто, используя перетаскивание:

field_order.gif
Для разработчиков, если вы хотели бы реализовать свои собственные перетаскиваемые списки в своих дополнениях, мы сделали это простым с нашими новыми классами sort.js и XF.ListSorter. Для расширенных вариантов использования Вы можете использовать nestable.js или что-то более обычное, но для простых случаев, как показано выше, это должно быть довольно полезно.

Вот и подошёл к концу последний обзор нововведений в XF2.1, но достаточно слов, пора уже и протестировать их, это можно сделать на офф форуме, а там сморишь и вживую, если всё пойдёт как нужно и не будет значительных багов и ошибок. :cool:

А в тоже время, будет начата работа над XF2.2, но всему своё время. :devilish:
 
Hope, Ну хз, мне они например более приятны, я сам закруглял в данный момент.
 
Hope, есть настройки
 
Hope, Согласен аватары круглые гамНо.
 
  • Мне нравится
Реакции: Hope
Странно, что их добавили в самый конец строки, могли бы сделать по аналогии с разделами, посл количества сообщений, может еще исправят в бете, но пока вид довольно странный.
 
Единственное что мне понравилось в новом - это эффект blur при открытии формы входа и регистрации
 
Почему никто не сказал, что круглые аватары дерьмо или я один это вижу?
круглые аватары действительно дерьмо. я даже переживала по этому поводу.

какие плагины теперь не нужны, кроме блокнота?
 
Последнее редактирование:
У меня юзеры целую войну развязали, против круглых ав. Самый забавный ответ защитников - "круглые аватары похожи на смайлы, тока смешнее")
Mirovinger, спасибо за обзор. Хорошо, что добавили редактор в публичные сообщения.
 
Насколько теперь плагины встанут/не встанут на новую версию. и что придется авторам обновлять, интересно?
 
Уже описывали, основной проблемой это будут иконки FA, что не критично и лайки заменили на реакции, отсюда дополнения связанные с лайками, придётся корректировать.
 
Да ладно вам. Круглые аватары смотрятся так же хорошо, как и квадратные (ВКонтакте тому пример). Просто более специфично.

Вопрос стоит по-другому: как они вписываются в дизайн? А вот тут уже можно поспорить)

Плюс, значение имеет и то, какая форма аватары стоит на форуме по умолчанию - с самого старта. Люди к ней привыкают, а потом не хотят изменений.
 
Последнее редактирование:
Насколько теперь плагины встанут/не встанут на новую версию. и что придется авторам обновлять, интересно?
Упорно не тестировал, но из опыта который есть, после обновления копии рабочего форума на тестовом домене, практически все плагины продолжили работать. Есть некоторые которые не завелись, но это процентов 5 от общего кол-ва, а их стоит порядка 60 плагинов.
 
Ребзя, кто-нить в курсе, когда ориентировочно ожидать релиз?
 
Мне кажется, где-то в середине января-начале февраля.
Чисто догадка.
 
Как поставить зелёный онлайн статус в угол?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу