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


Фото
- - - - -

ProductView и свойства


Best Answer yr4ik , 03.12.2018 - 04:28

Если нет доработок в плане мультисвойств - то можно так: 

 

$product->features = array();
foreach($this->features->get_product_options(array('product_id'=>$product->id)) as $o)
	$product->features[$o->feature_id] = $o;
	
	
if(isset($product->features[153]))
	echo 'есть';

 

 

если же есть мультисвойства - то завести отдельный массив в который писать feature_id. Затем в нем проверять

Перейти к посту


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

#1 shooroop

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

Опубликовано 03.12.2018 - 02:53

в ProductView.php есть код отвечающий за вызов свойств товара

 

$product->features = $this->features->get_product_options(array('product_id'=>$product->id));

у некоторых товаров есть  feature_id == 153 но не у всех

 

 

Как правильно поставить  составить запрос- Если это свойство есть то выводить его значение если нет то не выводить

 

Второй час сижу голова кипит (

 

Знаю как вывести это через шаблон а как в ProductView.php ?



#2 yr4ik

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

Опубликовано 03.12.2018 - 03:49

что то я логики не пойму. 

 

 Если это свойство есть то выводить его значение если нет то не выводить

 

оно и в стандарте так работает. Если свойства нет - то не выведется.

Его не будет в массиве $product->features. Если есть - соответственно выводится значение


Изменено: yr4ik, 03.12.2018 - 03:50


#3 Kami

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

Опубликовано 03.12.2018 - 03:51

что то я логики не пойму. 

 

 

оно и в стандарте так работает. Если свойства нет - то не выведется.

Его не будет в массиве $product->features. Если есть - соответственно выводится значение

 

:) ну я так понял что он его из массива исключить хочет. Только не пойму зачем.



#4 shooroop

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

Опубликовано 03.12.2018 - 03:52

что то я логики не пойму. 

 

 

оно и в стандарте так работает. Если свойства нет - то не выведется.

Его не будет в массиве $product->features. Если есть - соответственно выводится значение

 

 

хорошо как правильно будет в ProductView 

если есть свойство 153 то выводить определенный код на страницу товара


Изменено: shooroop, 03.12.2018 - 03:53


#5 Kami

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

Опубликовано 03.12.2018 - 03:57

хорошо как правильно будет в ProductView 

если есть свойство 153 то выводить определенный код на страницу товара

 

Так это же проверкой в шаблоне делается. Почему именно в productview нужно? 



#6 shooroop

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

Опубликовано 03.12.2018 - 04:01

Так это же проверкой в шаблоне делается. Почему именно в productview нужно? 

 

Потому что нужное значение из свойства надо дальше подставлять в нестандартный php-код  .  и хочется по красоте чтоб было. Но в 4 утра голова уже не варит



#7 yr4ik

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

Опубликовано 03.12.2018 - 04:28   Best Answer

Если нет доработок в плане мультисвойств - то можно так: 

 

$product->features = array();
foreach($this->features->get_product_options(array('product_id'=>$product->id)) as $o)
	$product->features[$o->feature_id] = $o;
	
	
if(isset($product->features[153]))
	echo 'есть';

 

 

если же есть мультисвойства - то завести отдельный массив в который писать feature_id. Затем в нем проверять


Изменено: yr4ik, 03.12.2018 - 04:28


#8 shooroop

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

Опубликовано 03.12.2018 - 08:15

$product->features = array();
foreach($this->features->get_product_options(array('product_id'=>$product->id)) as $o)
	$product->features[$o->feature_id] = $o;
	
	
if(isset($product->features[153]))
	echo 'есть';

 

 

А как у 153 вывести значение?
 

if(isset($product->features[153]))
    $rate=$o->value;
    $this->design->assign('rate', $rate);

?


 


Изменено: shooroop, 03.12.2018 - 08:16


#9 shooroop

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

Опубликовано 03.12.2018 - 08:26

Сами пишу сам отвечаю )

 yr4ik спасибо.



#10 sergeevizh

sergeevizh
  • Пользователь
  • 168 сообщений
  • Откуда:Москва

Опубликовано 03.12.2018 - 14:47

{if $product->features}
  {foreach $product->features as $f}
    {if $f->feature_id==9 && !empty($f->value)}
      <div class="Ваш класс">
        <b>{$f->value}</b>
      </div>
    {/if}
  {/foreach}
{/if}

feature_id==Ваш id






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

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