Заметки / OpenCart :: КодМаньяк: в помощь веб-разрабочику. Бесплатное онлайн - хранилище кода, заметок, ссылок и файлов. https://codemaniac.ru Заметки кода ru Sat, 07 Dec 2019 05:27:52 +0300 OpenCart. Порядок сортировки стран <p>Файл /catalog/model/localisation/country.php меняем</p><pre><code class="language-php">$query = $this-&gt;db-&gt;query("SELECT * FROM " . DB_PREFIX . "country WHERE status = '1' ORDER BY name ASC");</code></pre><p>на</p><pre><code class="language-php">$query = $this-&gt;db-&gt;query("SELECT * FROM " . DB_PREFIX . "country WHERE status = '1' ORDER BY country_id!=81,country_id!=1,country_id!=2,country_id!=3,country_id!=4,country_id!=5,country_id!=6,country_id!=7,country_id!=8,country_id!=9,country_id!=10,name");</code></pre><p>где, country_id - id необходимой нам страны.</p><p>Возможно потребуется аналогичная правка в /admin/model/localisation/country.php, если порядок будет сбиваться.</p><p>&nbsp;</p> Wed, 14 Aug 2019 19:29:11 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-porjadok-sortirovki-stran-246.html https://codemaniac.ru/snip/cms/opencart/opencart-porjadok-sortirovki-stran-246.html OpenCart. Опции товара, вычитание со склада по-умолчанию Нет <p>2.3</p><p>В файле /admin/view/template/catalog/product_form.tpl строки 1317 и 1318 меняем порядок на</p><pre><code class="language-php">html += ' &lt;option value="0"&gt;&lt;?php echo $text_no; ?&gt;&lt;/option&gt;'; html += ' &lt;option value="1"&gt;&lt;?php echo $text_yes; ?&gt;&lt;/option&gt;';</code></pre><p>&nbsp;</p> Fri, 28 Jun 2019 22:58:45 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-opcii-tovara-vychitanie-so-sklada-po-umolchaniyu-242.html https://codemaniac.ru/snip/cms/opencart/opencart-opcii-tovara-vychitanie-so-sklada-po-umolchaniyu-242.html OpenCart. Убрать слеш в конце URL <p>Версия 2.3</p><p>в файле /catalog/controller/startup/seo_pro.php находим строку (235 примерно)</p><pre><code>$seo_url .= '/';</code></pre><p>меняем на</p><pre><code>$seo_url .= '';</code></pre><p>&nbsp;</p> Fri, 07 Jun 2019 17:43:53 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-ubrat-slesh-v-konce-url-240.html https://codemaniac.ru/snip/cms/opencart/opencart-ubrat-slesh-v-konce-url-240.html OpenCart. Включить все страны и сделать индекс обязательным <p>Версия 2.3</p><p>Включаем страны запросом в БД:</p><pre><code>update oc_country set status = '1'</code></pre><p>Делаем индекс обязательным:</p><pre><code>update oc_country set postcode_required = '1'</code></pre><p>&nbsp;</p> Fri, 07 Jun 2019 13:56:28 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vklyuchit-vse-strany-i-sdelat-indeks-objazatelnym-239.html https://codemaniac.ru/snip/cms/opencart/opencart-vklyuchit-vse-strany-i-sdelat-indeks-objazatelnym-239.html OpenCart. Присвоить class категориям в модуле <p>Версия 2.3</p><p>В файле /catalog/view/theme/next_default/template/extension/module/category.tpl в строке</p><pre><code>&lt;a href="&lt;?php echo $category['href']; ?&gt;" class="list-group-item cat-&lt;?php echo $category['category_id']; ?&gt;"&gt;&lt;?php echo $category['name']; ?&gt;&lt;/a&gt;</code></pre><p>добавлена функция</p><pre><code>cat-&lt;?php echo $category['category_id']; ?&gt;</code></pre><p>&nbsp;</p> Sat, 01 Jun 2019 21:17:57 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-prisvoit-class-kategorijam-v-module-238.html https://codemaniac.ru/snip/cms/opencart/opencart-prisvoit-class-kategorijam-v-module-238.html OpenCart. 301 редирект <p>При включенном сео про (проверено на версии 2.3):</p><p>для категорий сработало так:</p><pre><code>RewriteCond %{QUERY_STRING} ^_route_=cat1/cat2/cat3/cat4/$ RewriteRule ^(.*)$ https://site.ru/cat-new/? [R=301,L]</code></pre><p>где</p><p>cat1/cat2/cat3/cat4/ является частью урла страницы https://site.ru/cat1/cat2/cat3/cat4/</p><p>&nbsp;</p><p>Для изображений (в моем случае) так:</p><pre><code>Redirect 301 /dir1/dir2/dir3/foto.jpg https://site.ru/image/cache/catalog/foto-228x228.jpg</code></pre><p>соответственно, ссылку на существующее фото берем на странице товара.</p><p>Редиректы прописаны после:</p><pre><code>RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]</code></pre><p>&nbsp;</p> Wed, 29 May 2019 14:34:29 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-301-redirekt-237.html https://codemaniac.ru/snip/cms/opencart/opencart-301-redirekt-237.html OpenCart. Сохранять введенный код в HTML модуле <p>1. Открыть файл по указанному пути: admin\view\template\module\html.tpl<br /> 2. В этом файле найти тег textarea и удалить у него класс .summernote</p> Sat, 02 Mar 2019 14:05:00 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-sohranjat-vvedennyi-kod-v-html-module-235.html https://codemaniac.ru/snip/cms/opencart/opencart-sohranjat-vvedennyi-kod-v-html-module-235.html OpenCart. Найти товары без описания в 1.5 <p>Запросом:</p><pre><code>select `product_id` from `oc_product_description` where `description`=''</code></pre><p>выведутся id товаров без описаний</p> Mon, 09 Oct 2017 13:35:24 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-naiti-tovary-bez-opisanija-v-1-5-228.html https://codemaniac.ru/snip/cms/opencart/opencart-naiti-tovary-bez-opisanija-v-1-5-228.html OpenCart 1.5 и 2.3. Canonical в пагинации <h2 style="text-align:center">Производители</h2><p>&nbsp;</p><p>В /catalog/controller/product/manufacturer.php после</p><pre><code class="language-php">$page = $this-&gt;request-&gt;get['page'];</code></pre><p>вставляем</p><pre><code class="language-php">if (isset($this-&gt;request-&gt;get['manufacturer_id'])) {$this-&gt;document-&gt;addLink($this-&gt;url-&gt;link('product/manufacturer/info', 'manufacturer_id=' . $this-&gt;request-&gt;get['manufacturer_id']), 'canonical');} </code></pre><p>&nbsp;</p><h2 style="text-align:center">Категории</h2><p>&nbsp;</p><p>В /catalog/controller/product/category.php для 1.5 после</p><pre><code class="language-php">$this-&gt;load-&gt;model('tool/image');</code></pre><p>вставляем</p><pre><code class="language-php">if (isset($this-&gt;request-&gt;get['page'])) { $page = $this-&gt;request-&gt;get['page']; $pathx = explode('_', $this-&gt;request-&gt;get['path']); $pathx = end($pathx); $this-&gt;document-&gt;addLink($this-&gt;url-&gt;link('product/category', 'path=' . $pathx ), 'canonical'); } else { $page = 1; }</code></pre><p>В /catalog/controller/product/category.php для 2.3 в строке</p><pre><code class="language-php">if ($page == 1) { $this-&gt;document-&gt;addLink($this-&gt;url-&gt;link('product/category', 'path=' . $category_info['category_id'], true), 'canonical');</code></pre><p>меняем условие на</p><pre><code class="language-php">$page &gt; 0</code></pre><p>если хотим видеть canonical в пагинации и на странице категории. Если только в пагинации, то</p><pre><code class="language-php">$page &gt; 1</code></pre><p>или</p><pre><code class="language-php">$page &lt;&gt; 1</code></pre><p>&nbsp;</p><p>Источник по 1.5 https://opencartforum.com/topic/30310-canonical-dlya-stranic-kategoriy/</p> Mon, 29 May 2017 12:01:25 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-1-5-canonical-v-paginacii-219.html https://codemaniac.ru/snip/cms/opencart/opencart-1-5-canonical-v-paginacii-219.html OpenCart 2.x. Скрыть описание категории на страницах пагинации <p>В /catalog/controller/product/category.php вместо</p><pre><code class="language-php">$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');</code></pre><p>вставляем</p><pre><code class="language-php">if ($page == 1) {$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');}</code></pre><p>&nbsp;</p> Thu, 30 Mar 2017 22:44:21 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-2-x-skryt-opisanie-kategorii-na-stranicah-paginacii-218.html https://codemaniac.ru/snip/cms/opencart/opencart-2-x-skryt-opisanie-kategorii-na-stranicah-paginacii-218.html OpenCart. Разрешенные типы файлов <p>В версии 2.х при добавлении doc, docx. xls. xlsx в настройки <strong>Разрешенные Mime Types</strong>, добавляем:</p><pre><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></pre><p>Инфа <a href="https://www.sitepoint.com/web-foundations/mime-types-summary-list/">здесь</a>.</p><p>Топик <a href="https://opencartforum.com/topic/44939-resheno-zagruzki-nepravilnyy-tip-fayla/">тут</a>.</p> Mon, 27 Feb 2017 18:19:09 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-razreshennye-tipy-failov-214.html https://codemaniac.ru/snip/cms/opencart/opencart-razreshennye-tipy-failov-214.html OpenCart. Поиск по id товара <p><strong>catalog/model/catalog/product.php </strong>после</p><pre><code class="language-php">if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.mpn) = '" . $this-&gt;db-&gt;escape(utf8_strtolower($data['filter_name'])) . "'"; }</code></pre><p>в 2.х после</p><pre><code class="language-php">$sql .= " OR LCASE(p.mpn) = '" . $this-&gt;db-&gt;escape(utf8_strtolower($data['filter_name'])) . "'";</code></pre><p>добавить</p><pre><code class="language-php">if (!empty($data['filter_name'])) { $sql .= " OR p.product_id = '" . $this-&gt;db-&gt;escape(utf8_strtolower($data['filter_name'])) . "'"; }</code></pre><p>в 2.х</p><pre><code class="language-php">$sql .= " OR p.product_id = '" . $this-&gt;db-&gt;escape(utf8_strtolower($data['filter_name'])) . "'";</code></pre><p>&nbsp;</p><p>В <strong>catalog/controller/product/search.php </strong>после</p><pre><code class="language-php">if (file_exists(DIR_TEMPLATE . $this-&gt;config-&gt;get('config_template') . '/template/product/search.tpl')) {</code></pre><p>добавить</p><pre><code class="language-php">$search_string = isset($this-&gt;request-&gt;get['search']) ? trim($this-&gt;request-&gt;get['search']) : NULL; if(is_numeric($search_string)){ if($product_total == 1){ $this-&gt;redirect($this-&gt;url-&gt;link('product/product', 'product_id='.$search_string.'&amp;cc='.$search_string)); } }</code></pre><p>&nbsp;</p> Wed, 22 Feb 2017 20:43:59 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-poisk-po-id-tovara-213.html https://codemaniac.ru/snip/cms/opencart/opencart-poisk-po-id-tovara-213.html OpenCart 2.x. Убрать валидацию полей при редактировании заказа и покупателя <h2 style="text-align:center"><strong>Редактирование заказа</strong></h2><p>На примере поля Адрес 1.</p><p>1. В файлах:</p><div style="background:#eee; border:1px solid #ccc; padding:5px 10px">catalog\controller\api\customer.php</div><div style="background:#eee; border:1px solid #ccc; padding:5px 10px">catalog\controller\api\payment.php</div><div style="background:#eee; border:1px solid #ccc; padding:5px 10px">catalog\controller\api\shipping.php</div><p>&nbsp;</p><p>комментируем строку:</p><pre><code class="language-php">if ((utf8_strlen(trim($this-&gt;request-&gt;post['address_1'])) &lt; 3) || (utf8_strlen(trim($this-&gt;request-&gt;post['address_1'])) &gt; 128)) { //$json['error']['address_1'] = $this-&gt;language-&gt;get('error_address_1'); }</code></pre><p>2. Убираем звездочку валидации в шаблоне. Файл:</p><div style="background:#eee; border:1px solid #ccc; padding:5px 10px">admin/view/template/sale/order_form.tpl</div><p>&nbsp;</p><p>в блоке кода</p><pre><code class="language-html">&lt;div class="form-group required"&gt; &lt;label class="col-sm-2 control-label" for="input-payment-address-1"&gt;&lt;?php echo $entry_address_1; ?&gt;&lt;/label&gt; &lt;div class="col-sm-10"&gt; &lt;input type="text" name="address_1" value="&lt;?php echo $payment_address_1; ?&gt;" id="input-payment-address-1" class="form-control" /&gt; &lt;/div&gt; &lt;/div&gt;</code></pre><p>убираем</p><pre><code>class="required"</code></pre><p>Все.</p><p>&nbsp;</p><p>Также, это условие встречается в файлах:</p><div style="background:#eee; border:1px solid #ccc; padding:5px 10px">admin\controller\marketing\affiliate.php<br /> admin\controller\sale\return.php<br /> admin\controller\user\user.php<br /> catalog\controller\account\address.php<br /> catalog\controller\account\edit.php<br /> catalog\controller\account\register.php<br /> catalog\controller\account\return.php<br /> catalog\controller\affiliate\edit.php<br /> catalog\controller\affiliate\register.php<br /> catalog\controller\checkout\guest.php<br /> catalog\controller\checkout\guest_shipping.php<br /> catalog\controller\checkout\payment_address.php<br /> catalog\controller\checkout\register.php<br /> catalog\controller\checkout\shipping_address.php</div><p>&nbsp;</p><p>Если вдруг что, то можно попробовать убрать код из этих файлов.</p><p>&nbsp;</p><h2 style="text-align:center"><strong>Редактирование покупателя</strong></h2><p>&nbsp;</p><p>Убираем валидацию поля Адрес.</p><p>В файле /admin/controller/customer/customer.php комментируем строки</p><pre><code class="language-php">if ((utf8_strlen($value['address_1']) &lt; 3) || (utf8_strlen($value['address_1']) &gt; 128)) { $this-&gt;error['address'][$key]['address_1'] = $this-&gt;language-&gt;get('error_address_1'); }</code></pre><p>Убираем звездочку валидации в файле admin/view/template/customer/customer_form.tpl. В блоке кода</p><pre><code class="language-html">&lt;div class="form-group required"&gt; &lt;label class="col-sm-2 control-label" for="input-address-1&lt;?php echo $address_row; ?&gt;"&gt;&lt;?php echo $entry_address_1; ?&gt;&lt;/label&gt; &lt;div class="col-sm-10"&gt; &lt;input type="text" name="address[&lt;?php echo $address_row; ?&gt;][address_1]" value="&lt;?php echo $address['address_1']; ?&gt;" placeholder="&lt;?php echo $entry_address_1; ?&gt;" id="input-address-1&lt;?php echo $address_row; ?&gt;" class="form-control" /&gt; &lt;?php if (isset($error_address[$address_row]['address_1'])) { ?&gt; &lt;div class="text-danger"&gt;&lt;?php echo $error_address[$address_row]['address_1']; ?&gt;&lt;/div&gt; &lt;?php } ?&gt; &lt;/div&gt; &lt;/div&gt;</code></pre><p>убираем class required и обновлем модификаторы.</p> Thu, 18 Aug 2016 23:40:48 +0300 https://codemaniac.ru/snip/cms/opencart/ubrat-validaciyu-polei-pri-redaktirovanii-zakaza-v-opencart-2-x-192.html https://codemaniac.ru/snip/cms/opencart/ubrat-validaciyu-polei-pri-redaktirovanii-zakaza-v-opencart-2-x-192.html OpenCart. Сортировка товаров по цене по-умолчанию на странице производителя <p>В файле /catalog/controller/product/manufacturer.php находим (примерно 96 строка):</p><pre><code>$sort = 'p.sort_order';</code></pre><p>и меняем на</p><pre><code>$sort = 'p.price';</code></pre><p>после товары станут показываться по возрастанию цены, при условии, что в блоке</p><pre><code>if (isset($this-&gt;request-&gt;get['order'])) { $order = $this-&gt;request-&gt;get['order']; } else { $order = 'ASC'; } </code></pre><p>стоит</p><pre><code>$order = 'ASC';</code></pre><p>Если надо по убыванию, то ставим тут значение</p><pre><code>$order = 'DESC';</code></pre><p>&nbsp;</p> Wed, 09 Mar 2016 23:08:30 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-sortirovka-tovarov-po-cene-po-umolchaniyu-na-stranice-proizvoditelja-171.html https://codemaniac.ru/snip/cms/opencart/opencart-sortirovka-tovarov-po-cene-po-umolchaniyu-na-stranice-proizvoditelja-171.html OpenCart. Вывод фото товара в письме оповещения о заказе <p>Решается путем модуля <strong>Product pictures in order email</strong>. По ссылке ниже версия от 15.12.15. Работает на версиях: 1.5.3.1, 1.5.4, 1.5.4.1, 1.5.5, 1.5.5.1, 1.5.6.</p> Tue, 01 Mar 2016 14:02:57 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-foto-tovara-v-pisme-opoveschenija-o-zakaze-170.html https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-foto-tovara-v-pisme-opoveschenija-o-zakaze-170.html OpenCart. Расширенное письмо админу (оповещение о заказе) <p>Модуль <strong>Detailed Admin Order Notification Email (VQMod)</strong>, ссылка на архив ниже. Работает на версиях:</p><p>1.5.0, 1.5.0.1, 1.5.0.2, 1.5.0.3, 1.5.0.5, 1.5.1, 1.5.1.1, 1.5.1.2, 1.5.1.3, 1.5.2, 1.5.2.1, 1.5.3, 1.5.3.1, 1.5.4, 1.5.4.1, 1.5.5.1, 1.5.6, 1.5.6.1, 1.5.6.2, 1.5.6.3, 1.5.6.4.</p><p>Последнее обновление модуля 20.10.2015.</p> Tue, 01 Mar 2016 13:56:24 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-rasshirennoe-pismo-adminu-opoveschenie-o-zakaze-169.html https://codemaniac.ru/snip/cms/opencart/opencart-rasshirennoe-pismo-adminu-opoveschenie-o-zakaze-169.html OpenCart. Убрать валидацию e-mail при оформлении заказа (Simple 3.8.3) <p>1. В контроллере /catalog/controller/checkout/simplecheckout_customer.php удаляем строки (примерно 948 строка):</p><pre><code>$email = $this-&gt;simple-&gt;get_value(Simple::SET_CHECKOUT_CUSTOMER, 'email');; if ($this-&gt;customer-&gt;isLogged() || (!$this-&gt;customer-&gt;isLogged() &amp;&amp; !$register_customer &amp;&amp; empty($email) &amp;&amp; ($this-&gt;config-&gt;get('simple_customer_view_email') == Simple::EMAIL_NOT_SHOW || $this-&gt;config-&gt;get('simple_customer_view_email') == Simple::EMAIL_SHOW_AND_NOT_REQUIRED))) { if (isset($this-&gt;data['checkout_customer_fields']['main_email'])) { $this-&gt;data['checkout_customer_fields']['main_email']['error'] = ''; } $this-&gt;simple-&gt;reset_error(Simple::SET_CHECKOUT_CUSTOMER, 'main_email'); } $this-&gt;data['email_confirm_error'] = false; if (!$this-&gt;customer-&gt;isLogged() &amp;&amp; $this-&gt;config-&gt;get('simple_customer_view_email_confirm') &amp;&amp; ($this-&gt;config-&gt;get('simple_customer_view_email') == Simple::EMAIL_SHOW_AND_NOT_REQUIRED || $this-&gt;config-&gt;get('simple_customer_view_email') == Simple::EMAIL_SHOW_AND_REQUIRED)) { $email_confirm = isset($this-&gt;request-&gt;post['email_confirm']) ? trim($this-&gt;request-&gt;post['email_confirm']) : ''; if ($email != $email_confirm) { $this-&gt;error = true; $this-&gt;data['email_confirm_error'] = true; } } if (!$this-&gt;simple-&gt;validate_fields(Simple::SET_CHECKOUT_CUSTOMER)) { $this-&gt;error = true; }</code></pre><p>2. В файле шаблона /template/checkout/simplecheckout_customer.tpl удаляем звездочку (примерно 87 строка):</p><pre><code>&lt;?php if ($field['required']) { ?&gt; &lt;span class="simplecheckout-required" &lt;?php echo ($simple_customer_view_email == Simple::EMAIL_SHOW_AND_NOT_REQUIRED &amp;&amp; ($simple_customer_action_register == Simple::REGISTER_NO || ($simple_customer_action_register == Simple::REGISTER_USER_CHOICE &amp;&amp; !$register))) ? ' style="display:none"' : '' ?&gt;&gt;*&lt;/span&gt; &lt;?php } ?&gt;</code></pre><p>3. В настройках модуля Simple вписываем адрес, который будет присваиваться заказу по-умолчанию, при условии незаполнения данного поля покупателем:</p><p><img alt="" src="https://codemaniac.ru/upload/683-f892ed7cb6909d2b2f9aad2f7b7b5183.jpg" style="margin-bottom:15px; margin-top:15px" /></p> Sat, 27 Feb 2016 21:16:30 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-ubrat-validaciyu-e-mail-pri-oformlenii-zakaza-simple-3-8-3-168.html https://codemaniac.ru/snip/cms/opencart/opencart-ubrat-validaciyu-e-mail-pri-oformlenii-zakaza-simple-3-8-3-168.html OpenCart. Закладки без регистрации/авторизации <p>В файле \catalog\controller\account\wishlist.php удалить строки:</p><pre><code>if (!$this-&gt;customer-&gt;isLogged()) { $this-&gt;session-&gt;data['redirect'] = $this-&gt;url-&gt;link('account/wishlist', '', 'SSL'); $this-&gt;redirect($this-&gt;url-&gt;link('account/login', '', 'SSL')); }</code></pre><p>&nbsp;</p> Sun, 21 Feb 2016 02:33:37 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-zakladki-bez-registrcii/avtorizacii-166.html https://codemaniac.ru/snip/cms/opencart/opencart-zakladki-bez-registrcii/avtorizacii-166.html OpenCart. Вывод заглушки для фотографии у товара <p>В контроллерах:</p><p>catalog/controller/product/search.php<br /> catalog/controller/product/category.php<br /> catalog/controller/product/compare.php<br /> catalog/controller/product/product.php<br /> catalog/controller/module/latest.php<br /> catalog/controller/module/featured.php</p><p>вместо</p><pre><code>$image = false;</code></pre><p>вставить</p><pre><code>$image = $this-&gt;model_tool_image-&gt;resize('no_image.jpg', $this-&gt;config-&gt;get('config_image_product_width'), $this-&gt;config-&gt;get('config_image_product_height'));</code></pre><p>само изображение лежит в папке /image</p> Wed, 17 Feb 2016 03:19:44 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-zaglushki-dlja-fotografii-u-tovara-165.html https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-zaglushki-dlja-fotografii-u-tovara-165.html OpenCart. Вывод атрибутов в модулях и категории <h2 style="text-align:center">На примере модуля Рекомендуемые</h2><p>&nbsp;</p><p>1. В контроллере /catalog/controller/module/featured.php после</p><pre><code>$this-&gt;language-&gt;load('module/featured');</code></pre><p>добавляем</p><pre><code>$this-&gt;language-&gt;load('product/product');</code></pre><p>&nbsp;</p><p>после</p><pre><code>'product_id' =&gt; $product_info['product_id'],</code></pre><p>добавляем</p><pre><code>'attribute_groups' =&gt; $this-&gt;model_catalog_product-&gt;getProductAttributes($product_info['product_id']),</code></pre><p>&nbsp;</p><p><span style="background-color:#E6E6FA">Если вывод атрибутов необходим в категории, то в файле контроллера категории, вставляем после:</span></p><pre><code>'description' =&gt; utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',</code></pre><p><span style="background-color:#E6E6FA">строку</span></p><pre><code>'description' =&gt; utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',</code></pre><p>&nbsp;</p><p>2. В шаблоне /catalog/view/theme/тема/template/module/featured.tpl в нужном месте вставляем</p><pre><code>&lt;div class="attr-product"&gt; &lt;?php if($product['attribute_groups']) { ?&gt; &lt;table&gt; &lt;?php foreach($product['attribute_groups'] as $attribute_group) { ?&gt; &lt;thead&gt; &lt;tr&gt; &lt;td colspan="2"&gt;&lt;?php echo $attribute_group['name']; ?&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;?php foreach($attribute_group['attribute'] as $attribute) { ?&gt; &lt;tr&gt; &lt;td&gt;&lt;?php echo $attribute['name']; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $attribute['text']; ?&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php } ?&gt; &lt;/tbody&gt; &lt;?php } ?&gt; &lt;/table&gt; &lt;?php } ?&gt; &lt;/div&gt;</code></pre><p>&nbsp;</p><p>Если необходимо выводить атрибуты по ID, то в файл шаблона вместо верхнего, вставляем следующий код:</p><pre><code>&lt;?php foreach($product['attribute_groups'] as $attribute_group) { ?&gt; &lt;?php foreach($attribute_group['attribute'] as $attribute) { ?&gt; &lt;?php if(in_array($attribute['attribute_id'], array(1,2))){?&gt; &lt;tr&gt; &lt;td&gt;&lt;?php echo $attribute['name']; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $attribute['text']; ?&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php } ?&gt; &lt;?php } ?&gt; &lt;?php } ?&gt;</code></pre><p>где в строке</p><pre><code>&lt;?php if(in_array($attribute['attribute_id'], array(1,2))){?&gt;</code></pre><p>перечислены через запятую необходимые для показа атрибуты.</p> Wed, 17 Feb 2016 01:27:40 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-atributov-v-moduljah-164.html https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-atributov-v-moduljah-164.html OpenCart. Сделать вкладку второго языка необязательной к заполнению <p>Если на сайте нужно 2 языка, а описание только на одном, то надо сделать поле заполнения названия на втором языке необязательным. Для этого в файле admin/controller/catalog/product.php комментируем или удаляем строки:</p><pre><code class="language-php">foreach ($this-&gt;request-&gt;post['product_description'] as $language_id =&gt; $value) { if ((utf8_strlen($value['name']) &lt; 1) || (utf8_strlen($value['name']) &gt; 255)) { $this-&gt;error['name'][$language_id] = $this-&gt;language-&gt;get('error_name'); } }</code></pre><p>В версии 1.5.5.1.2 это 1567 строка.</p><p>А вот как убрать отображение вкладки описания на фронте сайта при переключении на второй язык, не совсем понятно. Если кто сталкивался, буду признателен за помощь.</p> Thu, 04 Feb 2016 01:34:36 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-sdelat-vkladku-vtorogo-jazyka-neobjazatelnoi-k-zapolneniyu-161.html https://codemaniac.ru/snip/cms/opencart/opencart-sdelat-vkladku-vtorogo-jazyka-neobjazatelnoi-k-zapolneniyu-161.html OpenCart. Увеличить срок жизни корзины <p>Чтобы корзина в OpenCart не очищалась еще определенное время после ухода пользователя с сайта, необходимо:</p><p>в /system/library/session.php заменить:</p><pre><code>session_set_cookie_params(0, '/');</code></pre><p>на</p><pre><code>session_set_cookie_params(60*60*24, '/');</code></pre><p>где 60сек*60мин*24часа.</p><p>Часы ставим по усмотрению.</p><p><strong>Если не работает, то вставляем:</strong></p><pre><code>session_set_cookie_params(86400, '/');</code></pre><p>где 86400 - перемноженные 60*60*24.</p> Wed, 02 Dec 2015 00:04:36 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-uvelichit-srok-zhizni-korziny-158.html https://codemaniac.ru/snip/cms/opencart/opencart-uvelichit-srok-zhizni-korziny-158.html OpenCart. Добавить контакты клиента в письме-оповещении админа <p>В /catalog/model/checkout/order.php после (511 строка примерно):</p><pre><code>$text .= $language-&gt;get('text_new_order_status') . ' ' . $order_status . "\n\n";</code></pre><p>вставить</p><pre><code>$text .= $language-&gt;get('text_new_buyer') . ' ' . $order_info['firstname'] . ' ' . $order_info['lastname'] . "\n"; $text .= $language-&gt;get('text_new_email') . ' ' . $order_info['email'] . "\n"; $text .= $language-&gt;get('text_new_telephone') . ' ' . $order_info['telephone'] . "\n"; $text .= $language-&gt;get('shipping_city') . ' ' . $order_info['shipping_city'] . "\n"; $text .= $language-&gt;get('text_new_payment_address') . ' ' . $order_info['payment_address_1'] . ' ' . $order_info['payment_address_2'] ."\n\n"; $text .= $language-&gt;get('text_new_payment_method') . ' ' . $order_info['payment_method'] . "\n\n";</code></pre><p>Проверено на 1.5.5.1.2</p><p>Добавится имя, почта, телефон, город, адрес, метод оплаты.</p> Fri, 27 Nov 2015 19:39:08 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-dobavit-kontakty-klienta-v-pisme-opoveschenii-admina-157.html https://codemaniac.ru/snip/cms/opencart/opencart-dobavit-kontakty-klienta-v-pisme-opoveschenii-admina-157.html OpenCart. Вывод данных только в одной категории через шаблон <p>1. В /catalog/controller/product/category.php перед:</p><pre><code>if (file_exists(DIR_TEMPLATE . $this-&gt;config-&gt;get('config_template')</code></pre><p>вставляем</p><pre><code>$this-&gt;data['category_id'] = $category_id;</code></pre><p>2. В /catalog/view/theme/default/template/product/category.tpl в нужном месте вставляем:</p><pre><code>&lt;?php if ($category_id == 1){ ?&gt; // блок А &lt;?php } else { ?&gt; // блок Б &lt;?php } ?&gt;</code></pre><p>где 1 - id категории.</p><p>В итоге получаем во всех категориях, кроме с id=1 вывод блока А.</p><p>Проверено на OcStore 1.5.5.1.2</p> Thu, 26 Nov 2015 21:08:46 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-dannyh-tolko-v-odnoi-kategorii-cherez-shablon-156.html https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-dannyh-tolko-v-odnoi-kategorii-cherez-shablon-156.html OpenCart. Ошибка deprecated: mysql_connect(): <p>Ошибка возникает из-за версии php 5.5 и выше. Решение:</p><p>1. Скачиваем приложенный драйвер mysql.</p><p>2. Заливаем файл в /system/database/.</p><p>3. В когфиг файлах комментируем или удаляем строки</p><pre><code>define('DB_DRIVER', 'mysql');</code></pre><p>и вместо них прописываем</p><pre><code>define('DB_DRIVER', 'mysqliz');</code></pre><p>Все. Должно работать. <a href="http://www.opencart.com/index.php?route=extension/extension/info&amp;extension_id=24413&amp;filter_search=mysql" target="_blank">Ссылка</a> на источник драйвера. Также есть <a href="http://www.opencart.com/index.php?route=extension/extension/info&amp;extension_id=23099&amp;filter_search=mysql" target="_blank">платное решение</a> (не проверял).</p><p>В архиве обновленный драйвер от 14.01.16</p> Thu, 26 Nov 2015 19:30:33 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-oshibka-deprecated-mysql-connect-155.html https://codemaniac.ru/snip/cms/opencart/opencart-oshibka-deprecated-mysql-connect-155.html OpenCart. Вычитать со склада по-умолчанию <p>В файле /admin/controller/catalog/product.php</p><pre><code>$this-&gt;data['subtract'] = 1;</code></pre><p>меняем значение на 0.</p><p>Другие значения, как, например, <strong>Необходима доставка</strong>, также редактируются в данном файле:</p><pre><code>$this-&gt;data['shipping'] = 1;</code></pre><p>Чтобы указать минимальное количество по-умолчанию, то правится строка:</p><pre><code>$this-&gt;data['quantity'] = 1;</code></pre><p>где 1 - значение минимального количества.</p> Sun, 22 Nov 2015 19:06:38 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vychitat-so-sklada-po-umolchaniyu-153.html https://codemaniac.ru/snip/cms/opencart/opencart-vychitat-so-sklada-po-umolchaniyu-153.html OpenCart. Вывод необходимого количества товаров на странице категории <p>В файле catalog/controller/product/category.php ищем строки:</p><pre><code>$this-&gt;data['limits'][] = array( 'text' =&gt; 12, 'value' =&gt; 12, 'href' =&gt; $this-&gt;url-&gt;link('product/category', 'path=' . $this-&gt;request-&gt;get['path'] . $url . '&amp;limit=12') );</code></pre><p>правим их по усмотрению или дублируем для добавления своих параметров.</p><p>Проверялось на OcStore 1.5.3.1<br /> &nbsp;</p> Sat, 14 Nov 2015 15:33:35 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-neobhodimogo-kolichestva-tovarov-na-stranice-152.html https://codemaniac.ru/snip/cms/opencart/opencart-vyvod-neobhodimogo-kolichestva-tovarov-na-stranice-152.html OpenCart. Краткое описание в модулях на примере рекомендуемых товаров <p>1. В файле шаблона в нужном месте вставляем код вывода:</p><pre><code>&lt;div class="description"&gt;&lt;?php echo $product['description']; ?&gt;&lt;/div&gt;</code></pre><p>2. В файле контроллера после:</p><pre><code>'product_id' =&gt; $product_info['product_id'],</code></pre><p>вставляем</p><pre><code>'description' =&gt; mb_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '',</code></pre><p>&nbsp;</p> Thu, 24 Sep 2015 22:02:24 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-kratkoe-opisanie-v-moduljah-na-primere-rekomenduemyh-tovarov-147.html https://codemaniac.ru/snip/cms/opencart/opencart-kratkoe-opisanie-v-moduljah-na-primere-rekomenduemyh-tovarov-147.html OpenCart. Хлебные крошки, убираем ссылку саму на себя <p>В файлах шаблона</p><pre><code class="language-php">&lt;?php foreach ($breadcrumbs as $breadcrumb) { ?&gt; &lt;?php echo $breadcrumb['separator']; ?&gt;&lt;a href="&lt;?php echo $breadcrumb['href']; ?&gt;"&gt;&lt;?php echo $breadcrumb['text']; ?&gt;&lt;/a&gt; &lt;?php } ?&gt;</code></pre><p>меняем на:</p><pre><code class="language-php">&lt;?php foreach ($breadcrumbs as $i=&gt; $breadcrumb) { ?&gt; &lt;?php echo $breadcrumb['separator']; ?&gt;&lt;?php if($i+1&lt;count($breadcrumbs)) { ?&gt;&lt;a href="&lt;?php echo $breadcrumb['href']; ?&gt;"&gt;&lt;?php echo $breadcrumb['text']; ?&gt;&lt;/a&gt; &lt;?php } else { ?&gt;&lt;?php echo $breadcrumb['text']; ?&gt;&lt;?php } ?&gt; &lt;?php } ?&gt;</code></pre><p>&nbsp;</p> Wed, 02 Sep 2015 19:35:04 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-hlebnye-kroshki-ubiraem-ssylku-samu-na-sebja-144.html https://codemaniac.ru/snip/cms/opencart/opencart-hlebnye-kroshki-ubiraem-ssylku-samu-na-sebja-144.html OpenCart. Значение опции по-умолчанию <p>Для версии ocstore 1.5.5.1.2. Ниже пример для поля select.</p><p>В файле&nbsp;catalog/view/theme/default/template/product/product.tpl строки:</p><pre><code class="language-php">&lt;option value=""&gt;&lt;?php echo $text_select; ?&gt;&lt;/option&gt; &lt;?php foreach ($option['option_value'] as $option_value) { ?&gt; &lt;option value="&lt;?php echo $option_value['product_option_value_id']; ?&gt;" price_prefix="&lt;?php echo $option_value['price_prefix']; ?&gt;" price="&lt;?php echo ceil(preg_replace("/\D/", "", $option_value['price'])); ?&gt;"&gt;&lt;?php echo $option_value['name']; ?&gt; &lt;?php if ($option_value['price']) { ?&gt;</code></pre><p>меняем на</p><pre><code class="language-php">&lt;?php $k = 1; ?&gt; &lt;?php foreach ($option['option_value'] as $option_value) { ?&gt; &lt;?php if ($k++ == 1) { ?&gt; &lt;option selected="selected" value="&lt;?php echo $option_value['product_option_value_id']; ?&gt;" price_prefix="&lt;?php echo $option_value['price_prefix']; ?&gt;" price="&lt;?php echo ceil(preg_replace("/\D/", "", $option_value['price'])); ?&gt;"&gt;&lt;?php echo $option_value['name']; ?&gt; &lt;?php } else { ?&gt; &lt;option value="&lt;?php echo $option_value['product_option_value_id']; ?&gt;" price_prefix="&lt;?php echo $option_value['price_prefix']; ?&gt;" price="&lt;?php echo ceil(preg_replace("/\D/", "", $option_value['price'])); ?&gt;"&gt;&lt;?php echo $option_value['name']; ?&gt; &lt;?php } ?&gt;</code></pre><p>&nbsp;</p> Fri, 14 Aug 2015 18:16:08 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-vybor-opcii-po-uiolchaniyu-137.html https://codemaniac.ru/snip/cms/opencart/opencart-vybor-opcii-po-uiolchaniyu-137.html OpenCart. Добавить новое поле на страницу категории <p>Например, необходимо добавить поле, которое будет выводить произвольный заголовок на странице категории, взамен штатному. За основу возмем название переменной&nbsp;<strong>heading_user_title</strong>.</p><p>1. Добавляем запрос в базу данных для создания нового поля:</p><pre><code class="language-sql">ALTER TABLE `oc_category_description` ADD `heading_user_title` varchar(255) NOT NULL;</code></pre><p>2. В шаблоне вывода категории&nbsp;/catalog/view/theme/тема/template/product/category.tpl заменяем строку:</p><pre><code class="language-php">&lt;h1&gt;&lt;?php echo $heading_user_title; ?&gt;&lt;/h1&gt;</code></pre><p>на</p><pre><code class="language-php">&lt;?php if ($heading_user_title) { ?&gt; &lt;h1&gt;&lt;?php echo $heading_user_title; ?&gt;&lt;/h1&gt; &lt;?php } ?&gt;</code></pre><p>3. В языковом файле&nbsp;/admin/language/russian/catalog/category.php добавляем поле:</p><pre><code class="language-php">$_['entry_heading_user_title'] = 'Произвольный заголовок';</code></pre><p>4. В шаблоне админки редактирования категории&nbsp;/admin/view/template/catalog/category_form.tpl после:</p><pre><code class="language-php">&lt;tr&gt; &lt;td&gt;&lt;?php echo $entry_description; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;textarea name="category_description[&lt;?php echo $language['language_id']; ?&gt;][description]" id="description&lt;?php echo $language['language_id']; ?&gt;"&gt;&lt;?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['description'] : ''; ?&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt;</code></pre><p>добавляем поле</p><pre><code class="language-php">&lt;tr&gt; &lt;td&gt;&lt;?php echo $entry_heading_user_title; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="category_description[&lt;?php echo $language['language_id']; ?&gt;][heading_user_title]" maxlength="255" size="100" value="&lt;?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['heading_user_title'] : ''; ?&gt;" /&gt;&lt;/td&gt; &lt;/tr&gt;</code></pre><p>5. В&nbsp;/admin/model/catalog/category.php в строку:</p><pre><code class="language-php">foreach ($data['category_description'] as $language_id =&gt; $value) { $this-&gt;db-&gt;query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this-&gt;db-&gt;escape($value['name']) . "', meta_keyword = '" . $this-&gt;db-&gt;escape($value['meta_keyword']) . "', meta_description = '" . $this-&gt;db-&gt;escape($value['meta_description']) . "', description = '" . $this-&gt;db-&gt;escape($value['description']) . "', seo_title = '" . $this-&gt;db-&gt;escape($value['seo_title']) . "', seo_h1 = '" . $this-&gt;db-&gt;escape($value['seo_h1']) . "'"); }</code></pre><p>добавляем</p><pre><code class="language-php">heading_user_title = '" . $this-&gt;db-&gt;escape($value['heading_user_title']) . "',</code></pre><p>код полностью будет выглядеть так:</p><pre><code class="language-php">foreach ($data['category_description'] as $language_id =&gt; $value) { $this-&gt;db-&gt;query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this-&gt;db-&gt;escape($value['name']) . "', meta_keyword = '" . $this-&gt;db-&gt;escape($value['meta_keyword']) . "', meta_description = '" . $this-&gt;db-&gt;escape($value['meta_description']) . "', description = '" . $this-&gt;db-&gt;escape($value['description']) . "', heading_user_title = '" . $this-&gt;db-&gt;escape($value['heading_user_title']) . "', seo_title = '" . $this-&gt;db-&gt;escape($value['seo_title']) . "', seo_h1 = '" . $this-&gt;db-&gt;escape($value['seo_h1']) . "'"); }</code></pre><p>Аналогичные изменения делаем в строке ниже, примерно 66 строка.</p><p>Далее в функции:</p><pre><code class="language-php">foreach ($query-&gt;rows as $result) { $category_description_data[$result['language_id']] = array( 'seo_title' =&gt; $result['seo_title'], 'seo_h1' =&gt; $result['seo_h1'], 'name' =&gt; $result['name'], 'meta_keyword' =&gt; $result['meta_keyword'], 'meta_description' =&gt; $result['meta_description'], 'description' =&gt; $result['description'], ); }</code></pre><p>добавляем строку:</p><pre><code class="language-php">'heading_user_title' =&gt; $result['heading_user_title']</code></pre><p>и получаем такой код:</p><pre><code class="language-php">foreach ($query-&gt;rows as $result) { $category_description_data[$result['language_id']] = array( 'seo_title' =&gt; $result['seo_title'], 'seo_h1' =&gt; $result['seo_h1'], 'name' =&gt; $result['name'], 'meta_keyword' =&gt; $result['meta_keyword'], 'meta_description' =&gt; $result['meta_description'], 'description' =&gt; $result['description'], 'heading_user_title' =&gt; $result['heading_user_title'] ); }</code></pre><p>6. В файле&nbsp;/admin/controller/catalog/category.php после:</p><pre><code class="language-php">$this-&gt;data['entry_description'] = $this-&gt;language-&gt;get('entry_description');</code></pre><p>добавляем</p><pre><code class="language-php">$this-&gt;data['entry_heading_user_title'] = $this-&gt;language-&gt;get('entry_heading_user_title');</code></pre><p>7. В файле&nbsp;/catalog/controller/product/category.php после:</p><pre><code class="language-php">$this-&gt;data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');</code></pre><p>добавляем</p><pre><code class="language-php">$this-&gt;data['heading_user_title'] = html_entity_decode($category_info['heading_user_title'], ENT_QUOTES, 'UTF-8');</code></pre><p>и после:</p><pre><code class="language-php">'description' =&gt; utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',</code></pre><p>добавляем</p><pre><code class="language-php">'heading_user_title' =&gt; utf8_substr(strip_tags(html_entity_decode($result['heading_user_title'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',</code></pre><p>&nbsp;</p> Thu, 13 Aug 2015 10:23:19 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-dobavit-novoe-pole-na-stranicu-kategorii-136.html https://codemaniac.ru/snip/cms/opencart/opencart-dobavit-novoe-pole-na-stranicu-kategorii-136.html OpenCart. Вывод описания категории только на первой странице <p>В&nbsp;catalog/controller/product/category.php находим:</p><pre><code class="language-php">$this-&gt;data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');</code></pre><p>и меняем на:</p><pre><code class="language-php">if ($page == 1) { $this-&gt;data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); } else { $this-&gt;data['description'] = ""; }</code></pre><p>&nbsp;</p> Thu, 13 Aug 2015 09:00:55 +0300 https://codemaniac.ru/snip/cms/opencart/vyvod-opisanija-kategorii-tolko-na-pervoi-stranice-135.html https://codemaniac.ru/snip/cms/opencart/vyvod-opisanija-kategorii-tolko-na-pervoi-stranice-135.html OpenCart. Статусы Товара PRO, автостатусы, стикеры - вывод в модули <p>Рассмотрим на примере вывода в модуль - рекомендуемые.&nbsp;</p><p>1. В файле шаблона после</p><pre><code class="language-html">&lt;div class="image"&gt;</code></pre><p>вставляем строку</p><pre><code class="language-php">&lt;?php echo $product['stickers']; ?&gt;</code></pre><p>2. В контроллере после</p><pre><code class="language-php">$this-&gt;data['products'][] = array(</code></pre><p>вставляем строки</p><pre><code class="language-php">'statuses' =&gt; $product_info['statuses']['category'], 'stickers' =&gt; $product_info['statuses']['category_stickers'],</code></pre><p>&nbsp;</p><p>В остальные модули по аналогии, только смотрим переменную. Если в контроллер файле вывод идет через&nbsp;</p><pre><code class="language-php">$result</code></pre><p>то и строки вставляем в таком виде</p><pre><code class="language-php">'statuses' =&gt; $result['statuses']['category'], 'stickers' =&gt; $result['statuses']['category_stickers'],</code></pre><p>собственно как и в файле vqmod.</p> Wed, 05 Aug 2015 14:36:12 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-statusy-tovara-pro-avtostatusy-stikery-vyvod-v-moduli-132.html https://codemaniac.ru/snip/cms/opencart/opencart-statusy-tovara-pro-avtostatusy-stikery-vyvod-v-moduli-132.html OpenCart. "Нет в наличии" красным цветом <p>В файле&nbsp;<strong>catalog\view\theme\default\template\product\product.tpl</strong> меняем строку:</p><pre><code class="language-php">&lt;span&gt;&lt;?php echo $text_stock; ?&gt;&lt;/span&gt; &lt;?php echo $stock; ?&gt;&lt;/div&gt;</code></pre><p>на</p><pre><code class="language-php">&lt;span&gt; &lt;?php echo $text_stock; ?&gt;&lt;/span&gt; &lt;?php if (($stock == $this-&gt;language-&gt;get('text_instock')) || ($stock &gt;= 1) ) { ?&gt; &lt;?php echo $stock; ?&gt; &lt;?php } else { ?&gt; &lt;span style="color: #FF0000;"&gt;&lt;?php echo $stock; ?&gt;&lt;/span&gt; &lt;?php } ?&gt;&lt;/div&gt;</code></pre><p>&nbsp;</p> Mon, 06 Jul 2015 22:13:37 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-net-v-nalichii-krasnym-cvetom-122.html https://codemaniac.ru/snip/cms/opencart/opencart-net-v-nalichii-krasnym-cvetom-122.html OpenCart. Ограничить количество символов в названии товара (категория) <p>В файле&nbsp;<strong>catalog/controller/product/category.php заменяем стоку:</strong></p><pre><code class="language-php">'name' =&gt; $result['name'],</code></pre><p>на</p><pre><code class="language-php">'name' =&gt; utf8_substr(strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 0, 60) . '..',</code></pre><p>где 60 это кол-во отображаемых символов.</p> Tue, 19 May 2015 06:46:24 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-ogranichit-kolichestvo-simvolov-v-nazvanii-tovara-kategorija-107.html https://codemaniac.ru/snip/cms/opencart/opencart-ogranichit-kolichestvo-simvolov-v-nazvanii-tovara-kategorija-107.html OpenCart. Кол-во отображаемых товаров в категории <p>В файле&nbsp;<strong>catalog/controller/product/category.php</strong> в строке:</p><pre><code>$limits = array_unique(array($this-&gt;config-&gt;get('config_catalog_limit'), 25, 50, 75, 100));</code></pre><p>проставляем свое кол-во.</p> Sun, 03 May 2015 01:46:34 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-kol-vo-otobrazhaemyh-tovarov-v-kategorii-101.html https://codemaniac.ru/snip/cms/opencart/opencart-kol-vo-otobrazhaemyh-tovarov-v-kategorii-101.html Brainy Filter - не отображается постраничная навигация <p>В файле&nbsp;<strong>/vqmod/xml/brainyfilter.xml </strong>после:</p><pre><code>&lt;file name="catalog/controller/product/category.php"&gt;</code></pre><p>добавляем:</p><pre><code>&lt;operation&gt; &lt;search position="replace"&gt;&lt;![CDATA[$product_total = $this-&gt;model_catalog_product-&gt;getFoundProducts();]]&gt;&lt;/search&gt; &lt;add&gt;&lt;![CDATA[]]&gt; &lt;/add&gt; &lt;/operation&gt; &lt;operation&gt; &lt;search position="before"&gt;&lt;![CDATA[$results = $this-&gt;model_catalog_product-&gt;getProducts($data);]]&gt;&lt;/search&gt; &lt;add&gt;&lt;![CDATA[$product_total = $this-&gt;model_catalog_product-&gt;getTotalProducts($data);]]&gt; &lt;/add&gt; &lt;/operation&gt;</code></pre><p>&nbsp;</p> Sun, 03 May 2015 01:36:55 +0300 https://codemaniac.ru/snip/cms/opencart/brainy-filter-ne-otobrazhaetsja-postranichnaja-navigacija-100.html https://codemaniac.ru/snip/cms/opencart/brainy-filter-ne-otobrazhaetsja-postranichnaja-navigacija-100.html OpenCart. Опции не обязательно по-умолчанию <p>В файле&nbsp;/<strong>admin/view/template/catalog/product_form.tpl</strong> ищем строки (примерно 952 строка):</p><pre><code>html += ' &lt;option value="1"&gt;&lt;?php echo $text_yes; ?&gt;&lt;/option&gt;'; html += ' &lt;option value="0"&gt;&lt;?php echo $text_no; ?&gt;&lt;/option&gt;';</code></pre><p>и меняем их местами.</p> Sun, 03 May 2015 01:26:18 +0300 https://codemaniac.ru/snip/cms/opencart/opencart-opcii-ne-objazatelno-po-umolchaniyu-99.html https://codemaniac.ru/snip/cms/opencart/opencart-opcii-ne-objazatelno-po-umolchaniyu-99.html Убрать поле модель в OpenCart <p><strong>1. Делаем поле необязательным для заполнения</strong></p><p>в в файле&nbsp;/admin/controller/catalog/product.php комментируем или удаляем (в OcStore&nbsp;1.5.5.1.2&nbsp;примерно 1573 строка):</p><pre><code class="language-php">if ((utf8_strlen($this-&gt;request-&gt;post['model']) &lt; 1) || (utf8_strlen($this-&gt;request-&gt;post['model']) &gt; 64)) { $this-&gt;error['model'] = $this-&gt;language-&gt;get('error_model'); }</code></pre><p><strong>2. Удалаяем поле из файла шаблона (фронт)</strong></p><p>в файле&nbsp;/catalog/view/theme/default/template/product/product.tpl удаляем или комментируем строку&nbsp;(в OcStore&nbsp;1.5.5.1.2&nbsp;примерно 101 строка):</p><pre><code class="language-php">&lt;span&gt;&lt;?php echo $text_model; ?&gt;&lt;/span&gt; &lt;?php echo $model; ?&gt;&lt;br /&gt;</code></pre><p>&nbsp;</p><p style="text-align: center;"><strong>Для opencart 2.x</strong></p><p>в файле /admin/controller/catalog/product.php удаляем или комментируем строку (примерно 1425 строка):</p><pre><code>if ((utf8_strlen($this-&gt;request-&gt;post['model']) &lt; 1) || (utf8_strlen($this-&gt;request-&gt;post['model']) &gt; 64)) { $this-&gt;error['model'] = $this-&gt;language-&gt;get('error_model'); }</code></pre><p>&nbsp;</p> Sun, 05 Apr 2015 00:45:02 +0300 https://codemaniac.ru/snip/cms/opencart/ubrat-pole-model-opencart-97.html https://codemaniac.ru/snip/cms/opencart/ubrat-pole-model-opencart-97.html Не работают теги (метки) в OpenCart 1.5.5.1 (РЕШЕНО) <p><span style="color:rgb(40, 40, 40)">В файле: /catalog/controller/product/search.php меняем:</span></p><pre><code>['filter_tag']</code></pre><p>на</p><pre><code>['tag']</code></pre><p>&nbsp;</p> Sun, 15 Mar 2015 05:37:42 +0300 https://codemaniac.ru/snip/cms/opencart/ne-rabotayut-tegi-v-opencart-1-5-5-1-resheno-95.html https://codemaniac.ru/snip/cms/opencart/ne-rabotayut-tegi-v-opencart-1-5-5-1-resheno-95.html Удалить все товары в OpenCart через запрос в MySql <pre><code>TRUNCATE TABLE oc_product; TRUNCATE TABLE oc_product_attribute; TRUNCATE TABLE oc_product_description; TRUNCATE TABLE oc_product_discount; TRUNCATE TABLE oc_product_image; TRUNCATE TABLE oc_product_option; TRUNCATE TABLE oc_product_option_value; TRUNCATE TABLE oc_product_related; TRUNCATE TABLE oc_product_related; TRUNCATE TABLE oc_product_reward; TRUNCATE TABLE oc_product_special; TRUNCATE TABLE oc_product_tag; TRUNCATE TABLE oc_product_to_category; TRUNCATE TABLE oc_product_to_download; TRUNCATE TABLE oc_product_to_layout; TRUNCATE TABLE oc_product_to_store; TRUNCATE TABLE oc_review; DELETE FROM oc_url_alias WHERE query LIKE 'product_id=%';</code></pre><p>Если префикс таблиц другой, то меняем на свой.</p> Wed, 18 Feb 2015 13:25:50 +0300 https://codemaniac.ru/snip/cms/opencart/udalit-vse-tovary-v-opencart-cherez-zapros-v-mysql-84.html https://codemaniac.ru/snip/cms/opencart/udalit-vse-tovary-v-opencart-cherez-zapros-v-mysql-84.html Убрать из ссылки common/home <p>В <span style="background-color:rgb(255, 255, 255); color:rgb(40, 40, 40)"><strong>/system/library/url.php</strong> ищем:</span></p><pre><code class="language-php">if ($args) { $url .= str_replace('&amp;', '&amp;amp;', '&amp;' . ltrim($args, '&amp;')); }</code></pre><p>заменяем на:</p><pre><code class="language-php">if ($args) { $url .= str_replace('&amp;', '&amp;amp;', '&amp;' . ltrim($args, '&amp;')); } else { //Убираем из урла common/home if($route == 'common/home') { if($connection == 'NONSSL') { return HTTP_SERVER; } else { return HTTPS_SERVER; } } }</code></pre><p>Протестировано на Opencart .5.4.1.2</p> Fri, 23 Jan 2015 18:29:36 +0300 https://codemaniac.ru/snip/cms/opencart/ubrat-iz-ssylki-common/home-76.html https://codemaniac.ru/snip/cms/opencart/ubrat-iz-ssylki-common/home-76.html Присвоение уникальных css пунктам меню в OpenCart <p>В файле header.php, в строке:</p><pre><code>&lt;li&gt;&lt;a href="&lt;?php echo $category['href']; ?&gt;"&gt;&lt;?php echo $category['name']; ?&gt;&lt;/a&gt;</code></pre><p>добавляем функцию присвоения уникальных css:</p><pre><code>class="menu-li&lt;?=$i?&gt;"</code></pre><p>и в итоге получаем:</p><pre><code>&lt;li class="menu-li&lt;?=$i?&gt;"&gt;&lt;a href="&lt;?php echo $category['href']; ?&gt;"&gt;&lt;?php echo $category['name']; ?&gt;&lt;/a&gt;</code></pre><p>&nbsp;</p> Tue, 09 Dec 2014 18:43:20 +0300 https://codemaniac.ru/snip/cms/opencart/prisvoenie-unikalnyh-css-punktam-menyu-v-opencart-62.html https://codemaniac.ru/snip/cms/opencart/prisvoenie-unikalnyh-css-punktam-menyu-v-opencart-62.html Пустой файл при экспорте товаров в xls ocStore/Opencart <p>В случае экспорта пустого файла или ошибки в логах вида:</p><pre><code class="language-php">PHP Notice: Error: The SELECT would examine more than MAX_JOIN_SIZE rows;</code></pre><p>В файле <strong>/system/database/mysql.php</strong> между</p><pre><code class="language-php">mysql_query("SET NAMES 'utf8'", $this-&gt;link);</code></pre><p>и</p><pre><code class="language-php">mysql_query("SET CHARACTER SET utf8", $this-&gt;link);</code></pre><p>вставляем строку</p><pre><code class="language-php">mysql_query("SET SQL_BIG_SELECTS=1", $this-&gt;link);</code></pre><p>&nbsp;</p> Sat, 30 Aug 2014 19:04:39 +0400 https://codemaniac.ru/snip/cms/opencart/pustoi-fail-pri-eksporte-tovarov-v-xls-ocstore/opencart-30.html https://codemaniac.ru/snip/cms/opencart/pustoi-fail-pri-eksporte-tovarov-v-xls-ocstore/opencart-30.html Открытие и сохранение CSV в LibreOffice <p style="text-align:center"><img alt="" height="588" src="http://codemaniac.ru/upload/241-fcb51c196ef361d5c25cd07b807e0714.jpg" width="565" /></p><p>&nbsp;</p><p style="text-align:center"><img alt="" height="269" src="http://codemaniac.ru/upload/595-f5ea7eaff77c503e25d801fb62618c8f.jpg" width="557" /></p><p>&nbsp;</p> Mon, 25 Aug 2014 23:19:41 +0400 https://codemaniac.ru/snip/cms/opencart/otkrytie-i-sohranenie-csv-v-libreoffice-25.html https://codemaniac.ru/snip/cms/opencart/otkrytie-i-sohranenie-csv-v-libreoffice-25.html Отключить поднятие страницы наверх при нажатии "В корзину" <p>Для категорий: <strong>catalog/view/javascript/common.js:</strong></p><pre><code class="language-php">function addToCart(product_id, quantity) { .... .... $('html, body').animate({ scrollTop: 0 }, 'slow'); //&lt;-вот это закомментировать .... .... }</code></pre><p>Для страницы продукта <strong>catalog/view/theme/ваша_тема/template/product/product.tpl:</strong></p><pre><code class="language-php">$('#button-cart').bind('click', function() { .... .... $('html, body').animate({ scrollTop: 0 }, 'slow'); //&lt;-закомментировать .... .... }</code></pre> Mon, 25 Aug 2014 23:15:30 +0400 https://codemaniac.ru/snip/cms/opencart/otklyuchit-podnjatie-stranicy-naverh-pri-nazhatii-v-korzinu-23.html https://codemaniac.ru/snip/cms/opencart/otklyuchit-podnjatie-stranicy-naverh-pri-nazhatii-v-korzinu-23.html Изменить начальный номер заказа Opencart <pre><code>ALTER TABLE `oc_order` AUTO_INCREMENT=7180</code></pre><p>&nbsp;</p> Mon, 25 Aug 2014 23:09:50 +0400 https://codemaniac.ru/snip/cms/opencart/izmenit-nachalnyi-nomer-zakaza-opencart-21.html https://codemaniac.ru/snip/cms/opencart/izmenit-nachalnyi-nomer-zakaza-opencart-21.html Вывод ошибок <pre><code>php_value display_errors 1 php_value error_reporting 204</code></pre><p>&nbsp;</p> Mon, 25 Aug 2014 23:05:52 +0400 https://codemaniac.ru/snip/cms/opencart/vyvod-oshibok-19.html https://codemaniac.ru/snip/cms/opencart/vyvod-oshibok-19.html Убрать запятую из цены Opencart <p>В файле catalog/language/russian/russian.php</p><p>находим строку</p><pre><code class="language-php">$_['thousand_point'] = ',';</code></pre><p>заменяем ее на</p><pre><code class="language-php">$_['thousand_point'] = ' ';</code></pre><p>&nbsp;</p> Mon, 25 Aug 2014 14:31:29 +0400 https://codemaniac.ru/snip/cms/opencart/ubrat-zapjatuyu-iz-ceny-opencart-1.html https://codemaniac.ru/snip/cms/opencart/ubrat-zapjatuyu-iz-ceny-opencart-1.html