COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!
-
Публикации
84 -
Зарегистрирован
-
Посещение
-
Days Won
2
Изменения репутации
-
Pelmen получил репутацию от Влад в Благодарность Pikitos
Очень хорошая поддержка шаблона. Сотрудничаем давно
-
-
Pelmen изменил репутацию klaus в Модуль Export/Import Tools для 2.х после импорта делает поле "Главная категория" пустой
Там в разных местах код вставляется, поэтому я выкладываю файл. И я делаю пошагово (пока только стикеры.
Я делаю стикеры по аналогии с категориями. Категории в полученном при экспорте файле перечисляются через запятую в одной ячейке таблицы - вот я так-же пытаюсь вывести стикеры. Я понимаю что этого не достаточно, так как в этом случае нет никокой информации о позициях стикеров. Но я ещё раз уточню, что я не ищу готового решения "на блюдечке с голубой каёмочкой", и делаю все поэтапно (чтобы ошибки не накапливались).
export_import.php
Версия export/import tool 3.10
Здесь уже есть все метатеги, главные категории, description_mini и description_bottom
Там где я вставлял код для стикеров я его прокоментировал //stiker
-
Pelmen изменил репутацию satyr в Розыгрыш ключа OPENCART.PRO
Кнопка "Обновить кэш модификатора" в шапке, рядом с остальными кэшами.
-
Pelmen изменил репутацию Adems в Микроразметка "рейтинг товаров"
Рекомендую перед изменением файлов cделать Бекап (хотя-бы тех которые изменяете).
Микроразметка данных:
Разметка "Хлебных крошек"
Ищем файлы:
catalog\view\theme\ваша тема\template\product\product.tpl
catalog\view\theme\ваша тема\template\product\category.tpl
catalog\view\theme\ваша тема\template\product\special.tpl
catalog\view\theme\ваша тема\template\product\manufacturer_list.tpl
catalog\view\theme\ваша тема\template\product\manufacturer_info.tpl
catalog\view\theme\ваша тема\template\blog\latest.tpl
catalog\view\theme\ваша тема\template\product\article.tpl
catalog\view\theme\ваша тема\template\ information\sitemap.tpl
catalog\view\theme\ваша тема\template\ information\information.tpl
catalog\view\theme\ваша тема\template\ information\contact.tpl
Далее в этих файлах ищем 3 я строка:
<ul class="breadcrumb">
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
<?php } ?>
</ul>
Меняем на:
<ul itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb">
<?php $i = 1; foreach ($breadcrumbs as $key => $breadcrumb) { ?>
<?php if($i == count($breadcrumbs)){ ?>
<li><?php echo $breadcrumb['text']; ?></li>
<?php }else{ ?>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="<?php echo $breadcrumb['href']; ?>"><span itemprop="name"><?php echo $breadcrumb['text']; ?></span></a><meta itemprop="position" content="<?php echo $key+1; ?>" /></li>
<?php } ?>
<?php $i++; } ?>
</ul>
Данный код одновременно меняет стандартный вывод крошек делая последнею крошку не активной и вносит саму разметку.
Обязательно! Далее нам нужен файл /catalog/language/russian/russian.php
Меняем содержимое $_['text_home'] = '<i class="fa fa-home"></i> ' на '<i class="fa fa-home"></i><span class="displayn"> Главная</span>';
Если вы желаете скрыть надпись главная в стили css дописываем .displayn {display:none;}
"Главная" или нет кому как надо.
Проверяем здесь:
https://developers.google.com/structured-data/testing-tool/
https://webmaster.yandex.ua/microtest.xml
Разметка товара
Открываем файл: catalog\view\theme\ваша тема\template\product\product.tpl
Ищем: <div class="container">
Обозначаем, что в этом блоке будет находится разметка товара: <div class="container" itemscope itemtype="http://schema.org/Product">
Размечаем адрес страницы через ссылку хлебных крошек.
<link itemprop="url" href="<?php echo $breadcrumb['href']; ?>" />
Размечаем картинку
Ищем блок изображений в шаблоне:
<ul class="thumbnails">
<?php if ($thumb) { ?>
<li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
Обозначаем основное изображение с помощью itemprop="image":
<ul class="thumbnails">
<?php if ($thumb) { ?>
<li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img itemprop="image" src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
Ищем описание и размечаем как itemprop="description":
Само описание будет тут: <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div>
Размечаем:
<div itemprop="description" class="tab-pane active" id="tab-description"><?php echo $description; ?></div>
Далее нам нужно указать название товара.
Ищем:
<h1><?php echo $heading_title; ?></h1>
Заменяем на:
<h1 itemprop="name"><?php echo $heading_title; ?></h1>
Следующая цель - обозначить цену itemprop="price":
Для этого находим:
<li>
<h2 itemprop="price"><div itemprop="priceCurrency" content="RUB"><?php echo $price; ?></div></h2>
</li>
Меняем на:
<li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<h2 itemprop="price"><div itemprop="priceCurrency" content="RUB"><?php echo $price; ?></div></h2>
</li>
Обратите внимание на: content="RUB" Для гривны это: content="UAH"
Есть маленький нюанс в связи с выводом цены и валюты в Opencart, поскольку цена выводится в виде: 4360грн. (нет возможности выделить тегом отдельно сами цифры исключив грн ) то валидатор гугл делает предупреждение о неверном формате, подчёркиваю что предупреждение, но индексирует и отображает в виде 4360 грн. правильно.
Указание модели, бренда:
Бренд:
Ищем <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>
Меняем на:
<li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><span itemprop="brand"><?php echo $manufacturer; ?></span></a></li>
Модель:
Ищем: <li><?php echo $text_model; ?> <?php echo $model; ?></li>
Меняем на: <li><?php echo $text_model; ?> <span itemprop="model"><?php echo $model; ?></span></li>
Размечаем рейтинг товаров:
Ищем
<div class="rating">
<p>
<?php for ($i = 1; $i <= 5; $i++) { ?>
<?php if ($rating < $i) { ?>
<span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span>
<?php } else { ?>
<span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span>
<?php } ?>
<?php } ?>
<a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a>
</p>
<hr>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> <a class="addthis_button_tweet"></a> <a class="addthis_button_pinterest_pinit"></a> <a class="addthis_counter addthis_pill_style"></a></div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-515eeaf54693130e"></script>
<!-- AddThis Button END -->
</div>
Меняем на:
<div class="rating" itemprop = "aggregateRating" itemscope itemtype = "http://schema.org/AggregateRating">
<p>
<?php for ($i = 1; $i <= 5; $i++) { ?>
<?php if ($rating < $i) { ?>
<span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span>
<?php } else { ?>
<span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span>
<?php } ?>
<?php } ?>
<a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a>
</p>
<meta itemprop = "ratingValue" content="<?php echo $rating; ?>">
<meta itemprop = "worstRating" content="1">
<meta itemprop = "bestRating" content="5">
<meta itemprop = "reviewCount" content="<?php echo $review_count; ?>">
<hr>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style"><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> <a class="addthis_button_tweet"></a> <a class="addthis_button_pinterest_pinit"></a> <a class="addthis_counter addthis_pill_style"></a></div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-515eeaf54693130e"></script>
<!-- AddThis Button END -->
</div>
В файле:
catalog\controller\product\product.php
Ищем:
$data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']);
И после этой строки добавляем:
$data['review_count'] = (int)$product_info['reviews'];
Разметка свединий об организации:
<div itemscope itemtype="http://schema.org/Organization">
<span itemprop="name">Сюда вставляем название организации</span> © 2011-2015 <br/>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
Адрес:
<span itemprop="streetAddress">Указываем улицу и номер дома</span>
<span itemprop="addressLocality">Указываем город</span>, <span itemprop="postalCode">Вписываем почтовый индекс</span>
</div>
Телефоны:<span itemprop="telephone">Телефон №1</span>, <span itemprop="telephone">Телефон №2</span>,<br/>
Электронная почта: <span itemprop="email">Вписываем e-mail</span> <br/>
</div>
Этот код вставляете в любое место на сайте, я это сделал в шаблоне контакты. Всё индексируется и отображается.
Делал на стандартном шаблоне.
-
Pelmen изменил репутацию Adems в Микроразметка "рейтинг товаров"
Есть пару изменений касательно разметки Цена товара:
В связи с предупреждением о неверном формате цена. Необходимо вывести еще одно значение цены без указания валюты и размечать его:
В файле catalog\controller\product\product.php
Ищем: $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
После добавляем новую переменную без указания валюты:
$data['price_int'] = ($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
И выводим её с разметкой в шаблоне товара после <h2 class="page-product"><?php echo $price; ?></h2> (старую разметку убираем).
Выглядеть блок с разметкой цены будет так:
<li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<h2 class="page-product"><?php echo $price; ?></h2>
<span itemprop="priceCurrency" content="UAH"><meta itemprop="price" content="<?php echo $price_int; ?>" /></span>
</li>
Тоже делаем с товарами по акционной цене (этот момент был упущен).
В файле catalog\controller\product\product.php
После:
$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
Добавляем:
$data['special_int'] = ($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
И выводим в шаблоне товара, выглядеть будет так:
<li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<h2 class="page-product"><?php echo $special; ?></h2>
<span itemprop="priceCurrency" content="UAH"><meta itemprop="price" content="<?php echo $special_int; ?>" /></span>
</li>
Разметка полностью валидна, без ошибок и предупреждений, индексируется, проверил.
Не забудьте о content="UAH" для рубля это content="RUB"
-
Pelmen изменил репутацию Fedka в Как сделать вывод у товаров в наличии
Я у себя на сайтах вывожу после проверки
<?php if ($price) { ?> Имеет вид, примерно:
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <span itemprop="price" content="1000.00">1,000.00</span> <span itemprop="priceCurrency" content="UAH">ГРН.-</span> <link itemprop="availability" href="http://schema.org/InStock" /> </div>
-
Pelmen изменил репутацию RHCk в Состояние на складе
Что-то не то у вас с товаром происходит. Скоропорт?)
-
Pelmen изменил репутацию admin в Оплата и оповещение
в контроллер заказа и в контроллер модуля смсок загляните в принципе туда это можно добавить
подробней можно тут увидеть все что было затронуто для смс
https://github.com/ocshop/ocshop/commit/064756c61e50754e2d1affdc9557627fffaf8015
-
Pelmen изменил репутацию admin в Замена иконки корзины
конечно проще :-) можно еще и свой фонт авесом написать :-)
но если серьезно из разряда попробовать
смотрите стиль фонт авесома найдите там корзину и переназначьте ему стиль от нужной
-
Pelmen получил репутацию от admin в По кнопке "купить" добавлять товар в корзину и сразу переходить в оформление заказа.
В общем, добавил переход по ссылке через
location.href = 'index.php?route=checkout/simplecheckout&group=1';
-
Pelmen изменил репутацию admin в Релиз OPENCART.CMS 2.1.0.2
Релиз OPENCART 2.1.0.2.1
История изменения версий
В версии CMS и PRO
Новое:
Макеты в производителях Улучшен фильтр в административной части Исправления:
Мелкие правки перевода Правки макетов блога Мелкие правки шаблона блога Правки поиска в административной части Правки кэш менеджера и другие
В сборке все файлы уже исправлены но для упрощения обновления можно использовать архив с обновлением данного релиза.
Все купившие OPENCART.PRO могут получить Бесплатные обновления на http://liveopencart.ru/
Для новых покупателей цена остается прежней и составляет 750 рублей.
Как обновиться?
В обоих версиях есть архивы update_pro_2_1_0_2.1.zip и update_cms_2_1_0_2.1.zip
1. Делаем Бэкап файлов и базы данных
2. Заливаем все из архива update_pro_2_1_0_2.1.zip или update_cms_2_1_0_2.1.zip
3. Переходим http://site.com/install и выполняем обновление
Для тех у кого установлен vqmod:
1. Если Вы меняете index.php между обновлениями не забудьте сделать БЕКАП перед очередным обновлением, как правило в этом файле меняется только версия, сравните этот файл из архива обновления с вашим текущим
2. Если у вас работает VQMOD, встраивающийся в index.php, перед обновлением временно отключите его, переименовав файл vqmod/xml/vqmod_opencart.xml, например, в такой vqmod/xml/vqmod_opencart._xml_
3. После обновления верните ваши изменения index.php (включая строки vqmod'а, если были) и переименуйте файл vqmod/xml/vqmod_opencart._xml_ обратно в vqmod/xml/vqmod_opencart.xml
ВНИМАНИЕ!!!
В следующий релиз войдет модуль "Турбо" и сборка подорожает до 1000 рублей, соответственно рекомендуем тем кто планирует приобретение сделать это сейчас, тем кому нужны дополнительные лицензии не забывать про имеющуюся у вас скидку на следующие покупки.
-
Pelmen изменил репутацию savage4pro в Изображение опций в каталоге товаров + другие вопросы
http://www.opencart.com/index.php?extension_id=7959&route=extension/extension/info
http://www.opencart.com/index.php?route=extension/extension/info&extension_id=11581
на языке по умолчанию
если языков несколько и они должны быть в ПС, делайте мультимагазин, для каждого языка свой домен
-
Pelmen изменил репутацию sergm87 в интеграция с 1С
товары выгружаются но некорректно - у некоторых количество 0 и цена 0. хотя в выгрузке есть и цена количество. Часть товаров выгружается корректно
-
Pelmen изменил репутацию Vlad00071 в интеграция с 1С
Разговор не о чём.
Логи ошибок где??? Какая 1с конфигурация ,какой движок версия?
Да и в обще тема не к этому форуму. Есть конкретно модуль выгрузки , тема поддержки ... все вопросы туда.
-
Pelmen изменил репутацию savage4pro в Произвольные ссылки в дизайн-меню
указывать вместе с доменным именем сайта, что не всегда приемлимо
с произвольными ссылками в меню пока, к сожалению, все не совсем так, как хотелось бы
поэтому временно (до выхода обновления по меню) для себя решил данную задачу изменением шаблона, в котором оно выводится
например, в дефолтном шаблоне оно выводится в /catalog/view/theme/default/template/common/header.tpl
мое решение такое
заменить
<?php foreach ($categories as $category) { ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php } ?>на
<?php foreach ($categories as $category) { ?> <?php $showHref = false; $tmpHref = explode('index.php?route=', $category['href']); if (isset($tmpHref[1]) && !empty($tmpHref[1])) { $showHref = true; if (substr($tmpHref[1], 0,1)=='/') { $category['href'] = $tmpHref[1]; } } else if (isset($tmpHref[0])) { $tmpHrefPath = str_replace('/', '', parse_url($tmpHref[0],PHP_URL_PATH)); if (!empty($tmpHrefPath)) { $showHref = true; $category['href'] = $tmpHref[0]; } unset($tmpHrefPath); } $category['href'] = html_entity_decode($category['href']); ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo ($showHref)?$category['href']:''; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <?php $showHrefChild = false; $tmpHrefChild = explode('index.php?route=', $child['href']); if (isset($tmpHrefChild[1]) && !empty($tmpHrefChild[1])) { $showHrefChild = true; if (substr($tmpHrefChild[1], 0,1)=='/') { $child['href'] = $tmpHrefChild[1]; } } else if (isset($tmpHrefChild[0])) { $tmpHrefChildPath = str_replace('/', '', parse_url($tmpHrefChild[0],PHP_URL_PATH)); if (!empty($tmpHrefChildPath)) { $showHrefChild = true; $child['href'] = $tmpHrefChild[0]; } unset($tmpHrefChildPath); } $child['href'] = html_entity_decode($child['href']); ?> <li><a href="<?php echo ($showHrefChild)?$child['href']:''; ?>"><?php echo $child['name']; ?></a></li> <?php unset($tmpHrefChild); unset($showHrefChild); ?> <?php } ?> <?php if ($showHref) { ?> <li role="separator" class="divider"></li> <li><a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php unset($tmpHref); unset($showHref); ?> <?php } ?>после этого можно использовать произвольные ссылки в меню в более удобоваримом виде, т.е. добавлять как сео-ссылки типа "/auto" (такие ссылки должны начинаться на слэш), так и относительные типа "product/product&path=20&product_id=35" (они будут в итоге слеплены со стандартным началом: "сайт.ру/index.php?route=", или сразу можно в полном виде добавлять)
но если где-то еще меню выводить, то либо надо и там похожую канитель выписывать, либо решать уже по-человечески - правкой контроллера
ах да, чуть не забыл, при такой замене кода шаблона, можно вообще ссылки не указывать для верхних пунктов меню, в этом случае они будут работать как табы и после дочерних пунктов также не будет пункта "Смотреть Все ..."
и там же немного изменен вывод этого пункта, в виде более логичном - как продолжение списка, вместо имеющегося по дефолту прекращения списка и расположения ссылки следующим после него элементом, правда, вероятно, стили несколько покосятся, и придется вам либо вернуть этот кусочек на дефолтный, либо поправить стили, не уверен, у меня просто стили по ходу пишутся, поэтому сходу сказать, что в css надо для этого менять, а что нет, не смогу
-
Pelmen изменил репутацию savage4pro в Произвольные ссылки в дизайн-меню
Версия 2.1.0.1.2
Дизайн -> Меню
добавление "Произвольных ссылок" приводит к небольшому вороху ошибок
в итоге js-ом создается пункт, который можно, конечно, редактировать и уже сохранить, но это как-то неправильно
при этом создается новая запись menu_id в таблице menu, но не добавляется запись в таблицу menu_description
метод add класса ModelDesignMenu, по всей видимости писали разные люди, или один, но с перерывом на какое-нибудь радостное событие
вариант решения
/admin/model/design/menu.php:77-82
заменить
$query = new stdClass(); $query->rows = array(); foreach ($languages as $language) { $query->rows[] = array('name' => $data['name'], 'language_id' => $language['language_id']); }на
$data['menu_desc'] = array(); foreach ($languages as $language) { $data['menu_desc'][] = array('name' => $data['name'], 'language_id' => $language['language_id']); }