UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: HardHardy от 15 Ноября 2011, 14:22:58

Название: Опции товара
Отправлено: HardHardy от 15 Ноября 2011, 14:22:58
Здравствуйте! еще раз  :D
Пытаюсь сделать у товара выбор цвета и выбор размера упаковки.
Вначале наткнулся http://help.umi-cms.ru/index.html?value_optioned.htm (http://help.umi-cms.ru/index.html?value_optioned.htm)
потом http://wiki.umisoft.ru/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BE%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_(umi_2.8,_tpl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B) (http://wiki.umisoft.ru/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BE%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_(umi_2.8,_tpl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B))
Но ни как не могу создать справочник. :( Вернее создаю, но он не работает.
Что нужно указывать в назначении типа?
Название: Re:Опции товара
Отправлено: admin от 15 Ноября 2011, 17:18:45
HardHardy, зачастую если ты сформулируешь проблему, попытавшись описать её, предвосхищая все наши вопросы, ты сам найдешь ответ, но это в идеале, а так хотелось бы узнать что конкретно скрывается под фразой
Цитировать
Но ни как не могу создать справочник. Грустный Вернее создаю, но он не работает.
Название: Re:Опции товара
Отправлено: HardHardy от 12 Января 2012, 09:52:30
Млин моск сломаешь с этими справочниками.    :-\
Делаю справочник выбора цвета как описано здесь http://help.umi-cms.ru/index.html?value_drop_down.htm
Далее как описано здесь http://wiki.umisoft.ru/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BE%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_(umi_2.8,_tpl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B)

При редактировании объекта каталога все норм, выбираю какие могут быть цвета -> цена -> плюсую -> сохранить и посматреть
Но ничего не выводится.   :(

Что я могу делать не так???
Название: Re:Опции товара
Отправлено: admin от 14 Января 2012, 17:22:10
то давай по порядку, проверяй:

- опционное свойство должно быть поле типа "Составное"
- данные забитые в это поле созраняется (часто бывают проблемы в том что люди не могут сохранить эти самые опционные свойства в админке при редактировании товара)
- проверь что поле выводиться в шаблоне товара (название поля прописано верно и в шаблоне по которому оформляется поле есть блоки для вывода опционного поля)


я так понял ты добавляешь опционное свойство и идешь сразу смотреть его на странице товара (а в админке это добавленное свойство видно?)
Название: Re:Опции товара
Отправлено: HardHardy от 14 Января 2012, 20:09:06
Тип поля составное
все сохраняется, в админке все видно
В шаблоне в блоке ['view_block'] вывожу макросом %data getPropertyGroup. все названия верны.
шаблон оформления блока как в мануале
<?php
$FORMS = array();


$FORMS['group'] = <<<END
<form action="%pre_lang%/emarket/basket/put/element/%id%/" method="get">
<span>
%lines%
</span>
<p>
<input type="submit" value="Положить в корзину" />
</p>
</form>
END;

$FORMS['group_line'] = <<<END
%prop%  
END;

$FORMS['optioned_block'] = <<<END
<strong>%title%:</strong>
<select name="options[%field_name%]" style="color:black; width:100px; height: 18px;">
%items%
</select>
END;

$FORMS['optioned_block_empty'] = <<<END
<strong>%title%</strong> - Нет опций
END;

$FORMS['optioned_item'] = <<<END
<option value="%object-id%">
%object-name% (%emarket applyPriceCurrency(%float%, 'short')%)
</option>
END;

?>
Название: Re:Опции товара
Отправлено: admin от 14 Января 2012, 22:27:22
a теги
<form action="%pre_lang%/emarket/basket/put/element/%id%/" method="get">
<span>
...
</span>
<p>
<input type="submit" value="Положить в корзину" />
</p>
</form>

выводятся?
Название: Re:Опции товара
Отправлено: HardHardy от 14 Января 2012, 22:38:03
нет, вообще ничего.
Название: Re:Опции товара
Отправлено: HardHardy от 14 Января 2012, 23:00:44
все я разобрался :) нашел ошибку
в шаблоне данных идентификатор повторялся.
спасибо!
Название: Re:Опции товара
Отправлено: admin от 14 Января 2012, 23:10:40
не за что :)
Название: Re:Опции товара
Отправлено: john от 25 Июля 2014, 20:41:53
Добрый вечер.

А как сделать чтобы цена опционных свойств не плюсовалась, а заменялась? По типу как цена1 или цена 2 или цена 3 записывалась при добавлении в корзину.
Название: Re:Опции товара
Отправлено: admin от 25 Июля 2014, 21:08:03
сделать основную цену равной 0 и при помощи косметики в каталоге выводить первую опционную цену (чтобы 0 не светился везде в списке товаров) или поправить файл ядра (эти изменения перезатрутся при обновлении) чтобы при добавлении в корзину, при наличии опционной цены основная цена игнорировалась
Название: Re:Опции товара
Отправлено: john от 26 Июля 2014, 13:09:20
Вопрос, если там несложно, то какой именно файл ядра править?
Название: Re:Опции товара
Отправлено: admin от 26 Июля 2014, 13:15:49
строчка отвечающая за складывания опционной и основной цены:
Файл /classes/modules/emarket/classes/orders/items/optioned.php
функция getItemPrice
строчка $price += (float) $optionPrice;

P.S. Еще раз напоминаю, что это не самый лучший путь, так как при обновлении эта конструкция перезатрется. Если,  вы  все таки решите править ядро, то советую для себя же сделать об этом пометки (или  не для себя). Например, создать файл /classes/modules/readme.txt с описанием что конкретно и где менялось. 
Название: Re:Опции товара
Отправлено: john от 26 Июля 2014, 13:32:15
Спасибо
Название: Re:Опции товара
Отправлено: john от 26 Июля 2014, 14:12:51
Не понимаю, что значит "при обновлении эта конструкция перезатрется".
Я сделал так - $price = 0;
		public function getItemPrice() {
$price = parent::getItemPrice();
$options = $this->getOptions();
foreach($options as $optionInfo) {
$optionPrice = getArrayKey($optionInfo, 'price');
if($optionPrice) {
$price = 0;
$price += (float) $optionPrice;
}
}
return $price;
}

При добавлении в корзину, все получается так как надо, если имеется ввиду обновить страницу F5 и добавить в корзину, то у меня все сохраняется. Блин у меня шаблон XSLT, в TPL будут проблемы?
Название: Re:Опции товара
Отправлено: admin от 26 Июля 2014, 14:17:59
"при обновлении эта конструкция перезатрется"

это значит, что при обновлении umi.cms она перезапишет системные файлы, в том числе вашу правку и все станет как раньше.
Название: Re:Опции товара
Отправлено: john от 26 Июля 2014, 14:29:05
Теперь понял)