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

EvgeniyOC

Новачок
  
  • Публікації

    10
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем EvgeniyOC

  1. catalog/model/total/reward.php

     

    Спасибо, тему можно закрывать. 

     

    файл: catalog/model/total/reward.php

    <?php
    class ModelTotalReward extends Model {
    	public function getTotal(&$total_data, &$total, &$taxes) {
    		if (isset($this->session->data['reward'])) {
    			$this->language->load('total/reward');
    
    			$points = $this->customer->getRewardPoints();
    
    			if ($this->session->data['reward'] <= $points) {
    				$discount_total = 0;
    
    				$points_total = 0;
    
    				foreach ($this->cart->getProducts() as $product) {
    					if ($product['points']) {
    						$points_total += $product['points'];
    					}
    				}	
    
    				$points = min($points, $points_total);
    
    				foreach ($this->cart->getProducts() as $product) {
    					$discount = 0;
    
    					if ($product['points']) {
    						$discount = $product['total'] * ($this->session->data['reward'] / $points_total);
    
    						if ($product['tax_class_id']) {
    							$tax_rates = $this->tax->getRates($product['total'] - ($product['total'] - $discount), $product['tax_class_id']);
    
    							foreach ($tax_rates as $tax_rate) {
    								if ($tax_rate['type'] == 'P') {
    									$taxes[$tax_rate['tax_rate_id']] -= $tax_rate['amount'];
    								}
    							}	
    						}
    					}
    
    					$discount_total += $discount;
    				}
    
    				$total_data[] = array(
    					'code'       => 'reward',
    					'title'      => sprintf($this->language->get('text_reward'), $this->session->data['reward']),
    					'text'       => $this->currency->format(-$discount_total),
    					'value'      => -$discount_total,
    					'sort_order' => $this->config->get('reward_sort_order')
    				);
    
    				$total -= $discount_total;
    			} 
    		}
    	}
    
    	public function confirm($order_info, $order_total) {
    		$this->language->load('total/reward');
    
    		$points = 0;
    
    		$start = strpos($order_total['title'], '(') + 1;
    		$end = strrpos($order_total['title'], ')');
    
    		if ($start && $end) {  
    			$points = substr($order_total['title'], $start, $end - $start);
    		}	
    
    		if ($points) {
    			$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', description = '" . $this->db->escape(sprintf($this->language->get('text_order_id'), (int)$order_info['order_id'])) . "', points = '" . (float)-$points . "', date_added = NOW()");				
    		}
    	}		
    }
    ?>

    26 строка:

    $discount = $product['total'] * ($this->session->data['reward'] / $points_total);
    
  2. Доброго времени суток форумчане! Пожалуйста, подскажите в каком файле opencart объявлена формула считающая отношение бонусных баллов к цене?

     

    Пример (как есть):

     

                     Сумма в ББ: 515           Сумма: 250.00руб Бонусные баллы (100): -48.54руб Итого: 201.46руб

     

    Пример (как хотелось бы):

                     Сумма в ББ: 515           Сумма: 250.00руб Бонусные баллы (100): -9.00руб Итого: 241.00руб

     

    Хотелось бы чтобы клиенту необходимо было доплатить вместо 201 рубля - 241 рублей. т.е чтобы при использовании 100 бонусных баллов скидка составила: 9 рублей. 

  3. Всем привет! установил модуль infosmska (http://www.infosmska.ru/ ) для смс рассылок.
    Но почему-то при совершении заказа вот такая ошибка выдается
    Notice: Undefined offset: 1 in /system/library/oc_infosmska/gateway.php on line 56

    код gateway.php  - http://pastebin.com/jsTxSf3m

    <?php
    
    class OCInfosmskaGateway {
        public function __construct($registry) {
            $this->db = $registry->get('db');
            $this->config = $registry->get('config');
        }
    
    
        public function get_order_info($textarea, $order_id, $order_status_id = 0) {
            $order = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = $order_id LIMIT 1");
            $currency = $this->db->query("SELECT symbol_left,symbol_right FROM `" . DB_PREFIX . "currency` WHERE currency_id = " . $order->row['currency_id'] . " LIMIT 1");
    
    
            $total = $currency->row['symbol_left'].number_format(round($order->row['total'] * $order->row['currency_value'], 2), 2).$currency->row['symbol_right'];
    
    
            $g_list = $status->row['name'] = '';
    
    
            if (stripos($textarea, '{GOODS_LIST}') !== false) {
                $goods_list = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order_product` WHERE order_id = $order_id");
    
    
                foreach ($goods_list->rows as $k => $v)
                    $g_list .= ($k ? "\n" : '').$v['name'].':'.$v['model'].':'.$v['quantity'].':'.$currency->row['symbol_left'].
                            number_format(round($v['total'] * $order->row['currency_value'], 2), 2).$currency->row['symbol_right'];
            }
    
    
            if (stripos($textarea, '{ORDER_STATUS}') !== false)
                $status = $this->db->query("SELECT name FROM `" . DB_PREFIX . "order_status` WHERE order_status_id = " . ($order_status_id ? $order_status_id : $order->row['order_status_id']) . " AND language_id = ".$order->row['language_id'] . " LIMIT 1");
    
    
            $macros = array('~\{ORDER_NUM\}~i', '~\{ORDER_SUM\}~i', '~\{ORDER_STATUS\}~i', '~\{FIRST_NAME\}~i', '~\{LAST_NAME\}~i', '~\{CR_PHONE\}~i', '~\{CR_ADDR\}~i', '~\{GOODS_LIST\}~i');
    
    
            $value = str_replace('$', '\$', array($order_id, $total, $status->row['name'], $order->row['firstname'], $order->row['lastname'], $order->row['telephone'],
                                                    $order->row['shipping_address_1'].($order->row['shipping_address_2'] ? ' '.$order->row['shipping_address_2'] : ''), $g_list));
    
    
            return array('phone' => $order->row['telephone'], 'message' => preg_replace($macros, $value, $textarea), 'order_status_id' => $order->row['order_status_id']);
        }
    
    
    
    
        public function send($login, $password, $phone, $text, $sender)
        {
            $host = "api.infosmska.ru";
            $fp = fsockopen($host, 80);
            fwrite($fp, "GET /interfaces/SendMessages.ashx" .
            "?login=" . rawurlencode($login) .
            "&pwd=" . rawurlencode($password) .
            "&phones=" . rawurlencode($phone) .
            "&message=" . rawurlencode($text) .
            "&sender=" . rawurlencode($sender) .
            " HTTP/1.1\r\nHost: $host\r\nConnection: Close\r\n\r\n");
            fwrite($fp, "Host: " . $host . "\r\n");
            fwrite($fp, "\n");
    
            $response = "";
              while(!feof($fp)) {
              $response .= fread($fp, 1);
              }
                fclose($fp);
                list($other, $responseBody) = explode("\r\n\r\n", $response, 2);
                list($other, $ids_str) = explode(":", $responseBody, 2);
                list($sms_id, $other) = explode(";", $ids_str, 2);
            return $sms_id;
        }
    
    
    
    
    }

    56 строка: list($sms_id, $other) = explode(";", $ids_str, 2);

     

    я так понял, проблема в том. что функция explode как-то не так отрабатывает... Пожалуйста, помогите

     

  4. Доброго времени суток! Я приобрел адаптивный шаблон Shoppycart DEMO, установил. Вроде все здорово. Но, не работает поле поиска товара в мобильном режиме.

    Так должно выглядеть поле в обычном режиме:

    post-687543-0-38843700-1412263967_thumb.png

    А так в мобильной версии:

    post-687543-0-30412100-1412264026_thumb.jpg

     

    Собственно, что вышло после установки шаблона:

    post-687543-0-13282100-1412264196_thumb.png

     

    Задача:

    Восстановить работоспособность поиска до состояния как в демо версии шаблона.

     

    Оплата: 500 рублей, удобным для вас способом.

  5. Вопрос с локализацией кнопки я решил:

    1) Воспользовался поиском по файлам шаблона в Total Commander (спасибо markimax за наводку)

    post-687543-0-44928700-1412252910_thumb.jpg

    Сделал поиск по классу: more

    2) Импортировал все найденные файлы в Sublime Text

    3) воспользовался инструментом Замены

    post-687543-0-53306300-1412253107_thumb.jpg

     

    Заменил

    Title="View more"

    на

    Title="Подробнее"

    Все отлично перевелось. Сохранял редактируемые файлы в кодировке UTF-8 без BOM

     

    Вопрос первый все еще открыт... Если есть у кого-то еще идеи, буду рад выслушать.

  6.  

    1. лучше отображение класса search задавать через @media в css, тогда искать будет точно и там и там.

    2. если именно в карточке товара, то вам нужен файл:

    catalog/language/russian/product/product.php

    Спасибо за ответ!

     

    По второму вопросу, наверно я немного не корректно выразился. Конечно, хочется локализовать данную кнопку на всем сайте.

    Пример: в разделе рекомендуемых товаров есть позиция, если навести на нее мышкой, всплывают кнопки с действиями

    post-687543-0-47219000-1412248435_thumb.jpg

    (просмотреть карточку товара, в закладки, к сравнению, купить)

     

    Как я уже писал, я пробовал редактировать часть кода в файле catalog/view/theme/shopycart/template/product/product.tpl

              <!-- Begin box-product-info -->
              <div class="box-product-info">
                <div class="thumbnail-buttons">
                        <input type="text" name="search" placeholder="<?php echo $text_search; ?>" value="<?php echo $search; ?>" />
                        <div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" title="<?php echo $button_cart; ?>" class="button-cart" /></div>
                        <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" title="<?php echo $button_wishlist; ?>"></a></div>
                        <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" title="<?php echo $button_compare; ?>"></a></div>
                </div>
                </div>
                <!-- End box-product-info -->

    Пробовал задать Title по аналогии с другими кнопками, но ничего не вышло.

    Так выглядит кнопка которую не получается локализовать:

    post-687543-0-01303500-1412248443_thumb.jpg

  7. Добрый день!

    Постепенно вливаюсь в общество любителей OC, курю маны и документацию. Но, все же иногда возникают вопросы. Если кто-то может задать правильный вектор решения моих проблем, буду очень благодарен!

     

    Моя конфигурация: OC Версия 1.5.6.4 + перевод от Rb2 + тема оформления (лицензия) Shoppycart (demo)

     

    1) Первая и самая неприятная проблема это поле поиска которое пропадает в мобильной версии сайта, хотя в демке на оф сайте производителя темы оно остается и переносится вверх, под логотип сайта.

    post-687543-0-62377800-1412240302_thumb.jpgpost-687543-0-53423600-1412240315_thumb.jpg

    Пробежался инструментами разработчика по демке котороя висит он оф.сайте создателя темы и заметил, что у него есть такой кусочек кода:

    <!--Begin search mobile-->
    <div id="search-mobile">
        <div class="button-search-mobile"><
    /div>
        <input type="text" value="" placeholder="Search" name="search"></input>
    </div>
    <!--End search mobile-->

    Проверил у себя в папке с темой оформления файл: header.tpl

    И был очень сильно огорчен, у меня данного кусочка кода - нет. (Обидно, однако)

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

    <!--Begin search mobile-->
    <div id="search-mobile">
        <div class="button-search-mobile"><
    /div>
        <input type="text" value="" placeholder="Search" name="search"></input>
    </div>
    <!--End search mobile-->
     <!-- Begin search -->
              <div id="search">
                <div class="button-search"></div>
                <input type="text" name="search" placeholder="<?php echo $text_search; ?>" value="<?php echo $search; ?>" />
              </div>
     <!-- End search -->

    Моему удивлению небыло предела когда все (ну.. почти все) заработало! Заработал поиск в мобильной версии сайта. Но, перестал работать в десктопной. Точнее форма для поиска есть, но ввод туда любого запроса - заканчивается тем, что ничего не найдено. (хотя мобильная версия отлично ищет и все чудно работает)

     

    После чего я подумал, скорее всего нехватает условной конструкции If then else которая бы совершала (активацию?) мобильной версии сайта при определенных факторах (юзер агент, разрешения экрана) хотя возможно я думаю совсем не в ту сорону.

     

    2) Вопрос номер два который я так же не могу побороть - это локализация кнопки (more) на карточке товара

    post-687543-0-88289900-1412240995_thumb.jpg

    Мигом полез в product.tpl, нашел кусочек кода в котором фигурирует нужная мне кнопка, попробовал его отредактировать следующим методом:

    <!-- Begin box-product-info -->
              <div class="box-product-info">
                <div class="thumbnail-buttons">
                        <div class="more"><a href="<?php echo $product['href'];" title="<?php echo $button_more; ?>"></a></div>
                </div>
                </div>
                <!-- End box-product-info -->

    Параметру Title присвоил значение:

    <?php echo $button_more; ?>

    Предварительно добавил в файл локализации: catalog/language/russian/russian.php

    строчку:

     $_['button_more']        ='Подробнее';

    Но, к моему удивлению - нифига не получилось, кнопка не перевелась. Сломал всю голову, не понимаю... В каком файле еще может быть привязка к этой кнопке?

    Самое интересно, что остальные кнопки отлично перевелись и работают:

    $_['button_cart']           = 'Купить';
    $_['button_compare']        = 'В сравнение';
    $_['button_wishlist']       = 'В закладки';
×
×
  • Створити...

Important Information

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