UMIhelp

Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: nitoiti от 04 Ноября 2014, 13:29:54

Название: Подскажите, пожалуйста, как вывести подсказку в зависимости от цены
Отправлено: nitoiti от 04 Ноября 2014, 13:29:54
Здравствуйте. Моя первая тема, не пинайте слишком строго если что-то неправильно напишу, подскажите, как правильно описать проблему - обязательно учту и исправлюсь!

Вопрос следующий: Нужно было вывести три типа цен "отсрочка", "предоплата", "розница". Вывел по мотивам вот этой статьи: http://wiki.umisoft.ru/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85_%D0%A6%D0%B5%D0%BD_%D0%B4%D0%BB%D1%8F_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0

Чуть-чуть переделал, под свои нужды. Код в конечном счете выглядит вот так: (файл classes/modules/emarket/__custom.php)
 public function OnPriceValue($e) { 
// Объект для которого запрашивается значение из поля типа "Цена"
       $object_id = $e->getParam('object_id');
       // Значение цены
       $value = &$e->getRef('price');
       // Текущий id пользователя
       $user_id = permissionsCollection::getInstance()->getUserId();
       // Id Гостя.
       $guest_id = permissionsCollection::getInstance()->getGuestId();

       if($user_id != $guest_id && cmsController::getInstance()->getCurrentMode() != "admin"){
         $user = umiObjectsCollection::getInstance()->getObject($user_id);
         if( $user->tip_dogovora == '3552' ){
$object = umiObjectsCollection::getInstance()->getObject($object_id);
if($object instanceof umiObject) {
if ($object->getValue('cena2')!= 0 ){
$new_price = $object->getValue('cena3');
$value = $new_price;
}
else return false;
}
else return false;
}
if( $user->tip_dogovora == '3553' ){
$object = umiObjectsCollection::getInstance()->getObject($object_id);
if($object instanceof umiObject) {
if ($object->getValue('cena3')!= 0 ){
$new_price = $object->getValue('cena2');
$value = $new_price;
}
else return false;
}else return false;
}

else return false;



       }    
    }

Все работает, цены меняются в зависимости от типа договора. Теперь необходимо рядом с ценой в шаблоне товара и в шаблоне категории вывести подсказку (если цена предоплата - писать "предоплата") например вот тут http://velo-deti.grey-cat.biz/katalog/shlemy/srazy-safety-chesirecat/ подскажите, пожалуйста, как правильно это сделать.

Пробовал добавить переменную $myPriceLabel в этом же файле, но не могу понять, как ее вывести в нужном месте в шаблон.
Название: Re:Подскажите, пожалуйста, как вывести подсказку в зависимости от цены
Отправлено: nitoiti от 04 Ноября 2014, 19:56:24
Сделал. Видимо надо было просто чуток передохнуть, а то совсем мозг не работал.
В файле __custom.php модуля каталог вот такой код
$user_id = permissionsCollection::getInstance()->getUserId();
$guest_id = permissionsCollection::getInstance()->getGuestId();
$block_arr['myPriceLabel'] = '<p class="myRrcLabel">Рекомендованная розничная цена, что бы увидеть оптовые цены, <a href="http://velo-deti.grey-cat.biz/users/registrate/">зарегистрируйтесь</a></p>';
if($user_id != $guest_id){
$user = umiObjectsCollection::getInstance()->getObject($user_id);
if( $user->tip_dogovora == '3552' ){
$block_arr['myPriceLabel'] = '<p class="myOtsrochkaLabel">Оптовая цена при договоре поставки с отсрочкой. Изменить тип договора поставки можно <a href="http://velo-deti.grey-cat.biz/users/settings/">в настройках</a><p>';
}
if( $user->tip_dogovora == '3553' ){
$block_arr['myPriceLabel'] = '<p class="myPredoplataLabel">Оптовая цена при договоре поставки по предоплате. Изменить тип договора поставки можно <a href="http://velo-deti.grey-cat.biz/users/settings/">в настройках</a><p>';
}
}