Каталог и рейтинг ресурсов для фрилансеров на Drupal 9

Аватар пользователя gastas gastas 20 октября в 12:53
2

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

https://freelanceabout.com/

Главная страница

Список всех сервисов с сортировкой и фильтрами. Это Views c раскрытыми аргументами и сортировкой. Почему были использованы аргументы, а не раскрытые фильтры? Причина в желании получить красивые адреса страниц вида "/язык/страна/специализация". При использовании аргументов нет автоматической формы выбора, как в случае раскрытых фильтров. Поэтому все же пришлось написать простой модуль, добавляющий форму, с редиректом на страницу с нужными параметрами.

Страница сайта

Для страниц фриланс-сайтов добавлен новый тип материала. Вывод полей сделан через Twig-шаблон, Layouts не использовался, чтобы получить полную свободу в верстке.

Для понимания, какой сервис лучше, нужно иметь объективную метрику. Было решено использовать данные из Alexa, SimilarWeb, Ahrefs. Все три сервиса имеют API. Для получения данных сделан простой модуль. Данные счетчика — это обычные числовые поля. При сохранении материала (ноды) запускается hook_node_presave, где отправляются запросы на получение информации через API и далее сохранение в поле. Для сокращения больших чисел используется модуль Number Abbreviation.

Отзывы

Используется стандартный модуль Comment. Добавлен новый тип комментариев. Для поля выставления оценки используется модуль Fivestar. Я работаю с ним еще с 6-й версии и не имею нареканий к его работе. 9-я версия пока нестабильна, но работает отлично, а все возможные проблемы и сценарии использования описаны в трекере проекта.

Регистрация

Добавлен вход через аккаунты Google и Facebook. Используются модули Social Auth, Social Auth Facebook и Social Auth Google.

Оптимизация и производительность

Advanced CSS/JS Aggregation — сжимает и объединяет css и js.
Webp — преобразует все загруженные изображения в формат WebP, который очень любит "Гугл". С этой комбинацией удалось быстро получить значение 98 в Page Speed для десктопов и 80 для мобильных.

Обновление с 8 на 9

Первую версию сайта я сделал в 2020 году, когда Drupal 9 еще был в статусе беты. В августе 2021-го мне захотелось перейти на новую версию. При обновлении обнаружилось что некоторые модули не имеют версии под "девятку", но это легко решилось: в большинстве случаев оказалось достаточно добавить одну строку в .info файл модуля.

Комментарии

Аватар пользователя VVS VVS 20 октября в 14:24
2

Количества оценок не хватает в списке бирж.
Да и ссылки прямые лучше давать, а не пропущенные через искривитель!

Аватар пользователя gastas gastas 20 октября в 19:07

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