Пробую переделать первый раз ShopModx. Поделюся впечатлениями - сомнениями.
Собственно все это дело я ставил и рассматривал в апреле. На посмотреть ShopModxBox - то что нужно. Тут и Смарти и Шопмодикс. И видео опять же все разжевывает.
Все видео в основном крутились вокруг расширения смарти-шаблонов и кастомизации процессоров. Смарти-шаблоны делают жизнь макето-натягивальщика удобной и потому приживаются почти мгновенно. Ну, конечно по первости ошибок много, то пробельчик между скобкой поставишь ( { пробел assign ), то еще какой затык. Но по крайней мере расширять шаблон, вставлять блоки, условия - это каждый сходу научится. Нет особого смысла каждый раз так подробно на них останавливаться.
По первым видео на канале Николая собственно можно было сделать вывод, что шопМодикс заточен под кастомизацию собственных классов, crc. Что мы можем сделать не только Товар и Модель Товара, но и там Товар-Дверь с определенными полями. Т.е. Что товары будут расширятся не за счет ТВ, а за счет crc и это быстрее работает, это есть здорово и хорошо. Хотелось бы услышать в видео или почитать на сайте по-больше по данной теме. Очень прошу удилять в ваших вебинарах теме расширения типов товаров и моделям товаров хотя бы столько же времени, сколько вы уделяете смарти-шаблонам.
Кстати, о моделях. Специально создал модель товара и пару товаров в ней, чтобы посмотреть, как они выглядят в групповом редактировании товара. Цен там почему-то не видно. Нажимаешь "изменить цены" в групповом редактировании, а там белота одна и никаких цен. Грусть-тоска.
Про Модели Товаров тоже прошу говорить по-больше, как их правильно юзать. Ну, или как в принципе юзать.
По сборке, она конечно красива и нужна, у любого магазина такая есть. Но одно дело на посмотреть, как делать и другое дело делать новый боевой магазин. Я может чего не понимаю просто и проявляю черную неблагодарность и т.д. И к тому же во второй раз я не сделаю всех тех ошибок, что сделал сейчас.
Вот как происходила сейчас у меня переделка сборки:
1 Я ставлю модх
2 скачиваю сборку и vapor, устанавливаю все это
3 нельзя просто так взять, установить шопмодикс и не обновить консоль. Лагает что-то, а так как в packages нет пакета консоли - переустановить быстро нельзя. нужно быстро удалить и установить заново.
4 Что там за контекст spravochniki? Не нужен нам никакой поддомен и дополнительный контекст. Удаляем.
5 обновляю модх снова до последней версии.
6 начинаю править шаблоны и удалять ненужное. Ну, правда здесь выяснится, что ты забыл папку assets скопировать при обновлении и предется все переделать по первому пункту. Это весело )
7 Сделать бекап т.к. раз уж все это получилось удачно, то это страшно потерять
8 Выясним, что зря мы удалили spravochniki и нужно все снова.
Очень неудобно осваиваться с классами без какой-то инструкции по обязательным классам. Без чего-то типа этого см. ниже Необходимые CSS-классы, Id и имена полей. Наверно это потаму что я делал первый раз по сборке и каждый класс исследовал на ощупь, удалением. Надо бы хоть в комментариях написать, какие классы-идентефикатор-data можно трогать, а какие не нужны. Как я понимаю, там их совсем не много, можно чисто в комментариях пометить {* класс обязателен *}
На мой первый взгляд в сборке много лишнего. Обычно у меня есть готовая верстка без less, бутстартапа или с более старым. Возможно, шаблон куплен, да мало ли вариантов. Мне кажется, разметка под переделку должна быть как можно более минималистичной, а не красивой.
Как я себе это представляю:
1 устанавливаем компонент на последнюю версию модх (пусть и ветки 2.2+).
2 Ничего не перезаписывается, просто появляется компонент с магазином, корзиной, шаблоны смарти и примеры с минималистичной версткой. а) каталог б) корзина внутри в) личный кабинет. Короче все специфичное для магазина. Верстки и скриптов по минимуму и люди могут просто брать и вставлять это все в свою верстку и копипостить...
3 Копирую шаблоны и меняю настройку в смарти.
4 начинаем встраивать конструкции в свой шаблон. Нам всего-то нужно корзину воткнуть и каталог товаров.
Вставляем
- меню где надо {snippet name=Wayfinder params="&startId=`0`&level=`1` &outerTpl=`menu-tpl`&rowClass=`nav`&level=`1`"} Возможно это в комментариях, а рядом меню в котором данные тягаются через {processor} и раскидываются по шаблону. Ну и разумеется, это все в блоке menu, чтобы можно было расширить.
- Каталог:
{processor action="web/catalog/products/hot/getdata" ns="modxsite" params="limit=`6`" assign=result} {* Набиваем через единый шаблон листинга *} {include file="shop/catalog/list/fetch.tpl"}
- Собсна корзина [[!smarty?tpl=`shop/basket/entity/index.tpl`]]
Все это удобно вставляется в готовую верстку и имеет очень просты, чисто примерные css. Чтобы сразу видно, что можно оставить, а что для декора. И комментарии, поясняющее, какие классы-id необходимы для нормальной работы js тож не помешают
5 дальше собственно понеслось. Что узко - расширяем, верстку - натягиваем, радуемся хорошему результату.
Теперь о корзине. В Шопкипере есть шаблоны для пустой и полной "малой" корзины. Т.е. можно сделать так
малая пустая
В корзине ничего нет. купите что-нибудь, у нас много хорошего
А шаблон полной корзины может быть совершенно другим
Ух ты ж #@$!!!! В корзинне [+total_product+] товаров!!!!
Я тут специально расставил всякие span, div, p, чтобы было разнообразие тегов. А теги не отображаются.
Т.е. никаких проблем хоть разноцветные буковки сделать. И когда совершалась покупка, крутился лоадер и загружалась корзинка по шаблону полной корзинки. Шаблоны пустой и полной никак не связаны между собой.
Т.е. шаблон пустой корзины не обязан был содержать в себе никаких Выбрано: Корзина пуста Общая сумма:
Так было проще-удобней. Но это мелочи жизни, скрипты подправить не долго. Хотя их описание-рекомендации не помешают.
Очень надеюсь, что меня поймут правильно. Я здесь не поругаться пишу, а предложить, как на мой взгляд будет лучше и чтобы меня вразумили, если я не прав. Собственно все, что я здесь написал можно свести к просьбе рассказать по-больше про модели товара и расширения классов товаров и просьбе делать верстку в сборке более минималистичной, чтобы не приходилось удалять много лишнего. Вторая просьба гораздо менее ценна, чем первая.
Можно ли например как-нибудь артикул сделать у товара?
Антон, привет!
Очень прошу удилять в ваших вебинарах теме расширения типов товаров и моделям товаров хотя бы столько же времени, сколько вы уделяете смарти-шаблонам.
Поверь, что в подавляющем большинстве случаев расширений объектов не требуется вообще, особенно не надо делать объекты Товар-Дверь. Если нужны какие-то особенные параметры, создаем и указываем другой шаблон и к шаблону привязываем индивидуальные TV-параметры.
А вот шаблонизацию нужно знать очень хорошо, так как это то, с чем большая часть работы выполняется.
Кстати, о моделях. Специально создал модель товара и пару товаров в ней, чтобы посмотреть, как они выглядят в групповом редактировании товара. Цен там почему-то не видно. Нажимаешь "изменить цены" в групповом редактировании, а там белота одна и никаких цен. Грусть-тоска.
Модели товаров пока не трогайте. Там механизм такой, что требует индивидуальной работы и очень сложный, поэтому пока просто товары используйте.
3 нельзя просто так взять, установить шопмодикс и не обновить консоль. Лагает что-то, а так как в packages нет пакета консоли - переустановить быстро нельзя. нужно быстро удалить и установить заново.
Логает не консоль, а Ace. Он устанавливается в директорию, которая не попадает в сборку, поэтому Асе нужно переустанавливать. И да, постараюсь чтобы в дальнейшем в сборке были исходники всех необходимых пакетов.
4 Что там за контекст spravochniki? Не нужен нам никакой поддомен и дополнительный контекст. Удаляем.
Вот этого точно делать не нужно, вот прям вообще. В справочниках лежат документы-валюты.
5 обновляю модх снова до последней версии.
Не обязательно этого делать. Сборка не несет в себе файлов ядра. А то, что в левом правом углу админки начинает высвечиваться старая версия MODX-а - так это системная настройка. Найдите ее в настройках, измените значение и радуйтесь обновленной версии MODX-а.
6 начинаю править шаблоны и удалять ненужное. Ну, правда здесь выяснится, что ты забыл папку assets скопировать при обновлении и предется все переделать по первому пункту. Это весело )
Надо не текущие шаблоны править, а сделать их копию и в настройках указать имя нового скина.
Все остальное - услышано, но не факт, что будет сделано, извиняюсь. Верстка на конечном проекте как правило переделывается полностью, и от исходной верстки там почти ничего не остается. То, что там у нас не все очень просто - не страшно, так как если с этим не разобраться, то все равно там еще куча вещей, которые при недостатке знаний все равно не понять.
Можно ли например как-нибудь артикул сделать у товара?
Он там есть, sm_article. Просто в update-контроллере посмотри как выводится поле sm_price и добавь sm_article. Я все забываю добавить, в виш-листе болтается.
А почему валюты вот так, в виде ресурсов в spravochniki? Почему не в настройках как-нибудь или не через интерфейс CMP? Как-то неожиданно напоминает гостевые книги на документах, в которых каждое сообщение - отдельный документ модх. Это так еще на эво делали.
sm_article просмотрел. Сейчас увидел.
Надо не текущие шаблоны править
Я так и делаю.
Верстка на конечном проекте как правило переделывается полностью, и от исходной верстки там почти ничего не остается.
Ну так вот я и предлагаю по-этому сделать исходной верстки по-меньше. Бутстартап там не нужен, пару блоков и пучок стилей чисто чтоб не расползалось и хватит.
Модели товаров пока не трогайте. Там механизм такой, что требует индивидуальной работы и очень сложный, поэтому пока просто товары используйте.
Это печально. Интересная тема.
За все ответы спасибствую.
А почему валюты вот так, в виде ресурсов в spravochniki? Почему не в настройках как-нибудь или не через интерфейс CMP?
Во-первых, не хотелось плодить новые интерфейсы для управления валютами.
Во-вторых, это основа под дальнейшее развитие. Вполне может возникнуть ситуация, когда в объект валюты надо будет прописать какой-то индивидуальный функционал.
Не за что!