Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


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

 

Надіслати
Поділитися на інших сайтах


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

Змінено користувачем avagadros
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.