Fi1osof 08 января 2015 1 6
Несколько дней назад я писал про запуск каталога интернет-магазинов и разработчиков на сайте нашей сборки ShopModxBox. Но как обычно, мой перфекционизм не позволил мне остановиться на достигнутом. Меня не устраивало несколько моментов:
  1. Две отдельные базы данных. Так как сайт сборки ShopModxBox находился на отдельном движке и имел собственную базу данных, не связанную с базой данных MODX-Клуба, то организация каталога на нем требовала создания отдельных профилей веб-студий, никак не связанных с профилями на сайте Клуба.
  2. Ограниченность каталога сайтов. Изначально предполагалось в каталог добавлять только интернет-магазины, и только на ShopModxBox. Понятное дело, что число таких сайтов относительно общего числа MODX-сайтов крайне мало.
  3. Отсутствие профилей частных разработчиков. По озвученной выше причине, приходилось бы заводить и профили частных разработчиков, что существенно увеличило бы наши трудозатраты на сопровождение каталога, на что мы не планировали идти в таком ключе.
  4. Отсутствие блого-социальной составляющей. Каталог на сайте сборки, а общение на сайте Клуба. Профили не связаны. Ясно-понятно, что общение специалистов никак бы не влияло на прокачку как их профилей, так и профилей веб-студий, что конечно же не круто. Согласитесь, классно видеть не только профили веб-студий, но и профили их специалистов и видеть кто как общается, какие знания демонстрирует и т.п.
Был еще ряд пробелов, с которым мириться мне не хотелось, поэтому я решил все это переделать, и уже на базе самого MODX-Клуба. Эта затея вылилась в 47+ трудовых часов за эти пять дней, но результат получился весьма впечатляющим. Под катом куча интересных подробностей.

Итак, пойдем по порядку по озвученным выше проблемам.

1. Две отдельные базы данных.
Это самая главная, принципиальная проблема. Не имея единой базы данных, нельзя устранить и все остальные озвученные проблемы. Поэтому я просто решил объединить сайты modxclub.ru и shopmodx.ru на одном MODX-движке (на самом деле shopmodx.ru окончательно переехал на shopmodx.modxclub.ru, чтобы поддерживались единые кукисы и сессии, но я все равно в дальнейшем часто буду его называть shopmodx.ru, так как лень писать полный путь :)). Конечно же ни для кого не секрет, что MODX Revolution мультидоменный и со своими контекстами позволяет держать несколько сайтов на одном движке, и я и сам не раз делал мультисайты, но то, как я сделал это сейчас, даже для меня был особенный подход. Дело в том, что меня вообще никак не улыбало создавать отдельный полноценный скин для shopmodx.ru, а заюзать для него скин самого modxclub.ru, но при этом очень хотелось иметь возможность перестраивать индивидуально шаблоны для shopmodx.ru при желании. Это выражается в том, что вы наверняка увидите визуальное сходство этих двух сайтов, но у shopmodx.ru другой логотип (с позволения сказать), и правый сайдбар измененный, а так же на shopmodx.ru добавлены хлебные крошки, ну еще в хедер на shopmodx.ru дополнительные скрипты прописаны, необходимые для работы магазина (на modxclub.ru они не нужны). В остальном все то же самое.



Реализовать это позволила новая версия Smarty, которая умеет не только поддерживать несколько директорий шаблонов, но еще и можно явно указывать какую директорию использовать. А если не указано явно, то перебираются указанные директории в том порядке, в котором они были указаны Смарти, пока не будет найден указанный файл-шаблон.

Давайте более детально это рассмотрим. Вот у нас есть три скина (директории шаблонов):
main — основной полный скин, использующийся для сайта Клуба.
shopmodx.ru — это переопределяющий скин для добавленного сайта.
shopmodx — а это уже скин сборки ShopModxBox. Да, его тоже я заюзал, ведь у нас работает демо-магазин. Полностью его не хотелось использовать, так как при этом бы использовалось полностью оформление из сборки, а массово править там основные файлы мне не хотелось, поэтому шаблоны из этого скина будут использоваться только в крайних случаях, когда одноименные не будут найдены в первых двух скинах (это шаблоны каталога, товаров, корзины и т.п.).

Вот скирншот структуры скинов:


