В этом обновлении мы исправили не мало багов и добавили новые возможности, расширили функциональность и упростили жизнь разработчикам. Полностью обновлено поле телефона, добавлена поддержка эмодзи, улучшены блоки объявлений, улучшены процессы отправки писем и внедрен механизм внесения индивидуальных доработок в движок без изменения системных файлов.
Отключение “.html” в ссылках на всех страницах
Это очень востребованная опция появилась только сейчас, потому что нам пришлось обновить систему генерации ссылок не только в самом движке, но и во всех 80 плагинах. Спустя время работа в этом направлении завершена, и теперь мы можем с радостью сообщить: концовку ссылок на всём сайте можно переключить с .html на / (слеш).

Некоторые SEO-специалисты утверждают, что слеш на конце ссылок важен для продвижения. Что ж, теперь ничто не помешает вам выйти на новый уровень SEO-оптимизации.
Обновленный тип поля «Телефон»
Обновления телефонного номера ждали многие — и на это была веская причина. Старое поле выглядело устаревшим, было неудобным в заполнении и давно потеряло актуальность. В этом обновлении мы полностью пересмотрели работу с полем «Телефон».

На странице добавления/редактирования объявления поле превратилось из нескольких разрозненных элементов в одно, что делает ввод номера значительно удобнее. Добавлен выбор страны, шаблон форматирования и моментальная валидация, благодаря чему поле стало современным и простым в использовании.

У администратора появились новые настройки формата телефонного номера:
- отображать флаг страны или нет;
- фиксировать формат определённой страны — удобно, если сайт работает на один регион;
- отображать или скрывать код страны.

Используя эти опции, можно добиться нужного вида поля. Старые параметры — скрытие номера и иконки соцсетей — также сохранились, поэтому новые телефонные поля стали максимально функциональными.
Поддержка эмодзи в текстовых полях

Интернет любит эмодзи, и отсутствие их поддержки было нашим упущением. В новой версии мы добавили их для всех текстовых полей в объявлениях и профилях. Продавцы смогут выделять заголовки и описания популярными эмоциями, делая объявления заметнее и привлекательнее.
Кнопки «Просмотреть все» и «Показать ещё» в блоках объявлений
Для начала отметим, что функционал создания блоков с премиум-объявлениями был удалён из ядра и перенесён в плагин «Блоки объявлений». Это позволило избежать путаницы и добавить новые возможности.

Теперь, установив последнюю 3.2.0 версию плагина в последней версии движка, вы получаете три новых опции:

- фильтрация объявлений внутри блока по нескольким полям (например, только новые авто в кузове седан);
- отображение кнопки «Показать ещё» внизу блока (раньше это контролировалось ядром);
- отображение ссылки «Просмотреть все» в правой части заголовка блока, что удобно для перенаправления новых посетителей.

Отправка сообщений в фоновом режиме
Возможность сугубо техническая и визуально не заметна. С включённой опцией процессы, в которых требуется отправка писем, выполняются значительно быстрее: письмо не отправляется сразу, а ставится в очередь и обрабатывается в фоне. Например, после размещения объявления пользователь не будет ждать отправки письма — он сразу перейдёт на финальный шаг и продолжит работу с сайтом.
Внесение доработок в движок без изменения системных файлов
Это обновление будет особенно полезно разработчикам. В скрипт добавлен механизм, позволяющий избегать редактирования системных файлов. Вместо этого разработчик может подключать свой PHP-файл и использовать систему хуков, внедряя доработки без вмешательства в ядро.
<?php
class rlCustom
{
public function __construct()
{
// Option 1: Anonymous Function (for simple actions)
$GLOBALS['rlHook']->addCustomHook('tplHeader', function() {
echo '<link rel="stylesheet" href="/custom/my_styles.css" type="text/css" />';
});
// Option 2: Calling a method from this class (for complex logic)
$GLOBALS['rlHook']->addCustomHook('listingsModifyWhere', [$this, 'hookListingsModifyWhere']);
}
// Method for the `listingsModifyWhere` hook
public function hookListingsModifyWhere(&$sql)
{
// Add a condition to select only "Featured" listings
// The `&` before `$sql` means the variable is passed by reference and will be modified in the core.
$sql .= " AND `T1`.`Featured_ID` > 0 ";
}
}
Если в нужном месте нет подходящего хука, разработчик может скопировать необходимый файл в директорию /custom/ и работать уже с ним, не затрагивая системные файлы.

Главная цель этой системы — исключить изменения в системных файлах, что значительно упрощает процесс обновления скрипта.
Исправленные ошибки:
- Решена ошибка при обновлении фотографий в админ-панели. Добавлена возможность продолжить обновление с места последней остановки
- Решена проблема генерации имен пользователей с нелатинскими символами
- Исправлена ошибка, возникающая при редактировании объявлений на сайте при сокращении языков с нескольких до одного
- Устранены ошибки при загрузке встроенных и коротких видео с Youtube
- Исправлена ошибка, при которой администратор не мог загружать фото в новости, у которых расширения написаны с заглавной, например, *.JPG
- Исправлены ошибки при установке или обновлении плагинов, возникавшие на некоторых серверах
- Исправлен баг с ошибочным восстановлением объявления из корзины после пересчёта объявлений по категориям в админ-панели
- Опция «Премиальный блок» перенесена из настроек типа объявлений в плагин «Блоки объявлений»
- Добавлена возможность активации продукта, связанного с платной транзакцией через админ-панель в менеджере транзакций
- Исправлено RTL отображение полей и их значений для арабского языка
- Устранена ошибка, при которой поле «дата публикации» не отображалось на странице объявления. Поле перемещено в раздел статистики
- Устранена ошибка с истекшим статусом в объявления, добавленных в рамках неограниченного плана, после обновления через крон-скрипт
- Исправлено несколько ошибок для администратора с ограниченным доступом
- Исправлена ошибка с отсутствующим названием объявления в письме для администратора, после его редактирования пользователем
- Исправлена ошибка с отсутствующим названием пакета в письме после приобретения пользователем бесплатного пакета
- Исправлена ошибка при валидации не ASCII символов в полях с проверкой на domain, website и email
- Устранена ошибка, при которой отправлялось несколько неверных email-уведомлений администратору о редактировании объявления пользователем
- Исправлена ошибка при изменении порядка отображения фотографий, добавленных незарегистрированным пользователем
- Устранена проблема отображения активных объявлений у деактивированного пользователя
- Решена ошибка на странице добавления объявления, возникавшая у некоторых пользователей после перевода системы на предыдущую версию
- Решена ошибка на странице добавления объявления, возникавшая у незарегистрированных посетителей при использовании планов подписки
- Решена ошибка дублирования номера страницы в названии страницы результатов поиска
- Устранены проблемы при изменении типа пакета объявлений с множественных объявлений на одиночное
- Исправлены ошибки, возникавшие при загрузке файлов в объявление
