Как мы обещали в предыдущем посте, этот релиз будет в большей степени посвящен интеграции нового функционала. Обещание свое мы выполнили и постарались добавить как можно больше новых возможностей и улучшений в наш движок доски объявлений. Некоторые улучшения позволили повысить общую производительность и скорость загрузки страниц сайта. Мы также распространили возможности, которые были доступны только скрипту для создания сайта услуг, на наши другие скрипты.
Улучшена производительность
Раньше внутренний модуль кэширования давал возможность использовать 3 типа кэша: «file» (хранение данных в файлах на сервере), «memcached», «apc». По умолчанию используется файловая система для хранения кэшированных данных в виде JSON строк. При больших нагрузках или большом количестве хранимых данных система могла тратить много времени и ресурсов сервера для доступа к таким данным, что замедляло работу сайт в целом. Также с приходом PHP 7 версии модуль «apc» устарел и был заменён на «apcu».
Мы переработали внутренний алгоритм кэширования данных и для большей производительности интегрировали использование symfony/cache компонента. Это позволило использовать единый интерфейс для работы с данными вне зависимости от типа используемого кэша. Теперь хранение данных в файлах использует нативные PHP массивы, что кратно увеличило работу с ними. При этом директива «opcache.enable» должна быть включена в настройках PHP (php.ini). Использование модуля «apc» заменено на «apcu», который совместим с PHP 7 и 8 версии. Также добавили возможность использования Redis как альтернативного хранилища для кэшированных данных.
Интегрирован сервис перевода «DeepL»
В предыдущей версии движок позволял использовать только Google Translator для перевода фраз в системе при создании нового языка. Теперь система переводов языков и фраз вынесена в отдельные модули, что позволило интегрировать сервис DeepL API как альтернативный переводчик. Теперь в админ-панели два сервиса перевода фраз на выбор. Сервисы Deepl предоставляются на платной основе.
Обновлена библиотека «Fancyapps»
Мы используем библиотеку Fancyapps для отображения изображений в красивой галерее на странице деталей объявления: с возможностью прокрутки, увеличения фотографий, а также просмотра в режиме слайдшоу.
Мы обновили версию данной библиотеки до версии 5.0.33 и всех её используемых модулей, чтобы иметь актуальную версию со всеми решёнными в ней ошибками, улучшениями и иметь возможность пользоваться всеми её возможностями. Также обновлённая версия позволила использовать её модули в блоках категорий и заменить старый код, который использовался там для скроллинга большого списка категорий.
Переработан новостной модуль
Модуль новостей был серьёзно переделан и улучшен. Добавлена возможность создавать/редактировать категории новостей, чтобы разделить новости по темам. Добавлен счётчик просмотров в новостях, который отображается как в пользовательском интерфейсе сайта в новостях, так и в менеджере новостей у администратора. Появилась долгожданная возможность загружать фото для новости.
На страницу статьи мы добавили блок «Читать больше новостей». Блок может отображать другие новости из той же категории или свежие новости из других категорий.
Переработана структура блоков категорий
Мы обновили и улучшили структуру блоков с отображением категорий во всех скриптах. Перенесли часть настроек отображения категорий из настроек типа объявлений непосредственно в настройки самих блоков с категориями для удобства настройки. Добавили несколько опций для настройки отображения категорий в блоках: «Формат отображения категорий в блоке», «Стиль кнопки «Загрузить ещё», «Объединить с другими блоками категорий».
Новая опция «Объединить с другими блоками категорий» позволяет объединить блоки категорий разных типов объявлений в один, если они находятся в одной и той же позиции на одной странице. Раньше данная функция была доступна только в доске объявлений общего назначения и работала автоматически, теперь администратор имеет возможность управлять её.
Мы также улучшили блок категорий на страницах типов объявлений и категорий. Теперь блок содержит красивое дерево категорий и полезную навигацию по хлебным крошкам в верхней части блока.
Иконки популярных соцсетей добавлены в футер
Раньше в подвале сайта отображались иконки Facebook, Twitter, в которые администратор мог добавить ссылки на свои профили. В новой версии мы расширили список данных иконок и добавили WhatsApp, Instagram, Telegram, VK, а также обновили дизайн всех иконок.
Ссылками на все данные соцсети администратор может управлять в админ-панели посредством добавления ссылок на свои профили. Если необходимо скрыть какую-то соц. сеть из списка, то достаточно просто оставить поле для ссылки пустым.
SEO улучшения
Предыдущая версия движка загружала шрифты Google с серверов Google. Зачастую это занимало много времени, замедляло загрузку страниц и пагубно влияло на рейтинг страницы. Шрифты меняются крайне редко, и поэтому мы добавили файлы шрифтов в формате woff2 непосредственно в файловую систему скрипта, и теперь они будут загружаться непосредственно с сервера самого сайта, что увеличит скорость загрузки страницы и благоприятно сказаться на рейтинге.
Также мы добавили «ленивую загрузку» (lazy loading) для картинок объявлений, что также должно благоприятно повлиять на скорость загрузки страниц, и как следствие, на рейтинг сайта в выдаче. Работает это так: браузер анализирует видимую часть контента сайта и, изначально, загружает только те изображения, которые нужно пользователю в данный момент. Остальные же изображения будут грузиться по мере того, как пользователь прокручивает страницу и просматривает контент страницы.
Автоматический перевод значения текстовых полей
Если сайт использует несколько языков на сайте, и у текстовых полей на сайте включена поддержка мультиязычности, то пользователям или администраторам приходится вручную писать перевод текстовых данных в эти поля, или просто копировать значения одного языка в остальные. Это может негативно повлиять на SEO и восприятие пользователей, так как на разных мультиязычных страницах сайта отображаются одни и те же тексты.
Таким образом, при создании объявления или учётной записи пользователь заполняет данные только на своём языке, а система уже после создания объявления/учётной записи в фоновом режиме автоматически переведёт тексты на все остальные языки. Если пользователя не устроит автоматический перевод, то позже он всегда может отредактировать переведённый текст. Для перевода используется выбранный администратором переводчик.
Опция nofollow включена для всех системных страниц
В данном обновлении всем системным страницам, которые доступны только для залогиненных пользователей, была включена по умолчанию опция «no follow», которая позволяет добавлять атрибут rel=»nofollow» и мета-тег «robots» со значением «noindex, nofollow». Данная опция позволяет исключить из индексации системные страницы, которых по умолчанию в выдаче не должно быть.
Мы также хотим осветить новые функции, которые вошли в первую версию скрипта для создания сайта услуг и которые не вошли в версию 4.9.2.
Новое поле для загрузки нескольких файлов разного формата
Мы добавили новый тип поля для загрузки файлов, который может принимать следующие форматы: xls, csv, xlsx, pdf, zip, rar, doc, rtf, docx, jpg, jpeg, png, gif, webp, txt.
Настройки поля позволяют загружать один файл любого расширения из списка доступных или несколько файлов с разными расширениями, ограниченных лимитом.
Добавлено отображение «человекочитаемой» даты
Вместо вывода статической даты в объявлении мы интегрировали возможность выводить интервал времени, прошедший с момента добавления объявления, например, объявление добавлено «4 часа назад». Опция поддерживает режим мультиязычности.
Увеличена минимальная совместимость ПО до PHP 7.3
В предыдущей версии нашего ПО для минимальной совместимости требовалось наличие PHP 7.2. Мы подняли это требование до версии 7.3. Для обеспечения стабильной работы нашей доски рекомендуем использовать PHP 8.2.
ИСПРАВЛЕННЫЕ БАГИ:
- Исправлена ошибка, когда в форме объявления отображались поля из главной категории вместо родительской
- Исправлена MySQL ошибка при добавлении множественных полей в форму добавления объявлений
- Исправлена проблема с открытием Viber при нажатии на иконку на Android устройствах
- Исправлена ошибка в админ-панели при сохранении типа учетной записи с отключенным разрешением на PHP 8
- Исправлена проблема с методом GET при постраничном просмотре результатов поиска
- Исправлена проблема с отображением главной формы категории вместо родительской при включенной опции «Делить кэш на фрагменты»
- Исправлена проблема PHP 8 в админ-панели при добавлении объявления в категорию, у которой нет полей
- Исправлена ошибка сброса разрешений плана подписки после редактирования учётной записи
- Исправлена ошибка отображения данных пользователя во всплывающих окнах при ограничении клиентского плана на их просмотр
- Исправлена проблема с PHP 8 на стороне пользователя после отключения всех платежных шлюзов в админ-панели
- Исправлена проблема с перенаправлением на новую страницу учетной записи после включения опции поддоменов
- Исправлена проблема с неактивной транзакцией после оплаты через PayPal
- Исправлена проблема с PHP 8 в формах поиска без групп полей.
- Исправлена проблема с ценой в формах поиска на PHP 8 после добавления поля цены в форму и отключения всех валют
Камал says:
Сам думал сделать нормальную дату и ленивую загрузку 👍
Семен says:
Приятно видеть, что скрипт эволюционирует с каждым апдейтом. С вами с самого начала, обновления легко устанавливать по мануалу, особенно благодарю за новостной функционал, можно сказать завезли все плюшки вордпресса во флайнекс, респектую всей команде за проделанную работу.