Плагин miniMarket 0.4.0. Инсайд. Часть вторая

1. Плагин miniMarket 0.4.0. Инсайд. Часть первая
2. Плагин miniMarket 0.4.0. Инсайд. Часть вторая

В первой статье, посвященной анонсу плагина miniMarket версии 0.4.0, я постарался рассказать о новом шаблоне и его принципах работы. Во второй части есть желание затронуть сразу несколько аспектов разработки следующей версии плагина, при этом подробно объясняя, почему был произведен выбор в пользу того или иного решения.


Картинка для привлечения внимания

Новое название


Плагин нуждается в новом названии. Проблема старого заключается в том, что довольно сложно использовать название «miniMarket» в самом PHP коде. Например, чтобы обратиться к какой-либо функции, находящейся в плагине, нужно написать следующее:
$oUser = $this->PluginMinimarket_User_GetUserById($iUserId);

Допустим, плагин будет называться просто «Mod»:
$oUser = $this->PluginMod_User_GetUserById($iUserId);

Согласитесь, так будет намного проще, да и меньше опечаток будет совершено при разработке.

Несколько вариантов нового названия, которое будет коротким и легким в написании, у нас уже есть. Так как окончательного решения данного вопроса еще нет — пишите свои варианты в комментариях ниже.

Новый фильтр


С первого взгляда в фильтре ничего не изменилось (если судить по скринам из предыдущей статьи). Все дело в том, что изменился принцип его работы.

Новый принцип работы фильтра #1
Допустим, весь ваш каталог товаров состоит из двух глобальных разделов: велосипеды и мотоциклы. Вы начинаете наполнять свой сайт контентом. Для этого сначала вам нужно создать перечень свойств (добавляются через панель администратора), которыми будут обладать ваши товары. Со временем вы замечаете, что есть свойства, которые могут находиться только у велосипедов. Соответственно, у вас нет ни малейшего желания (ибо это глупо) показывать пользователю доступные для выборки свойства велосипедов в фильтре, когда он будет просматривать мотоциклетный раздел.

Именно это и является первым новым принципом работы фильтра товаров: отображение только тех свойств, которые относятся к просматриваемой категории и ее категориям-наследницам в текущий момент времени.

Давайте приведенный выше пример с двумя глобальными категориями в каталоге рассмотрим еще раз, только более наглядно.

Итак, есть у нас две категории:
URL #1: http://www.site.com/catalog/bike/peugeot/
URL #2: http://www.site.com/catalog/motorbike/bmw/

Если мы зашли в категорию товаров по URL #2, то в фильтре будут доступны свойства (для выборки по товарам) только по а) мотоциклам BMW (/catalog/motorbike/bmw/) и б) мотоциклам, вложенным в даную категорию (например, мотоциклы BMW: /catalog/motorbike/bmw/sport/).

Новый принцип работы фильтра #2
Была переработана логика выборки товаров при фильтрации по нескольким свойстам, принадлежащим одному атрибуту.

Например, пользователь выбирает два свойства мотоцикла. Выбирает таким образом, чтобы они (свойства) а) были одновременно активны в фильтре и б) относились к одному атрибуту.

К примеру, он выбрал свойства а) «Оппозит» и б) «V-образный» у атрибута «Тип», и свойства а) «600 см3» и б) «1000 см3» у атрибута «Объем».



Итак, на основании какой логики плагин произведет выборку?

В старых версиях плагина (до версии 0.3.0 включительно) пользователь увидит только товары, у которых есть все свойства, выбраные в фильтре.

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

1. «Оппозит», «600 см3»
2. «Оппозит», «1000 см3»
3. «Оппозит», «600 см3», «1000 см3»
4. «Оппозит», «V-образный», «600 см3»
5. «Оппозит», «V-образный», «600 см3», «1000 см3»
6. «V-образный», «600 см3»
7. и т.д.

Понятное дело, двигатель мотоцикла одновременно не может быть и оппозитным и V-образным, или иметь сразу два объема двигателя. Данная илюстрация является всего лишь примером.

Похожие статьи

  • Плагин miniMarket 0.4.0. Инсайд. Часть первая
    1. Плагин miniMarket 0.4.0. Инсайд. Часть первая 2. Плагин miniMarket 0.4.0. Инсайд. Часть вторая Третье место по популярности среди всех плагинов и второе — среди бесплатных. Более 600 скачиваний с каталога. Лично...
  • Обновление плагина miniMarket 0.3.0
    Плагин miniMarket продолжает развиваться, что не может не радовать. В версии 0.3.0 нет серьезных изменений в пользовательском интерфейсе — человек непосвященный может даже не заметить всех новшеств. Серьезной...
  • Что с Alto CMS? Да все нормально! Просто жара
    На дворе лето, жара, деловая активность затихает, делать ничего не хочется... И, видя затянувшееся затишье, кто-то может подумать, что действительно все встало и ничего не делается. Но это обманчивое затишье! Сейчас...
  • Релиз 1.1.19 и новые подробности про версию 1.2
    Вышел релиз движка 1.1.19 Чего-то особенного он не принес, это, в основном, множественные багфиксы. За исключением одной детали — в качестве парсера текстов по умолчанию теперь используется Qevix. Поэтому если вы...

