1

Тема: Методы сортировки

Только недавно стал работать не только с base версией, но и shop, поэтому пока есть вопросы.
1) По каким критериям товар становится популярным? (кол-во заказов, рейтинг, кол-во комментов)?
2) Как произвести сортировку товара в категории по популярности товара?
А так же:
3) Сортировка по дате добавления товара
И
4) По рейтингу?

5) Есть ли в системе, фишка - популярные производители?

И
6) Как в сравнение добавить массив? Т.е. в категории, к каждому товару есть checkbox "Сравнить", а внизу кнопка "Сравнить выбранное", и при отправке все выбранные (checked) товары отправить на страницу сравнения.

Простое правило программиста будь проще

2

Re: Методы сортировки

5) Есть ли в системе, фишка - популярные производители? - нет

Люди меняются, времена меняются, результат остается...

Thumbs up Thumbs down

3

Re: Методы сортировки

прежде чем приступать к разработке функционала к шопу - рекомендую почитать документацию по "propel orm" и хорошенько покопаться в коде шопа, понять что как и почему работает....

Люди меняются, времена меняются, результат остается...

Thumbs up Thumbs down

4

Re: Методы сортировки

прежде чем приступать к разработке функционала к шопу - рекомендую почитать документацию по "propel orm" и хорошенько покопаться в коде шопа, понять что как и почему работает....

Спасибо за рекомендацию.

Сразу же попытался вывести в start_page.tpl все брэнды:

{$brand = SBrandsQuery::create()->find();}
{$brand}

И мне выдали такую строку:

SBrands_8:
  Id: 34
  Name: 'Перекресток Рекордз'
  Url: perekrestok-rekordz
  Description: ''
  MetaTitle: ''
  MetaDescription: ''
  MetaKeywords: ''
SBrands_9:
  Id: 35
  Name: Та-Музыка
  Url: ta-muzyka
  Description: ''
  MetaTitle: ''
  MetaDescription: ''
  MetaKeywords: ''
SBrands_10:
  Id: 36
  Name: Другой
  Url: drugoi
  Description: ''
  MetaTitle: ''
  MetaDescription: ''
  MetaKeywords: ''

Как перевести строку такого формата в массив?

Простое правило программиста будь проще

5 Отредактировано chuikoff (30-08-2011 03:29:28)

Re: Методы сортировки

Опять же, вставляя в start_page.tpl код для вызова категорий:

{$categ = SCategoryQuery::create()->orderByPosition('ASC')->filterByActive(TRUE)->find()}
 {$categ}

Я получаю строку:

SCategory_0: Id: 57 Name: CD Url: cd Active: true Description: '' MetaDesc: '' MetaTitle: '' MetaKeywords: '' ParentId: 0 Position: 1 FullPath: cd FullPathIds: 'a:0:{}' SCategory_1: Id: 58 Name: DVD Url: dvd Active: true Description: '' MetaDesc: '' MetaTitle: '' MetaKeywords: '' ParentId: 0 Position: 2 FullPath: dvd FullPathIds: 'a:0:{}' SCategory_2: Id: 59 Name: Книги Url: books Active: true Description: '' MetaDesc: '' MetaTitle: '' MetaKeywords: '' ParentId: 0 Position: 3 FullPath: books FullPathIds: 'a:0:{}' SCategory_3: Id: 60 Name: Прочее Url: other Active: true Description: '' MetaDesc: '' MetaTitle: '' MetaKeywords: '' ParentId: 0 Position: 4 FullPath: other FullPathIds: 'a:0:{}'

Как сделать переменную $categ массивом и вывести только Name циклом обхода массива foreach?

Пробовал так:

{$categ = ShopCore::app()->SCategoryTree->createTree()}
 <select name="categ">
{foreach $categ as $cat}
<option value="{$cat}">{$cat}</option>
{/foreach}
 </select>

Он всё равно выдаёт такие строки массивом, попытки сделать {$cat.name} пусты. Что делать?

Простое правило программиста будь проще

6

Re: Методы сортировки

А вот так всё заработало:

{$categ = SCategoryQuery::create()->filterByActive(true)->find()}
<select name="categ">
{foreach $categ as $cat}
<option value="{echo ShopCore::encode($cat->getId())}">{echo ShopCore::encode($cat->getName())}</option>
{/foreach}
</select>

Простое правило программиста будь проще

7

Re: Методы сортировки

ну наконец то, а то я уже устал объяснять что это не строка а объект... smile

Люди меняются, времена меняются, результат остается...

Thumbs up Thumbs down

8 Отредактировано chuikoff (30-08-2011 16:19:13)

Re: Методы сортировки

ну наконец то, а то я уже устал объяснять что это не строка а объект... smile

Спасибо!

И ещё вопросик.

Как вывести определённое свойство товара select, ну например список регионов.
Я делаю так:

{$region = SPropertiesQuery::create()->findById(30)}

Получаю:

SProperties_0: Id: 30 Name: 'Регион' CsvName: D Active: true ShowOnSite: true ShowInCompare: true Position: 0 Data: 'a:26:{i:0;s:10:"Алтай";i:1;s:18:"Австралия";i:2;s:8:"Азия";i:3;s:14:"Армения";i:4;s:12:"Африка";i:5;s:14:"Балканы";i:6;s:16:"Беларусь";i:7;s:27:"Ближний Восток";i:8;s:14:"Бурятия";i:9;s:31:"Восточная Европа";i:10;s:12:"Европа";i:11;s:16:"Ирландия";i:12;s:14:"Карелия";i:13;s:40:"Коми-Пермяцкий регион";i:14;s:12:"Россия";i:15;s:31:"Северная Америка";i:16;s:12:"Сибирь";i:17;s:23:"Средняя Азия";i:18;s:10:"Тибет";i:19;s:8:"Тува";i:20;s:18:"Финляндия";i:21;s:14:"Хакасия";i:22;s:31:"Центральная Азия";i:23;s:14:"Украина";i:24;s:25:"Южная Америка";i:25;s:12:"Якутия";}'

Как мне разложить блок Data на данные и вывести его в select'e???

Нашёл ещё что можно делать так:
->toArray()

Но не знаю как увидеть ключи массива.

Простое правило программиста будь проще

9

Re: Методы сортировки

chuikoff пишет:

Как мне разложить блок Data на данные и вывести его в select'e???

Попробуйте с помощью unserialize.

Чтобы правильно задать вопрос, нужно знать большую часть ответа.
Платежные реквизиты: YM 41001201374223 || R219555949676 || Z169816711582

10

Re: Методы сортировки

Попробуйте с помощью unserialize.

Пробовал. Не получается.

Даже перевёл в массив:

{$region = SPropertiesQuery::create()->findById(30)->toArray()}
{$region = unserialize($region.7)}

Не знаю как ещё сделать(

Простое правило программиста будь проще

11

Re: Методы сортировки

Пока что сделал так:

{$region = ShopCore::app()->SPropertiesRenderer->renderAdmin(57)}
  {if $region==false}Нет свойств{else:}{$region}{/if}

Но это конченный крайняк, мне нужно найти решение той проблемы, чтобы контролировать каждое свойство.

Простое правило программиста будь проще

12

Re: Методы сортировки

Всё проблема с фильтрацией полностью решена!) научился брать всё под контроль - отличный инструмент.

Простое правило программиста будь проще