Тема: Каталог на GS: быть или не быть?
Доброго здоровьица, коллеги
Решила сделать доброе дело для тех, кто, так же как и я некоторое время назад, мучается вопросом: стоит создавать каталог на GS или нет. Делюсь приобретенным в боевых условиях опытом.
Передо мной стояла задача пересобрать сайт, работавший на CMS с базой данных, на GS.
Кому интересно, предыстория вопроса здесь: http://forum.getsimplecms.ru/viewtopic.php?pid=266#p266
В итоге все получилось,
сайт пока висит не на своем домене, но вот-вот переедет на ПМЖ, так что еще 3-4 дня можно посмотреть, что было: simeizrent.com и что из этого получилось: simeizrent.natyazhnov.com
Upd: Все, переехали. Теперь только то, что получилось: http://simeizrent.com/
Итак, что я имею сказать по вопросу темы. Все зависит от того, какой именно каталог вам нужен. Если это простой каталог, без поиска с фильтрами, без возможности оформить заказ с сайта и просматривать заказы в админке, без необходимости видеть в админке этот же каталог не в виде заголовков страниц, а сразу со всей нужной информацией (например, цена, доступность для заказа, еще какие-нибудь опции), то делать такой каталог на GS можно и нужно!
Вам понадобятся плагины:
I18n - для многоуровневого меню
I18n Search - для показа продуктов в зависимости от категории
I18n Special Pages - для создания самих категорий и страниц самих продуктов
I18n Gallery - для галереи, если она нужна
Dynamic Pages - если понадобится вставлять в страницу компоненты с php (у меня их штук 6, кажется)
Большая часть времени уйдет на изучение вышеописанных плагинов (очень советую посетить с этой целью сайт их автора http://mvlcek.bplaced.net/, даже с неважным знанием английского с переводчиком и большим желанием разобраться можно). Зато когда разберетесь, создавать-выводить категории-подкатегории будете как пирожки печь!
В моем же случае оказалось недостаточно изучить описание плагинов. Когда я уперлась в невозможность реализовать нужные функции, пришлось идти учить PHP, javascript, JQuery и API Google maps до кучи. В итоге провозилась с сайтом неприлично долго, но зато, как говорится, приобрела бесценный опыт
Расскажу поподробнее что именно не получилось сделать возможностями GS и плагинов.
1. Автоматическое создание миниатюры для показа в анонсе на главной.
Анонсы на главной - это результаты поиска специальных страниц. Для создания миниатюры в результатах поиска спец.страниц есть замечательная функция get_special_field_image(), которая создает какую вам нужно миниатюру, НО... код на вкладке плагина "поиск" у меня используется на странице "жилье", а там размер миниатюры и спец. поля совсем не те, что мне нужны в анонсах на главной. Выход - создавать свой компонент для отображения анонсов. А в компоненте get_special_field_image() не прокатит, там совсем по-другому выводятся поля, и картинку можно вывести только в полном размере. Решила проблему так: нашла в коде плагина функцию, уменьшающую картинки, скопировала ее в предварительно созданный в папке темы файл functions.php и пропускаю изображения через эту функцию.
2.Поиск с фильтрами.
Плагин I18n Search предлагает в качестве формы поиска один-единственный инпут, куда пользователь будет вводить запрос. И все. В моем случае это вообще не вариант, т.к. чтобы, например, найти жилье категории "дом" с ценой от 300грн с интернетом, кондиционером и не далее 15 минут от моря, ему пришлось бы вводить в поле формы строку :
"дом 300 internet condition distanсe". Можете себе представить такого продвинутого пользователя ? Я - нет.
Поэтому форму с нужными полями написала сама, а для вывода результатов поиска использовала опять-же компонент. Но не простой, а волшебный ))) Здесь уже без знания PHP никак. В нем проверяется, какие поля с какими значениями прилетели из формы, и в зависимости от этого подставляются нужные теги в строку
get_i18n_search_results( array('tags'=> вот сюда) );
3.В настройках полей спец. страниц отсутствует возможность сделать чекбокс индексируемым.
Зачем нужен чекбокс? Для любой характеристики продукта, которую можно определить только 2мя значениями (да/нет) чекбокс - самая удобная вещь. Например: показать страницу в анонсе? Действует ли акция на товар? В моем случае опции "интернет", "кондиционер" и т.д. тоже определяются чекбоксами. Конечно, тот же эффект вы получите, если придумаете для каждой из этих опций свой тег, и составите подробную инструкцию для хозяина сайта (или для себя, если сайт ваш), какие теги в каких случаях надо вбивать в поле "ключевые слова", при этом не ошибившись ни в одной букве. Думаю, наполнять сайт будет не очень увлекательно, особенно если тегов будет 5-6, а продуктов около 100.
А с помощью чекбокса такие параметры отмечаются легко и быстро.
В общем, я подумала :"не боги горшки обжигают", и полезла в код плагина.
Там оказалось все не так страшно, понадобилось внести небольшие дополнения, и все чекбоксы стали индексироваться!
4. Форма бронирования.
Из плагинов для создания форм мне не подошел ни один.
Во-первых, окно должно быть модальным, в плагинах я такого не встречала.
Во-вторых, присутствуют специфические поля с календариками (даты прибытия-выезда), их тоже в плагинах нет.
В-третьих, форма должна отправляться без перезагрузки, Ajax'ом, иначе некрасиво.
И, самое главное, заявки должны попадать в админку (так надо), а все плагины только отсылают письма на почту.
Саму форму сделала с помощью JQuery и плагинов к ней для отправки форм по Ajax и валидации
А вот для попадания заказов в админку использовала плагин Feedback Lite, правда, его пришлось сильно переделать, подстраивая его под свою форму.
5. Каталог в админке
Еще одна нужная для администратора сайта, но не совсем очевидная для разработчика вещь, которую пока, насколько мне известно, никакими плагинами не реализовать.
В админке мы можем видеть струтуру меню, то бишь одновременно только заголовки страниц.
Чтобы увидеть характеристики продуктов, нужно открывать каждую страницу, что неудобно.
Зачем нужен каталог в админке, если он есть на самом сайте? Отвечаю: затем, что некоторые поля спец. страниц могут быть предназначены только для администратора, но не для посетителей.
В моем случае это поле "Контакты владельца жилья". Плюс к этому, во "внутреннем" каталоге рядом с каждым объектом недвижимости должны отображаться поступившие заявки на бронирование с возможностью их править и удалять. Для этих целей пришлось ручками писать дополнительную страницу в админке.
6. Карты
Для каждого объекта жилья нужно было добавить возможность показать расположение на карте
Для добавления карт на сайт внутри GS есть две возможности: использовать плагин (не помню название, типа googlemap) или плагин для WYSIWYG-редактора (в редакторе появится кнопочка для вставки карты)
Но мне ни тот ни другой не подошли, т.к. в них требуется вводить адрес объекта, а надо было сделать так, чтобы расположение просто отмечалось маркером без всяких адресов. Вариант создавать карты на самом гуглмэпс и вставлять код оказался очень неудобным при большом количестве объектов, нужна была карта в админке.
В общем, для такой задачи готового решения тоже не нашлось, пришлось изучать API Gogle maps и продолжать изголяться над кодом I18n Special Pages, чтобы в нем появилась возможность добавить новый тип поля - карту.
Зато теперь - красота: один клик - и маркер на карте, флажок в чекбокс "опубликовать карту" - и карта на сайте.
Итого
Я думаю, для подобного сайта все-таки лучше использовать движок интернет-магазина, готового плагина для полноценного каталога со всеми вышеописанными причиндалами для GS пока нет.
Если бы я могла предвидеть, сколько всего нужно допиливать и переделывать, на GS этот сайт делать не стала бы.
ЗЫ. Надеюсь, мой "отчет" будет кому-нибудь полезен при выборе CMS.
Буду благодарна за комментарии и конструктивную критику по моей работе.