Я правильно понял, что мне при работе с макетом не обязательно описывать все элементы сайта исключительно средствами фреймворка
Если вы верстаете компоненты, которые имеются во фреймворке, было бы глупо не использовать все его возможности. С другой стороны, если таких компонентов нет или элементы имеют настолько уникальный дизайн, что его невозможно или очень сложно воплотить с помощью фреймворка, то тогда надо писать всё самому, и в этом нет ничего зазорного. Невозможно описать всё исключительно средствами фреймворка.
Практикуется ли использование нескольких фреймворков при работе с одним макетом?
Зачастую фреймворки имеют схожие названия классов, поэтому подключать css-файлы разных фреймворков на одну страницу категорически не рекомендуется во избежание конфликта стилей. Если же говорить об использовании одного фреймворка вместе с заимствованием идей построения компонентов из других фреймворков, то почему нет? Ну, а если речь идёт о js-плагинах, считается вполне нормальным внедрять те, которые лучше всего подходят для реализации задачи, будь-то плагины из других фреймворков или же плагины отдельных авторов. Например, у Bootstrap'а достаточно скудная по функционалу карусель, поэтому многие разработчики вместо неё используют Slick Slider или Owl Carousel.
Мы делали магазин на движке ModX. Использовалась связка pdoResources (pdoTools) + MIGX. Благодаря этим расширениям стало возможным добавлять магазины через поля админки:
Можно всю информацию хранить в JSON-файле, а потом импортировать его.
Кстати, на главной странице сайта я тоже делал фильтр. Там чуть сложнее - сортировка по новым магазинам и по ближайшим к пользователю (двумя способами).
Никаких специфичных плагинов, просто дополнительные поля в админке, которые заполняет сам клиент. Данные выгружаются на страницу (см. исходный код), где их обрабатывает скрипт. Возможно, это нужно делать как-то через базу данных, но я специализируюсь чисто на фронтенде, не особо в этом разбираюсь.
В основном, вам нужен раздел касательно меток, в частности, метод setMap либо setVisible, которые служат для установки/удаления маркеров с карты. Вам следует понять, что сама сортировка меток никак не связана с Google Maps API, она делается на обычном ванильном javascript (либо на js-библиотеке, напр., JQuery). От Google Maps API там только использование вышеприведённых методов setMap или setVisible. Вот, как это делал я в одном из своих проектов. Возможно, не самая лучшая реализация, но вполне рабочая.
О встроенной валидации я читал и немало. Она несомненно хороша, но не даёт той гибкости, которую можно получить с js (например, пользовательские сообщения об ошибках или единый вид этих ошибок в разных браузерах). Насчёт нецелесообразности проверки всех форм - согласен, тут меня что-то не в ту степь понесло. Спасибо.
Мария Коробкоголовых, смотрите примеры, которые я скинул. Визуально надо такие же карточки товара, но с более гибкой реализацией (без указания высоты карточки и чтобы она выглядела целостной).