[FAQ] Настройки, оптимизации, фичи, статьи для OpenCart

Тема в разделе "OpenCart", создана пользователем VeroN, 23 дек 2012.

  1. VeroN

    VeroN

    Регистрация:
    26 ноя 2012
    Сообщения:
    82
    Симпатии:
    316
    « Правила раздела »
    1. Обсуждения - запрещены! Здесь размещаются только "готовые решения".
    2. Если хотите отблагодарить автора поста, то используем кнопку «Мне нравится». Создавать для этого новые сообщения не нужно!
    3. Размещать ссылки на сторонние ресурсы - запрещено.
    4. Если у вас возникли вопросы по одному из сообщений и вы считаете, что оно требует доработки или прочих изменений, то свяжитесь с автором поста для редактирования информации или сообщите одному из модераторов раздела для внесения изменений при помощи личных сообщений или кнопки "Пожаловаться".
    Правила оформления сообщения
    1. Название - для удобного поиска.
    2. Использовать размер шрифта для заголовков не больше 5, для остального не меньше 3 (стандартный). Если используете другой "цвет" шрифта, то он должен быть адекватным и не содержать 'радуги' или 'ядовитый' оттенок, который при просмотре ломает глаза.
    3. Для кода используем соответствующие теги, если код длинный, то прячем под "спойлер".
    4. Свободная информация взятая из интернета под хайдом не устанавливается! Если это ваш личный метод, то хайд на ваше усмотрение.
    Пример:
    « Меняем иконку для сайта »

    По умолчанию стандартная иконка имеет вид корзины для покупок. Рисуем свою иконку (16х16 px), сохраняем ее как "favicon.ico" и загружаем в корень сайта. Открываем файл "header.tpl" (путь: catalog\view\theme\default\template\common) и добавляем строчку:
    Код:
    <link rel="shortcut icon" href="/favicon.ico">
    - - -
    С уважением,
    Администрация форума
     
    rrrrsrer79, hisbvdis, Zelveger и 3 другим нравится это.
  2. loveinn

    loveinn

    Регистрация:
    26 фев 2013
    Сообщения:
    2
    Симпатии:
    1
    Отображение количества товара на складе в карточках товара в витрине.
    Очень удобно знать какое количество товара, которое можно проложить в корзину тут же выбрать нужное количество и совершить покупку не заходя в карточку товара.
    Сразу хочу предупредить: если установлен VQmod, возможны ошибки. Я сначала проделываю все нижеописанное, а потом VQmod устанавливаю. В любом случае бэкап еще никому не вредил.
    Итак, редактируем файл catalog/controller/product/category.php

    ищем код:

    Код:
    if ($this->config->get('config_review_status')) {
     
    $rating = (int)$result['rating'];
     
    } else {
     
    $rating = false;
     
    }
     
     
     
    
    под ним дописываем:
    Код:
    if ($result['quantity'] <= 0) {
    $rstock = $result['stock_status'];
    } elseif ($this->config->get('config_stock_display')) {
    $rstock = "Stoc: " . $result['quantity'];
    } else {
    $rstock = "In stoc";
    }
    
    В этом же файле ищем код
    Код:
    'thumb' => $image,
     
    
    под ним добавляем
    Код:
    'stoc' => $rstock,
    
    Сохраняем.
    Теперь редактируем файл /view/theme/Ваша_тема/template/product/category.tpl
    После
    Код:
    <div class="cart">
    
    добавляем это:
    Код:
    <?php echo $product['stoc']; ?><br />
    
    Сохраняем.
    Ставим в нужном месте с помощью Css.
    Для возможности выбора количества товара из списка товаров (страница категории) использую модуль. Вот и все.
     
  3. WildeRNS

    WildeRNS

    Регистрация:
    6 ноя 2012
    Сообщения:
    151
    Симпатии:
    112
    иконки доставки для Simple (vqmod)

     
    termotorg.shop, v@dim, mstkalenko и 5 другим нравится это.
  4. ruslan216455

    ruslan216455

    Регистрация:
    6 ноя 2012
    Сообщения:
    220
    Симпатии:
    22
    возможность выбора количества товара для модуля "Последние"

    /catalog/view/theme/default/template/module/latest.tpl
    находим
    Код:
     <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
    заменяем
    Код:
    <input type="text" value="1" class="item-<?php echo $product['product_id']; ?>" />
    <input type="button" value="<?php echo $button_cart; ?>" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');" class="button" />
    в самый конец модуля вставляем
    Код:
    <script type="text/javascript">
    function addQtyToCart(product_id) {
      var qty = $('.item-' + product_id).val();
      if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) {
    		qty = 1;
      }
      addToCart(product_id, qty);
    }
     
    </script>
     
  5. ruslan216455

    ruslan216455

    Регистрация:
    6 ноя 2012
    Сообщения:
    220
    Симпатии:
    22
    Вывод в корзину только цену (пример в корзине 2100р.)

    catalog/language/russian/module/cart.php
    Код:
    $_['text_items']		= '% (%s';

    catalog\language\russian\checkout\cart.php

    Код:
    $_['text_items']		= '% (%s';

    catalog/view/theme/default/template/module/cart.tpl

    Код:
    <a href="index.php?route=checkout/cart">
    <div id="cart">
     
     
    		<span id="cart-total"><?php echo $text_items; ?></span>
     
    </div>
    </a>
    Результат
    [​IMG]
     
  6. Атец

    Атец

    Регистрация:
    16 мар 2013
    Сообщения:
    13
    Симпатии:
    3
    Спускаем поиск на уровень меню выбора категорий(дефолтный шаблон OcStore 1.5.4.1)

    В файле /public_html/catalog/view/theme/default/stylesheet делаем следующие правки:
    #header #search {
    position: absolute;
    top: 107px;
    right: 5px;


    Копирайт в футере по центру

    В файле upload\catalog\view\theme\default\template\common\footer

    переменную $powered заключаем между тегами <center> </center>

    <div id="powered"><center><?php echo $powered; ?></center></div>
     
  7. mstkalenko

    mstkalenko

    Регистрация:
    5 янв 2013
    Сообщения:
    8
    Симпатии:
    44
    Доработка хлебных крошек (breadcrumb)

    В "хлебных крошках" последний элемент (текущую страницу) делаем не ссылкой, а простым текстом:

    В файле catalog/view/theme/default/template/product/product.tpl заменяем
    Код:
      <div class="breadcrumb">
    	<?php foreach ($breadcrumbs as $breadcrumb) { ?>
    	<?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    	<?php } ?>
      </div>
    на
    Код:
      <div class="breadcrumb">
    		<?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?>
    		<?php echo $breadcrumb['separator']; ?><?php if($i+1<count($breadcrumbs)) { ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } else { ?><?php echo $breadcrumb['text']; ?><?php } ?>
    		<?php } ?>
      </div>
     
    Dema, anskachkov, Ваган и 8 другим нравится это.
  8. yuzi

    yuzi

    Регистрация:
    5 янв 2013
    Сообщения:
    133
    Симпатии:
    71
    Sedmi и buldozer нравится это.
  9. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    Clear all Opencart cache - небольшой вырезанный модуль из increase page speed для очистки всего кеша
    копируем в корень сайта и пользуемся
    скачать
    Для тех у кого нет установленного vQmod папку vqmod не загружать на хостинг а сделать так:
    Ищем файл admin/language/ВАШ_ЯЗЫК/common/header.php
    Перед строчкой с таким содержимым
    PHP:
    $_['text_product'
    Вставляем ето
    PHP:
    $_['text_clear_caches']         = 'Clear Cache(s)';
                
    $_['text_clear_vqmod']          = 'VQMod Cache';
                
    $_['text_clear_image']          = 'Image Cache';
                
    $_['text_clear_system']         = 'System Cache';
    В файле admin/controller/common/header.php
    перед
    PHP:
    $this->data['text_customer'
    вставляем ето
    PHP:
    $this->data['text_clear_vqmod']        = $this->language->get('text_clear_vqmod');
                
    $this->data['text_clear_image']        = $this->language->get('text_clear_image');
                
    $this->data['text_clear_system']      = $this->language->get('text_clear_system');
    В файле admin/view/template/common/header.tpl
    перед
    PHP:
    <ul class="right">
    вставляем ето
    PHP:
    <ul class="left">
                <li id="clear-all-caches"><a class="top"><?php echo $text_clear_caches?></a>
                    <ul>
                        <li><a href="<?php echo $this->url->link('tool/clearcache/vqmod''token=' $this->session->data['token'], 'SSL'?>"><?php echo $text_clear_vqmod?></a></li>
                        <li><a href="<?php echo $this->url->link('tool/clearcache/image''token=' $this->session->data['token'], 'SSL'?>"><?php echo $text_clear_image?></a></li>
                        <li><a href="<?php echo $this->url->link('tool/clearcache/system''token=' $this->session->data['token'], 'SSL'?>"><?php echo $text_clear_system?></a></li>
                    </ul>
                </li>
                </ul>
    копируем все из архива в корень сайта кроме папки vqmod!
     
    x-guest, gnommong, Vlad-i-Slav и ещё 1-му нравится это.
  10. mstkalenko

    mstkalenko

    Регистрация:
    5 янв 2013
    Сообщения:
    8
    Симпатии:
    44
    Доработка title SEO и Description
    Все мы знаем, что в категориях и производителях дублируются теги на страницах типа:
    http://site.com/kategoriya
    http://site.com/kategoriya?page=2
    http://site.com/kategoriya?page=3
    http://site.com/kategoriya?page=4 и так далее. Давайте это изменим.
    В файле /catalog/view/theme/тема/template/common/header.tpl
    находим:
    Код:
    <title><?php echo $title; ?></title>
    заменяем на:
    Код:
    <title><?php echo $title;
    if (isset($_GET['page'])) {
    echo " | Страница ". ((int) $_GET['page']);
    } ?></title>
    находим:
    Код:
    <meta name="description" content="<?php echo $description; ?>" />
    заменяем на:
    <meta name="description" content="<?php echo $description; if (isset($_GET['page'])) {
    echo " | Страница ". ((int) $_GET['page']);
    } ?>" />
     
  11. vupik

    vupik

    Регистрация:
    6 ноя 2012
    Сообщения:
    59
    Симпатии:
    18
    Полёт товара в корзину для 1.5.3.
    Мне кажется очень нужная фуська! Многие покупатели корзину могут не увидеть, а так визуально показано куда товар летит!
    Для применения нужно всего лишь поменять выполнение скрипта
    Заходим вот в этот файл: catalog/view/theme/Ваш шаблон/template/product/product.tpl
    находим и меняем код, который примерно на 360 строке:
    Код:
    	<script type="text/javascript"><!--
    	$('#button-cart').bind('click', function() {
    		$.ajax({
    			url: 'index.php?route=checkout/cart/update',
    			type: 'post',
    			data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
    			dataType: 'json',
    			success: function(json) {
    				$('.success, .warning, .attention, information, .error').remove();
    			 
    				if (json['error']) {
    					if (json['error']['warning']) {
    						$('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    				 
    						$('.warning').fadeIn('slow');
    					}
    				 
    					for (i in json['error']) {
    						$('#option-' + i).after('<span class="error">' + json['error'][i] + '</span>');
    					}
    				}   
    						 
    				if (json['success']) {
    					$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    					 
    					$('.success').fadeIn('slow');
    					 
    					$('#cart_total').html(json['total']);
    				 
    					$('html, body').animate({ scrollTop: 0 }, 'slow');
    				}   
    			}
    		});
    	});
    	//--></script>
    
    на вот этот :
    Код:
    	//--></script>
    	<script type="text/javascript">
    	$(document).ready(function(){
    		$('#button-cart').bind('click', function() {
    			$.ajax({
    				url: 'index.php?route=checkout/cart/add',
    				type: 'post',
    				data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
    				dataType: 'json',
    				success: function(json) {
    					$('.success, .warning, .attention, information, .error').remove();
    						if (json['error']) {
    						if (json['error']['warning']) {
    							$('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    							$('.warning').fadeIn('slow');
    						}
    						for (i in json['error']) {
    							$('#option-' + i).after('<span class="error">' + json['error'][i]
    	+ '</span>');
    						}
    					}
    								 
    					if (json['success']) {
    						$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    					 
    						$('.success').fadeIn('slow');
    						$('#cart_total').html(json['total']);
    						var image = $('#image').offset();
    							$('.cart-module').html(json['output']);
    							if($(".cart-module").length > 0){
    								var cart = $('.cart-module');
    								var cart_offset = cart.offset();
    							}else {
    								var cart = $('#cart');
    								var cart_offset = cart.offset();
    						}
    						$('#image').before('<img src="' + $('#image').attr('src') + '" id="temp" style="position: absolute; z-index:9999; top: ' + image.top + 'px; left: ' + image.left + 'px;" />');
    						params = {
    							top : cart_offset.top + 'px',
    							left : cart_offset.left + 'px',
    							opacity : 0.0,
    							width : cart.width(),
    							height : cart.height()
    						};
    						$('#temp').animate(params, 'slow', false, function () {
    							$('#temp').remove();
    						});
    					}
    									if (json['success']) {
    											$('#cart-total').html(json['total']);
    							}	 
    				}
    			});
    		});
    	});
    	</script>
    
    Реально очень важная вещь!!!
     
    Nokly, winner7, Taker и 2 другим нравится это.
  12. wbvetal86

    wbvetal86

    Регистрация:
    19 фев 2013
    Сообщения:
    55
    Симпатии:
    8
  13. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    130
    Симпатии:
    35
    Установка кода статуса 404 для отключенных товаров/категорий/производителей (в случае отключенного SEO).

    По умолчанию, код статуса 404 - страница не найдена - возвращается только в случае, когда "Запрашиваемая страница не найдена".
    Если вы когда-то создали товар (категорию/производителя) и отключили его, но поисковики успели его проиндексировать, то в будущем вы можете видеть ссылки на ваш сайт вида: Товар не найден.
    Это не есть хорошо для нас. Чтобы отключенный товар (категория/производитель) выпадал из поисковой выдачи, нужно корректно возвращать статус страницы, для этого необходимо внести небольшие изменения (протестировано на 1.5.1.3):

    В контроллерах продукта (catalog/controller/product/product.php), категории (catalog/controller/product/category.php), производителя (catalog/controller/product/manufacturer.php) перед
    PHP:
                if (file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                    
    $this->template $this->config->get('config_template') . '/template/error/not_found.tpl';
                } else {
                    
    $this->template 'default/template/error/not_found.tpl';
                }
    нужно вставить
    PHP:
                  $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
    По необходимости такие изменения можно внести и в другие файлы:
    catalog/controller/account/download.php
    catalog/controller/account/order.php
    catalog/controller/account/return.php
    catalog/controller/checkout/cart.php
    catalog/controller/information/information.php
     
    termotorg.shop, Resman и oPPPs нравится это.
  14. Berserk163

    Berserk163

    Регистрация:
    16 фев 2013
    Сообщения:
    53
    Симпатии:
    23
    Добавляем сортировку по наличию. Протестировано на Opencart 1.5.4.1

    Идем по адресу: /catalog/controller/product/category.php

    После кода:
    PHP:
    $this->data['sorts'] = array();
     
    $this->data['sorts'][] = array(
      
    'text'  => $this->language->get('text_default'),
      
    'value' => 'p.sort_order-ASC',
      
    'href'  => $this->url->link('product/category''path=' $this->request->get['path'] . '&sort=p.sort_order&order=ASC' $url)
    );
    В зависимости от желаемой позиции в списке сортировки добавляем код:
    PHP:
    //stock sorting
    $this->data['sorts'][] = array(
      
    'text'  => $this->language->get('text_stockprod'),
      
    'value' => 'p.quantity-DESC',
      
    'href'  => $this->url->link('product/category''path=' $this->request->get['path'] . '&sort=p.quantity&order=DESC' $url)
    );
    //
    В файле /catalog/language/russian/product/category.php добавляем строку
    Код:
    $_['text_stockprod']	= 'По наличию';
    Едем дальше. В файле /catalog/model/catalog/product.php ищем первое совпадение по строке.
    PHP:
    if (!$product_data) {
    Под этой строкой Вы увидите следующий код (может отличаться от Вашего).
    Код:
    $sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)";
    Наша задача вставить короткий кусок кода "p.quantity," после "SELECT p.product_id,". Должно получиться так:
    Код:
    $sql = "SELECT p.product_id, p.quantity, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)";
    Вот и все.
     
    kommunik, Сентинел, NinoZombie и 3 другим нравится это.
  15. sunny8u

    sunny8u

    Регистрация:
    21 окт 2012
    Сообщения:
    71
    Симпатии:
    63
    Создаем любые новые переменные для товара и выводим их на витрину + страницу продукта + модули типа "Акции" + в админку!
    Я, например, вывела "Материал", "Размер", "Цену лота" и количество товаров в лоте. Объединив это с небольшими правками css-стилей можно получить очень интересное оформление для витрины интернет-магазина.
    В итоге, выглядит это примерно следующим образом:
    [​IMG]

    Новую переменную можно создать с ноля или использовать уже имеющиеся неиспользуемые поля, типа UPC; EAN; JAN; ISBN; MP.
    Я бы посоветовала сначала использовать уже готовые переменные, так как они уже выведены в админке в карточку товара и в Bath Editor (очень удобном модуле, без которого не могу себе представить наполнение магазина товарами). Вам не придётся заморачиваться выводом дополнительных переменных в админку.
    Но если готовых переменных не хватает и позарез нужна новая, это сделать не так сложно.

    1. Создаём новую переменную в PHPMyAdmin или изменяем существующие под свои нужды.
    Как создать новую переменную для продукта:
    2. Настраиваем контроллеры для страницы категорий, страницы товара, модулей по типу "Акции и скидки", "Последние" и т.д. Во всех файлах производятся аналогичные операции.
    Открываем файл контроллера страницы товара: catalog/controller/product/product.php.
    Открываем файл контроллера страницы категорий: catalog/controller/product/category.php.
    Открываем файл контроллера модуля "Последние": catalog/controller/module/last.php. и/или другие...
    Если вы используете уже существующие переменные и не создавали новую с ноля, при выполнении дальнейших инструкций, убедитесь, что они еще не прописаны в файлах-контроллерах. Если прописаны, ничего добавлять не нужно.
    3. Настраиваем языковые файлы для созданной переменной. Во всех файлах производятся аналогичные операции.
    Открываем языковой файл страницы товара: catalog/language/russian/product/product.php.
    Открываем языковой файл страницы категорий: catalog/language/russian/product/category.php.
    Открываем языковой файл модуля "Последние": catalog/language/russian/module/last.php. и/или другие...
    Если вы используете уже существующие переменные и не создавали новую с ноля, при выполнении дальнейших инструкций, убедитесь, что они еще не прописаны в языковых файлах. Если прописаны, просто измените текст на свой. Дополнительно ничего прописывать не нужно.

    4. Выводим новую переменную на страницу товара, страницу категорий и в модули. Во всех файлах производятся аналогичные операции.
    Открываем файл шаблона страницы товара: catalog/view/theme/ВАША ТЕМА/template/product/product.tpl.
    Открываем файл шаблона страницы категорий: catalog/view/theme/ВАША ТЕМА/template/product/category.tpl.
    Открываем файл шаблона модуля "Последние": catalog/view/theme/ВАША ТЕМА/template/module/last.tpl. и/или другие...
    Если вы используете уже существующие переменные и не создавали новую с ноля, при выполнении дальнейших инструкций, убедитесь, что они еще не прописаны в файлах-шаблонах. Если прописаны, ничего добавлять не нужно. Просто при необходимости переместите код в нужное вам место.
    Если вы использовали уже существующие переменные типа UPC; EAN; JAN; ISBN; MP, далее задача по выводу поля в админку в разы легче. Вам всего лишь нужно изменить название переменной в языковом файле админки или модуля, через который вы добавляетет товары (типа Bath Editor). Можно, конечно, не заморачиваться и просто помнить, что в поле "UPC" находится "Материал" и т.д., но это очень неудобно и непрактично.

    5. Выводим новую переменную в админку, чтобы при добавлении товаров она также отображалась вместе с другими характеристиками.
    Если вы создавали новую переменную "с ноля", вам необходимо проделать еще достаточное количество работы, аналогичной той, что уже была сделана.

    1. Настраиваем файл-контроллер для страницы добавления товара в админке.
    Открываем файл контроллера: admin/controller/catalog/product.php.
    2. Настраиваем языковой файл для страницы добавления товара в админке.
    Открываем языковой файл: admin/language/russian/catalog/product.php.
    3. Выводим новую переменную в админку на страницу добавления товара. Конец!:rolleyes:

    Для модуля Bath Editor нужно проделать аналогичные действия с аналогичными файлами. Я не буду подробно расписывать, потому что по аналогии вы и сами вполне разберетесь. Всё абсолютно точно также. Нужно внести изменения в 3 файла:
    - файл контроллера, admin/controller/module/batch_editor.php
    - языковой файл, admin/language/russian/module/batch_editor.php
    - файл шаблона. admin/view/template/module/bath_editor/index.tpl
    Успехов!
     
    Сентинел, NinoZombie, sokrat и 14 другим нравится это.
  16. webmaster

    webmaster

    Регистрация:
    26 окт 2012
    Сообщения:
    234
    Симпатии:
    874
    Сделать по-умолчанию вид "сетка" в категориях
     
    anskachkov, jaroslav1984, termotorg.shop и 2 другим нравится это.
  17. MattMatt

    MattMatt

    Регистрация:
    13 апр 2013
    Сообщения:
    3
    Симпатии:
    11
    Показать товары из подкатегорий в родительских категориях

    перейти к /catalog/controller/product/category.php


     
    advunt, korabel-o, gnommong и 2 другим нравится это.
  18. x-guest

    x-guest Команда форума

    Регистрация:
    8 окт 2012
    Сообщения:
    276
    Симпатии:
    979
    Исправление работы каптчи (Не работает каптча)
    (не отображается картинка каптчи)




    Файл: system/library/captcha.php
    Заменить вот это:
    Код:
    function __construct() {
      $this->code = substr(sha1(mt_rand()), 17, 6);
    }
    На это:
    Код:
    function __construct() {
      $this->code = substr(sha1(mt_rand()), 17, 6);
      $out = ob_get_contents();
      $out = str_replace(array("\n", "\r", "\t", " "), "", $input);
      ob_end_clean();
    }
    Если в логе появится ошибка: PHP Notice: Undefined variable: input in www/site.ru/vqmod/vqcache/vq2-system_library_captcha.php on line 13
    Тогда меняем на это:
    Код:
    function __construct() {
      $this->code = substr(sha1(mt_rand()), 17, 6);
      $out = ob_get_contents();
      $out = str_replace(array("\n", "\r", "\t", " "), "", $this->code);
      ob_end_clean();
    }
     
    Skur22 нравится это.
  19. ГорМастер

    ГорМастер

    Регистрация:
    1 апр 2013
    Сообщения:
    115
    Симпатии:
    22
    Изначально, цены товаров хранятся с точностью 4 цифры после запятой.
    Во избежание корявого отображения цены в Админке (да и просто исходя из здравого смысла), формат поля Price таблицы oc_product изменяем в phpMyAdmin на decimal(15,2)
     
    Beloksik нравится это.
  20. dimasikpo

    dimasikpo

    Регистрация:
    19 фев 2013
    Сообщения:
    3
    Симпатии:
    7
    [​IMG]
    Модуль вывода статей в главном меню своими руками:
     
    Sedmi, winner7, eurosim и 2 другим нравится это.
  21. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    286
    Симпатии:
    176
    Автозаполнение поля "Модель"

    В файле admin/view/template/catalog/product_form.tpl
    заменяем
    Код:
    <td><input type="text" name="model" value="<?php echo $model; ?>" />
    на
    Код:
    <td><input type="text" name="model" value="<?php echo $model; ?><?php if ($model) {} else {$urunkodu = date("ymdhis"); echo $urunkodu;} ?>" />
    --- добавлено: May 14, 2013 9:39 PM ---
    Бесплатный SSL сертификат

    1. На сайте http://www.startssl.com получаем бесплатный ssl сертификат на 1 год (на всякий случай инструкция)
    2. В меню Система-Настройки-Сервер пункт Использовать SSL - Да
    3. В файле config.php в секции HTTPS
    Код:
    // HTTPS
    define('HTTPS_SERVER', 'http://yoursite.com/');
    define('HTTPS_IMAGE', 'http://yoursite.com/image/');
    
    заменяем "http://" на "https://"
     
    0micron, aleshki, alenru и 3 другим нравится это.