Перейти к содержимому


Фото
- - - - -

сортировка свойств при выводе в каталоге товаров


Best Answer shooroop , 01.12.2018 - 18:31

замени тот код  что раскоментировал на этот

 

$properties = $this->features->get_product_options($products_ids);
foreach($properties as $property) { 
$products[$property->product_id]->options[] = $property; 
}
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
7 ответов в теме

#1 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 30.11.2018 - 20:07

Возник такой вопрос, нужно было вывести свойства в каталоге товара.

 

Не вопрос, проходим в ProductsView и раскомментируем строчки позволяющие нам 

 

			$properties = $this->features->get_options(array('product_id'=>$products_ids));
			foreach($properties as $property)
				$products[$property->product_id]->options[] = $property;
			

 

Далее все отлично выводится с помощью

 

                         {if $product->options}
{foreach $product->options as $f}
{$f->value}
{/foreach}

Заголовок свойства не выводил по причине верстки.

 

Все бы хорошо, но когда заполняем происходит трэш в сортировке.

 

К примеру возьмем 

 

 

свойство 1  - 11

свойство 2  - 22

свойство 3  - 33

 

все отлично. выводятся один за одним.

 

Далее я пишу в свойство 1 - Тест

 

и получается что при обновлении у меня уже выводится так

 

 

свойство 2  - 22

свойство 3  - 33

свойство 1  - Тест

 

 

то есть свойство с текстом уходит в конец.

 

в карточке товара все хорошо.  Расскоментировать код не достаточно?



#2 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 30.11.2018 - 20:37

Не достточно. Поскольку сортировка в свойствах сделана в общем случае практически случайной. Чтобы выводилось в порядке свойств, надо в той функции менять запрос.



#3 shooroop

shooroop
  • Фрилансер
  • 782 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 30.11.2018 - 23:34

Возник такой вопрос, нужно было вывести свойства в каталоге товара.

 

Не вопрос, проходим в ProductsView и раскомментируем строчки позволяющие нам 

 

			$properties = $this->features->get_options(array('product_id'=>$products_ids));
			foreach($properties as $property)
				$products[$property->product_id]->options[] = $property;
			

 

 

данный код не совсем корректен приведу пример

имеем на одной странице каталога два товара с одинаковым свойством  "цвет - красный" в результате свойство выведется только у первого товара у второго нет



#4 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 01.12.2018 - 02:48

Не достточно. Поскольку сортировка в свойствах сделана в общем случае практически случайной. Чтобы выводилось в порядке свойств, надо в той функции менять запрос.

 

получается код в сборке присутствует, но проблему не решает. только Productsview править функцию?



#5 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 01.12.2018 - 09:26

получается код в сборке присутствует, но проблему не решает. только Productsview править функцию?

 

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

 

Попробуйте так:

$properties = $this->features->get_product_options(array('product_id'=>$products_ids));



#6 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 01.12.2018 - 12:41

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

 

Попробуйте так:

$properties = $this->features->get_product_options(array('product_id'=>$products_ids));

 

Так в целом не подтягивает ничего.



#7 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 01.12.2018 - 12:44

Тогда так пробуйте :

$properties = $this->features->get_product_options($products_ids);



#8 shooroop

shooroop
  • Фрилансер
  • 782 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 01.12.2018 - 18:31   Best Answer

замени тот код  что раскоментировал на этот

 

$properties = $this->features->get_product_options($products_ids);
foreach($properties as $property) { 
$products[$property->product_id]->options[] = $property; 
}





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых