chukcha

Доступ к ценам

Рекомендуемые сообщения

chukcha    937

ocstore 1.5.5.1.1

 

/catalog/controller/product/category.php и... наверное во всех других контроллерах...

                if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                    $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    $price = false;
                }
                
                if ((float)$result['special']) {
                    $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    $special = false;
                }    
                
                if ($this->config->get('config_tax')) {
                    $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
                } else {
                    $tax = false;
                }                

Обратите внимание

special доступно всегда!

Как мне кажется такой код более корректен.

				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
					if ((float)$result['special']) {
						$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
					} else {
						$special = false;
					}	
					if ($this->config->get('config_tax')) {
						$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
					} else {
						$tax = false;
					}				

				} else {
					$price = false;
					$tax = false;
					$special = false;
				}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

special считается всегда, а доступно только если price доступно.

смотри вывод цен в стандартном шаблоне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    937

Ну... так это ж несерьезно...

Надо отделить мух от котлет, это ж все таки MVC

 

А то получается, что весь код завязан на стандартном шаблоне.

Может по какой-то задумке мне special (или price-old)  нужно вынести в другой контейнер.. а я ограничен контейнером "price"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

ты ограничен условием

if ($price) {...}
а не "контейнером".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    937

Не, мил человек именно контейнером, в том числе

     <?php if ($product['price']) { ?>
      <div class="price">
        <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>
        <?php if ($product['tax']) { ?>
        <br />
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
        <?php } ?>
      </div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

<?php if ($product['price']) { ?>

<div class="price">

<?php if (!$product['special']) { ?>

<?php echo $product['price']; ?>

<?php } else { ?>

<span class="price-old"><?php echo $product['price']; ?></span>

<?php } ?>

...

</div>

<?php } ?>

<?php /* ... куча другой инфы ... */ ?>

<?php if ($product['price']) { ?>

<?php if ($product['special']) { ?>

<span class="price-new"><?php echo $product['special']; ?></span>

<?php } ?>

<?php } ?>

<?php echo $footer; ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    937

:)

Такое решение я и сам могу.

Я вывожу переменную, и, следовательно, я отвечаю за ее корректность.

Ведь по сути special зависит от "разрешения" вывода цен, а не от несуществующей цены.

 

Допустим price = 0, а special  существует...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

>> Ведь по сути special зависит от "разрешения" вывода цен, а не от несуществующей цены.

:? 

>> Допустим price = 0, а special  существует...

это уже проблемы поставщиков/владельцев_магазинов/менеджеров/способа_добавления-обновления_товаров/итпд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    937

Ну причем здесь поставщик и владельцы, которые не знают внутренней логики.

 

"Взула и забула"  - принцип OC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу