Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Создание модификатора с поиском и изменением нескольких строк


Recommended Posts

Всем доброго времени!

В общем столкнулся с проблемкой, пишу мод, не получается найти не одну строку тегом <search> xml-модификатора, а несколько... одна-то запросто ищется как обычно, но ее одной мало. Мысли пока в сторону поиска необходимых сущностей вместо табуляций и переносов строки. Может кто сталкивался с таким?? Есть решение кроме плагина, понимающего несколько строк для модификации, не хочется огороды городить, и так уже порядка 60-ти плагинов установлено на сайте) До меня старались люди)

найти нужно и заменить вот эти строки

            if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
            } else {
                $data['price'] = false;
            }

из /catalog/controller/product/product.php

 

Link to comment
Share on other sites


версия 2.3.0.2 , сразу не упомянул об этом. По задумке все это нужно для ограниченного показа данных товара незареганным/неавторизованным гостям, в частности, цены в карточке товара.

Edited by avagadros
Link to comment
Share on other sites


В общем нашел способ адаптировать изменения для своего случая. Но все-таки остается открытым вопрос о том как получить поиск по нескольким строкам сразу и дальнейшей их модификации.

Link to comment
Share on other sites


    <file path="catalog/controller/product/product.php">
        <operation>
            <search><![CDATA[$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);]]></search>
            <add position="Replace|Before|After" offset="3"><![CDATA[
            //<!--MyCitiesPlagin-->

            $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
            } else {

                    if(!isset($this->request->cookie['show_unauth_prod'])){
                        $show_count = 1;
                        setcookie("show_unauth_prod", $show_count+1, 0, '/');
                        $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);                        
                        
                    }elseif($this->request->cookie['show_unauth_prod'] <= 3){
                        $show_count = $this->request->cookie['show_unauth_prod'];
                        setcookie("show_unauth_prod", $show_count+1, 0, '/');                    
                        $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                    }else $data['price'] = false;    
                }

            //<!--/MyCitiesPlagin-->
            ]]></add>
        </operation>
    </file>   

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.