18 комментариев

+3
Для создания своего магазина плагин вообще идеальный и нет аналогов такого уровня не только на alto/ls, но и на других CMS.

Но если я правильно понимаю, он подойдет не только для создания интернет магазина?

Для примера возьмем «Кинопоиск», мне кажется 90% функционала такого портала есть/будет (судя по анонсу) в miniMarket.

Есть недешевый плагин Psnet catalog.livestreetcms.com/addon/view/424/, который такого там намудрил, что скорее всего сам не понимает, что с ним делать. И minimarket c логичной, легкой и правильной, а самое главное понятной для пользователя структурой.
+3
Код плагина то открыт — поэтому сделать из него можно все что угодно в принципе. Да, это может быть не только интернет-магазин. Если корзина не нужна — без проблем ставятся нужные заглушки.
Кроме того, к версии 0.4.0 планируется довести до стабильного состояния функционал, позволяющий использовать miniMarket не только как магазин, а как некую надстройку. Например, организовать прием средств за что-либо, при этом просто подключив нужное количество дополнительных плагинов оплаты от разных систем оплаты — и все должно работать с минимальным допилом/надстройками.
Если все хорошо будет, то об этой фишке и подобных расскажу либо до публикации 0.4.0 версии, либо сразу после (нужно еще просто самим все до конце оттестировать, ибо есть определенные баги и неудобства).
Отредактирован:
0
Alyona подписываюсь, под каждым словом.
+2
По анонсу очень впечатляет!
+2
Спасибо. Нам осталось совсем немного: хорошенько поднатужиться и выпустить релиз.
+2
Радует, что плагин совершенствуется и развивается, благодаря его авторам.
Еще со времен первой его версии есть огромное пожелание, которое я, возможно, уже озвучивал.

Можно ли, наряду со всеми предполагаемыми прелестями, сделать возможность подписаться на выбранный раздел/подраздел, как на блог, чтобы можно было сформировать свою ленту? В идеале, если будет еще и возможность подписываться на определенные выборки по фильтру.

Реально ли такое сделать и можно ли ожидать развитие плагина в эту сторону? Спасибо.
0
Дело в том, что плагин сейчас не такой социально-ориентированный, как, например, Alto. Плагин сейчас представляет собой больше ядро, функциями которого практически без ограничений может воспользоваться незарегистрированный пользователь. То, что вы предлагаете, можно уже делать после того, когда у нас в плагине пользователи смогут регистрироваться с конкретной целью. Например, начисление внутренних баллов за покупку, и т.п. — вот в этом случае уже можно реализовывать то, что вы предлагаете.
А так — спасибо за предложение. Если мы про него вдруг забудем, но реализуем то, что я сказал выше — напоминайте еще раз, и будем по взможности внедрять.
Отредактирован:
0
По названию, можно либо просто Market, либо mm — коротко, запоминается, и понятно почему так =)
0
Спасибо за предложение. Добавим в наш общий список а ближе к делу уже будем выбирать.
0
«Маркет» — лучше, но слишком обычно, привычно, а «мм» — это что-то мечтательное :)
«Mod» как автор предложил, интереснее, имхо.
0
Алена, зрите прям в корень на счет «Маркет»-а. Я вот тоже понимаю, что если сделать просто «Маркет», то оно даже через поиск не найдется. По-этому, нужно что-то короткое, оригинальное и доступное для прочтения.
+1
Алена не я )))))
Короткое да, и запоминающееся, и еще есть мысль как сделать по функционалу очень запоминающимся, но это я Вам скажу персонально. Если решите, что Вам интересно, может, сделаете ))))
+1
Ой. Простите меня, пожалуйста, Елена, деревенского парня.
Ок, жду персонального письма.
+2
На мой взгляд, «Mod» — не лучшая идея по очень простой причине: часто термином «mod» называют расширения (или модификации) в различных CMS. Т.е. для значительной категории разработчиков, имевших опыт работы с другими движками, mod — это имя нарицательное для любого расширения.

Может, «Markt»? И с «маркет» ассоциации, а у кого-то — с немецкой сетью магазинов «MediaMarkt»
+2
Маркт — тоже не очень хорошо. Маркет, в этом случае, лучше )))))
Не надо, наверное, привязку делать к сочетанию маркет-маркт. Можно просто и коротко — Марк.))) Нет?
0
Ну, это уж слишком вычурно будет, Елена :) Мы пока более скромного о себе мнения.
Если честно, букально на днях придумали и утвердили новое название — это будет «Nova». Так будет называться плагин и шаблон к нему.
0
Нова — тоже хорошо ))))))
0
Спасибо. Я рад, что есть уже один человек, которому это название нравится :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.