Как пообещал
здесь, опишу сниппеты, которые использовались для создания этого сайта. Сразу оговорюсь, что при создании сайта на MODx большей частью я опираюсь на собственные разработки или на сильно переработанные сниппеты из репозитория, кроме того 70-80% сниппетов к тому же адаптируются под новый сайт и часто их код изменяется от сайта к сайту.
Итак, начнем с известных сниппетов WebLogin и Jot:
1. WebLogin:
На сайте требовалось дать отдельный доступ для клиентов, где они получают больше информации по услугам компании и новостям рынка Forex. Регистрацию извне делать не требовалось, ибо дополнительный доступ открывался только для существующих и будущих клиентов, а не для всех подряд, кто решит зарегистрироваться. Стало быть пользователей создает администратор сайта и назначает им привилегии доступа.
Существующая на тот момент версия WebLogin позволяла это сделать, однако в процессе его установки появились проблемы такого характера:
а) сниппет обязательно должен быть мультиязычным, т.е. это означает мультиязычную поддержку не только внешнего вида (Англ->Рус->Лат: Login->Логин->Lietotaja vards), но и всех внутренних системных сообщений (ошибок, подсказок и т.п.);
б) система восстановления пароля являлась каким-то костылем, когда при вводе неправильного пароля или логина выскакивал джаваскриптовый alert, и далее показывалась скрытая до этого форма восстановления пароля;
в) были еще какие-то мелкие глюки, которые на данный момент я просто не вспомню..
В итоге довольно длительной работы с этим сниппетом и работы с кодом все эти проблемы были решены (ну или по крайней мере значительная их часть). На данный момент сниппет стал мультиязычным и поддерживает по великой идее сколько угодно языков (сейчас 3 языка); система восстановления пароля полностью переписана - при неправильном вводе логина или пароля посетителя перебрасывает на специальную страницу, где ему сообщается о неправильном вводе данных и предлагается восстановить свой пароль (также установлена captcha для защиты от спаммеров).
2. Jot:
Комментирование путем использования сниппета UserComments являлось костылем, о чем все неоднократно писали. Jot принес нам удобства, о которых раньше только мечтали. Однако и Jot оказался не таким уж идеальным в результате проверки.. К сожалению на момент создания сайта Jot не поддерживал нормально русский язык (сейчас как я вижу все ок), пришлось сразу решать эту проблему. Решилось это довольно быстро небольшой правкой кода.. Дальше немного времени ушло на изучение всех его возможностей и их реализация на сайте в новостях. Однако захотелось большего
Например, трансляция комментариев с помощью RSS, что было сделано с помощью описанного здесь метода:
http://modxcms.com/forums/index.php/topic,9628.0 с некоторыми своими дополнениями.
С комментированием все понятно и достаточно просто реализуемо.. Но вот захотелось на основе Jot сделать такую вешЧь
http://www.bestbrok.com/ru/about/ask-question/ К примеру, там уже один человек задал вопрос и модератор или администратор может ответить на данный вопрос, нажав на листок со значком (+) (см. скриншот). При этом получается что-то вроде гостевой книги, где ответ администратора появляется ПОД вопросом посетителя. Вобщем, это тоже работает на основе Jot со значительными правками с моей стороны
.
Далее из неспецифических сниппетов, уже собственного изготовления или очень сильно подвергшихся правке, можно выделить:
1)
NewsArchive ( так уж я его назвал
) - простой вывод новостей на главной странице и архив, доступный по ссылке внизу. Ничего особенного, обычная интеграция с комментариями Jot и трансляция последних новостей в RSS.
2)
SiteMap - генерация карты сайта, по-моему это частично переработанный мною сниппет, который остался еще в наследство от Etomite
3)
SiteSearch - поиск по сайту, модернизированный
4)
Menu и
BottomMenu - это почти полностью написанный с нуля сниппет, просто выводит ссылки в левом и нижнем меню сайта.
Все остальные сниппеты написаны для данного сайта, например:
1) сниппет
openRealAccount -
http://www.bestbrok.com/ru/open-account/real-account/#realaccform для отправки формы на емейл для открытия торгового счета с возможностью приложить файл и защитой цифровым кодом от спаммеров.
2) сниппет
Clocks - выводит часы в верхней части сайта и в зависимости от текущего времени (рабочее или нерабочее) подкрашивает часы соотвественно (в зеленый или красный цвет); как часть этого сниппета можно назвать написанный JS скрипт, который "поддерживает" текущее время, т.е. если страница не перезагружалась минуту или более - устанавливает правильное время.