Jump to content
Sign in to follow this  
chukcha

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

Recommended Posts

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;
				}

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

     <?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>

Share this post


Link to post
Share on other sites

<?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; ?>

Share this post


Link to post
Share on other sites

:)

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

:? 

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.