В общем, я в добавочном скине shopmodx.ru создаю в корне шаблон layout.tpl, который расширяет [main]layout.tpl, и так как в основном шаблоне все шаблоны по сути расширяют layout.tpl, то подгружается переопределяемый layout.tpl, в котором я просто добавляю какие-то скрипты, стили, и некоторые блоки расширяю.

Вот layout.tpl основного скина modxclub.ru: gist.github.com/Fi1osof/534da6ed22c6d25a71c5#file-main-layout-tpl
А это переопределяющий shopmodx.ru: gist.github.com/Fi1osof/534da6ed22c6d25a71c5#file-added-layout-tpl

К примеру, вот так логотип переопределяется: gist.github.com/Fi1osof/534da6ed22c6d25a71c5#file-added-layout-tpl-L52-L56

Есть здесь еще некоторые фишки. К примеру, если заказ оформляет аноним, то ему автоматически создается профиль на MODX-Клубе (через его процессор, со всеми допобъектами и т.п.), о чем имеется предупреждение на странице оформления заказа:



Вот теперь у нас оба сайта на одном движке, база пользователей единая и можно двигаться дальше. К слову, новая версия modxSmarty со свежим шаблонизатором Smarty на борту выйдет чуть позже, после того, как я ее погоняю, так как там есть тонкости. А вот ту версию, что идет вместе с самим MODX, использовать не имеет смысла, ибо она там безбожно устаревшая.

2. Ограниченность каталога сайтов.
Теперь каталог сайтов перенесен на сам сайт Клуба, а для того, чтобы можно было фильтровать сайты по специфике, введено несколько структурных параметров, среди которых и используемые модули. Это все будет в дальнейшем развиваться и доводиться до логического завершения, а сейчас пока скрыто с глаз, но уже сейчас это используется для фильтрации. К примеру, вот так можно увидеть только интернет-магазины на ShopModxBox: modxclub.ru/katalog-sajtov/?extras=1459
Все это позволит не только представить в каталоге больше сайтов, но и позволит заказчикам определять более узкопрофильных специалистов под частные задачи.

3. Отсутствие профилей частных разработчиков.
Теперь, когда база данных единая, можно работы присваивать не только веб-студиям, но и частным специалистам, и это отображается в каталоге работ.



Вот здесь, я скажу, кроется все самое сложное… Для этого пришлось как следует прокачать каталог, и потребуется много буков, чтобы все это расписать сейчас.
В предыдущей версии каталога все было просто, так как было только две сущности: разработчик (веб-студия) и сайт, и между ними связь один-ко-многим.
В новом каталоге больше сущностей:
  • Сайт
  • Специалист
  • Студия
Связи между ними стали гораздо сложнее. Помимо всего прочего пришлось еще предусматривать авторство отдельных специалистов и студий, ведь над одним сайтом может работать несколько специалистов, каждый специалист может выполнять те или иные работы (к примеру, один — проект-менеджер, другой — верстальщик и программист, третий — только программист и т.д.). Специалисты в свою очередь могут как состоять в отдельных студиях/командах (при чем сразу в нескольких), так и работать абсолютно самостоятельно. И работы они могут выполнять как для конечного заказчика, так и для студий, ввиду чего авторство на сайты могут принадлежать и отдельным специалистам, и студиям.
Чтобы все это предусмотреть, я реализовал здесь механизм «Опыт работы». Указать его можно в личном кабинете.



Уточню, что выбрать команду/студию можно только из тех, что зарегистированы на сайте Клуба (и только активных). Сейчас таких студий мало, мягко говоря, но их в процессе станет значительно больше.

Получив заявку на участие, владелец профиля студии одобряет ее, и тогда специалист вливается в команду.



После этого и в профиле специалиста видно, в каких командах он числится, и в профиле команды видны участвующие специалисты (а так же портфолио студии, но об этом чуть ниже подробней).





Эта информация видна и в списке студий, и в списке специалистов:





4. Отсутствие блого-социальной составляющей

Все это дает больше путей к тому, чтобы «заметить» достижения как отдельных специалистов, так и конечных студий.
И вот здесь еще раз отдельно уточню по портфолио:
Сайт (работа) может существовать самостоятельно, без указания авторов. Дополнительно могут быть указаны участники проекта, которые участвовали в реализации проекта. Плюс к этому могут быть указаны студии, которым принадлежит авторство на этот проект. Таким образом если работа находится в портфолио специалиста, который числится в студии, это еще не означает, что эта работа будет числиться в профиле веб-студии. Если веб-студии не определено авторство на эту работу, то работа видна только в профиле специалиста. Так же, если специалист не является участником в проекте, то в его портфолио не будет выводиться работа, авторство на которую принадлежит веб-студии, в которой он числится сотрудником. Это все предусматривает и те случаи, когда специалист уходит из одной студии, и переходит в другую. Портфолио ни одних, ни других при этом не пострадает. Но даже если в профиле студии выводится не много работ, но в команде есть специалисты, в профиле которых куча работ, это конечно же будет являться косвенным плюсом команде, что само по себе является стимулом к тому, чтобы завести свою команду и пригласить туда побольше специалистов.
В процессе будут более прокачены механизмы рейтингов, где на позиции будут влиять и публикации специалистов, комментарии, голоса, работы в портфолио и т.д. и т.п.
Так же, забегая вперед, скажу, что будет отдельное внимание уделено специализациям специалистов и студий. И сами специалисты смогут указывать свою направленность, и будут учитываться используемые технологии из работ в портфолио, и сама направленность веб-студий будет учитывать работы в портфолио и скилы ее специалистов. В общем, обязательно будет куча всего на сайте Клуба, что должно таки дать основу для более качественной MODX-инфраструктуры, и наконец-то участникам Клуба даст не только обмен знаниями, но и новые заказы.

Ложка дегтя

Конечно же, не может быть все прекрасно. Есть несколько моментов:

1. Сейчас все это в стадии альфа-тестирования, и участвовать в этом могут только полноценные члены Клуба (только у них пока доступен пункт меню Личный кабинет. Если после авторизации у вас в главном меню появляется этот пункт, то можете смело присылать нам информацию о ваших работах). И только члены Клуба сейчас могут присылать нам свои работы для добавления в каталог.
Только после того, как все будет обкатано, а так же введены все необходимые механизмы автоматизации процессов, весь этот функционал станет доступен всем желающим.
Если вам не терпится уже сейчас наполнить свое портфолио, гарантирую немедленное членство в Клубе всем, сделавшим донейт от 1000 рублей (форма внизу страницы). Сделаете донейт — и вам хорошо (портфолио будет), и всем хорошо (донейты будут направлены на компенсацию рабочего времени, и необходимые механизмы будут введены быстрее, так как можно будет отвлечься от коммерческих проектов).

2. Сейчас заложена самая основа. Не все механизмы автоматизации введены. Поэтому наполнение каталога пока-что будет осуществляться только через нас (повторюсь, это пока что только для членов Клуба). Присылайте нам на info@modxclub.ru ссылки на ваши работы, ваш логин на сайте Клуба, а так же указывайте по каждой работе в отдельности, какого рода работы вы выполняли:
  • Управление проектом
  • Разработка дизайна
  • Верстка
  • Разработка сайта
  • Наполнение сайта
  • Техническая оптимизация сайта

Указывайте и какие компоненты использовались. Скоро этот список будет публичным и туда многие и сторонние компоненты попадут, но сейчас он пока такой:
  • ShopModxBox
  • modxSite
  • phpTemplates
  • modxSmarty
  • modxSDK
  • modSociety
  • Console
В дальнейшем, при выборе подрядчика/субподрядчика, будут видны и учитываться скилы разработчика по конкретным модулям. К примеру, если нужен разработчик на социалку, то наверняка предпочтение будет отдано тому, у кого в портфолио есть работы с modSociety.
Так же для подтверждения прав на сайт, на каждом сайте должна быть доступна страничка с адресом /modxclub-{yourprofile}.txt, на которой мы должны увидеть OK.
К каждой вашей работе в письме указывайте такую ссылку, чтобы мы ее не искали (во-первых, может быть простое недопонимание, во-вторых, может вы прям в админке будете заводить и у вас УРЛы по другому будут обрабатываться. В общем, если УРЛ чуть-чуть отличается, ничего страшного пока).

3. Для частных специалистов все это дело будет бесплатным. А вот профиль команды/студии — это уже платно. Пока что это будет стоить 10 000 рублей/месяц, но в дальнейшем скорее всего подорожает, и скорее всего значительно. Сразу скажу, что студиям, пожелавшим подключиться в ближайшие дни, ценник будет зафиксирован на ближайший год. Помимо того, что профиль команды — это значительно привлекательней и перспективней, могу гарантировать, что информационная поддержка студий по части MODX будет значительно лучше с нашей стороны, а так же пожелания в плане введения нового функционала на сайте Клуба будут иметь приоритетный статус. Плюс к этому, активные студии будут нами чаще рекомендоваться потенциальным заказчикам в качестве возможных исполнителей, так как сейчас многие наши потенциальные клиенты уходят с концами из-за нашего высокого ценника, или из-за того, что мы мелкими задачами сейчас не занимаемся, а рекомендовать кого-то просто так мы не можем. А так, если у студии здесь будет нормальные прокаченный профиль с каким-то пулом работ в портфолио, то предлагать нам будет проще, так как мы будем просто ссылку давать и все, не тратить время. Вообще мы планируем здесь нормальную конкурентную площадку организовать, где потенциальные клиенты будут видеть не только нас, но и других участников рынка, так что иметь здесь профиль компании всяко будет иметь смысл.

В общем, как всегда, жду ваших комментариев/предложений.

P.S. Некоторые пользователи могут ощутить проблемы с авторизацией (логин и пароль проходят, но сессия не держится). Это связано со сменой зоны для кукисов. Если у вас есть в браузере старая кука сессии, то будет путаница с новой (то есть наличие сразу двух кукисов сессии). В общем, если такое будет, просто почистите кукисы в браузере для всех сайтов в зоне .modxclub.ru
6 комментариев
gsnx1
gsnx 08 января 2015г в 21:53 #
Приветствую Николай!
Отличная работа и будь уверен мы ценим самоотверженность и тот труд что ты вкладываешь в это дело! Спасибо за улучшения и уверен еще много впереди таких плюсов! ))
Fi1osof1
Fi1osof 09 января 2015г в 08:58 #
Сергей, спасибо на добром слове :)
stager1
stager 09 января 2015г в 01:30 #
Приветствую

Интересная и весьма привлекательная новость. Отрадно, что новый год начинается с достаточно мощных и значительных нововведений.

А когда новую версию smarty можно будет поюзать?
Fi1osof1
Fi1osof 09 января 2015г в 09:00 #
Стараемся :)

А когда новую версию smarty можно будет поюзать?
Думаю, через несколько дней. Там для запуска потребовалось с бубнами потанцевать. Погоняю, подумаю еще немного как там лучше предусмотреть перечисление нескольких шаблонов, и тогда уже соберу новый пакет.
r
red_style 15 ноября 2015г в 04:07 #
Проблемы… как же без них)), но нельзя сдаваться, они решаемы, надо лишь приложить усилие!!))
Николай, это совпадение, не думаю), а может и судьба — случайно попал на сайт modx club, точнее заметил название это, когда в свободное время от кодинга решил посмотреть готовые js скрипты (посмотреть что делают, фантазию поднять свою) и мне начали попадаться названия статей «урок создания… на modx», решил узнать что за modx такой, зашел сюда, прочел, скачал, установил, был приятно удивлен, всё сделано отлично, как я стремился сделать на своей cms разработке… но modx превосходит мои труды.
У меня план был тоже сделать такую высокоразвитую cms с огромным функционалом, иметь команду, иметь аудиторию.
Да, я добился и низких высот, сделал пусть не высокоразвитую cms, но она была проста и практична (tpl шаблонизация, pdo php, json) для создания динамичного сайта с очень малым потреблением системных ресурсов, пару человек в команде, аудитория на более 100 человек. Всё вроде бы хорошо, но есть моменты, как например, мне сложно найти человека, который не бросит (не забьет) на всё это дело… да актуальность проекта низка.
Людям нужно что-то большее, чем простой скромный функционал, им нужно как modx. И я готов снова тратить силы на разработку сайтов, но уже с вами, Николай. Функционал вы сделали очень хорошо на 5+ и вижу не сдаетесь в своем деле, я думаю дальнейшее развитие сайта приведет к большему успеху — стать самой популярной cms, чем joomla drupal (для меня эти cms темный лес + потребляют много ресурсов и сложны в разработке, когда я пытался на них сделать сайт), на modx всё куда проще приходится =)
у меня прям новое вдохновение родилось))
Fi1osof1
Fi1osof 15 ноября 2015г в 04:33 #
Артер, спасибо на добром слове) Сдаваться конечно же не будем)

Друпал, к слову фреймворк, не CMS, но ничего. Если он есть, значит он кому-то нравится. Мы не пытаемся весь мир переучить на MODX, мы просто пользуем то, что нам больше нравится, и помогаем по мере сил тем, кто с ним тоже пытается работать.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.