-
Публікації
57 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем indevor
-
-
Никто не сталкивался с проблемой чтоль ? Или только у меня и vadik21 такая хрень?
у вас не происходит "переход по страницам", как таковой.
Объясниете пожалуйста как такое происходит и чем это плохо или хорошо?
Столкнулся с той же проблемой, в гуле вылезли дубли title (в вашем случаи об этом тоже нужно подумать, так как убрав описание со второй и последующих страниц, вы не уберете дубли title, этих страниц) к примеру /detskie-kolaski , /detskie-kolaski?page=2 .
Так же использую модуль фильтров от freelancer'a.
То, что фактически перехода не происходит, в данном случаи не хорошо, ни плохо. Текст второй страницы просто подгружается модулем фильтра по средствам ajax'a. Гугл по этому поводу молчит. Но страница page=2 не куда не делась.
Ребята из гугла для таких случаев разработали атрибуты к ссылкам rel="next" rel="prev". Почитать об этом можно тут.
Я для себя не так давно начал использовать данный хак, Посмотрим пропадут ли дубли page=2
- 1
-
Присоединяюсь к вопросу ) У кого-нибудь есть наработки? А то у самого руки до всего не дойдут..
посмотрите тут , по-моему то, что нужно.
- 1
-
Поднимаю старую тему. Так же возникли проблемы с категориями третьего уровня.
Подопечный http://zoome.by/aksesyari_dlya_telefonovx/x1/ в этой категория должна быть ещё "Гарнитуры"
Версия ocStore 1.5.4.1
Рекомендации выше вроде бы учтены.
Куда смотреть подскажите.
-
в контроллер добавить
freelancer имел ввиду добавить переменную в контроллер фильтра
Благодарю. Подхватило.
-
в движке магазина все изменения внесены. переменная показывает свои данные в категории в конкретном товаре - только когда выключен модуль filterproв контроллер добавить
-
Приветствую. Есть необходимость в шаблон категории, в часть со список товаров, вывести произвольную переменную. Все манипуляции проделаны. Переменная показывает свои данные, только когда выключаешь модуль.
нашел в шаблоне filterpro.tpl скрипт, по всей видимости подгружающий шаблон:
<script id="productTemplate" type="text/x-jquery-tmpl"> <div> {{if thumb}} <div class="image"><a href="${href}"><img src="${thumb}" title="${name}" alt="${name}"/></a></div> {{/if}} <div class="name"><a href="${href}">${name}</a> <div class="extra" style="color: #444;"> {{if sku}} <span style="color:#38b0e3"><?php echo $pds_sku; ?></span> ${sku} <br/> {{/if}} {{if model}} ........ и т.д
добавил свои данные вида{{if flash_code}} <div class="flash_code">11</div> {{/if}}
в category.tpl все прописано, переменная определена и не пуста.эффекта нет, куда ещё смотреть. Очень актуально.
-
ясное дело что никак ))) Для этого нужно сделать больше.
воспользуйтесь https://opencartforum.com/files/file/195-vqmod-product-video-tab-1513zip/ , переделайте vqmod по своему усмотрению(или внесите ручные правки в указанные файлы) и в админке и карточке товара добавиться дополнительный таб.
-
Так же солидарен. Такую логику очень хотелось бы видеть.
-
Как покупатель предлагаю на рассмотрению идею с добавлением к атрибутам пояснений, такое реализовано в крупных каталогах при подборе по параметрам (см. яндекс.маркет) т.е напротив названия группы атрибута выводить иконку по клику на которую вылетало бы окошко с пояснением что означает тот или иной атрибут.
Конечно можно допилить сам движок opencart'a но потеряется модульность. Поэтому это лучше завести в "дополнения - модули - filterpro в список с выбором типа группы атрибутов.
-
да, было бы не плохоИнтересный модуль. По свободе соберу vqMod
-
а под какую версию опенкарта?. Спасибо
1.5.*
-
Подсмотрел на каких то магазинах таймер, который считает в обратном направлении до окончания акции или специальной цены. Порылся в дополнениях на оф.сайте, там такая приблуда 12$ стоит, вообщем грабеж. В пхп и ява - чайник со свистком, нагуглил простенький скриптик на яве, пару функций из учебника, убил вечер но прикрутил.
открываем: /catalog/model/catalog/product.php
строка ~ 27: вставляем в этот запрос выделенную конструкцию.
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, p.weight AS weight, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount,
(SELECT date_end FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.date_end ASC LIMIT 1) AS date_end,
(SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (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, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews 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) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
дальше ниже в строке примерно 36-40, в эту конструкцию:
if ($query->num_rows) {
return array(
'product_id' => $query->row['product_id'],
'name' => $query->row['name'],
'weight' => $query->row['weight'],
.... ......
вставляем:
'date_end' => $query->row['date_end'], //день окончания скидки
открываем: /catalog/controller/product/product.php
добавляем после, или где-нибудь рядышком:
$this->data['manufacturer'] = $product_info['manufacturer'];
код:
$this->data['date_end'] = $product_info['date_end']; //день окончания скидки.
(офтоп:) так же по аналогии я вывел себе вес на страницу товара, выделено серым.
открываем: /catalog/view/theme/ВАША_ТЕМА/template/product/product.tpl
в конец файла вставляем скрипт:
<script type="text/javascript"> <!-- newYearIn(); function newYearIn() { var now = new Date(); var newYear = new Date("<?php echo $date_elements[0]; ?>,<?php echo $date_elements[1]; ?>,<?php echo $date_elements[2]; ?>,00:00:00"); var totalRemains = (newYear.getTime()-now.getTime()); if (totalRemains>1) { var RemainsSec=(parseInt(totalRemains/1000)); var RemainsFullDays=(parseInt(RemainsSec/(24*60*60))); if (RemainsFullDays==2 || RemainsFullDays==3 || RemainsFullDays==4 || RemainsFullDays==22 || RemainsFullDays==23 || RemainsFullDays==24 || RemainsFullDays==32 || RemainsFullDays==33 || RemainsFullDays==34) { days=" дня " } else if ( RemainsFullDays==1 || RemainsFullDays==21 || RemainsFullDays==31 ) { days=" день " } else { days =" дней " } var secInLastDay=RemainsSec-RemainsFullDays*24*3600; var RemainsFullHours=(parseInt(secInLastDay/3600)); if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours}; var secInLastHour=secInLastDay-RemainsFullHours*3600; var RemainsMinutes=(parseInt(secInLastHour/60)); if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes}; var lastSec=secInLastHour-RemainsMinutes*60; if (lastSec<10){lastSec="0"+lastSec}; document.getElementById('newyear').innerHTML = "осталось: "+RemainsFullDays+days+RemainsFullHours+" ч "+RemainsMinutes+" м "+lastSec+" сек"; setTimeout("newYearIn()",10); } else {document.getElementById("newyear").innerHTML = "скидка окончена";} } //--> </script>
скрипт можно поправить как угодно что бы по завершению нечего не происходило, в этом варианте будет писать "скидка окончена". Были ещё и миллисекунды, но мне показались излишне фанатичным.Можно спрятать наш таймер по завершению:меняем:
else {document.getElementById("newyear").innerHTML = "скидка окончена";}
на:else {document.getElementById("newyear").style.display = "none";}
в в том же файле в начало куда нибудь:
<?php $date_elements = explode("-",$date_end); ?>
- конечно, это можно засунуть и в /catalog/controller/product/product.php, но как то лень было..ну и сам вывод таймера в любое место по вкусу и оформляем как хотим:
<div id="newyear"></div>
Таймер отсчитывает время до окончании "скидки", можно по аналогии сделать и "акции" или "специального предл.".
- 3
-
Присоединяюсь Ritter, по 1.5 есть рецепт?
-
Ой, а вот с картинками-то я не хотел связываться из соображений мудрой экономии ресурсов ...
Сильно тормозов прибавило? Ресайз ведь штука такая, прожорливая до ресурсов.
Что касается визивуга - с ходу не отвечу на вопрос, но так ради интереса как по свободней буду - посмотрю@поковыряюсь.
пока не добавилось тормозов, товара пока мало (всегда можно закоментировать). Участок картинок выдрал со стандартного списка товаров при добавлении. Добавил: при открытии товара, после нажатия "сохранить", что бы окно само закрывалось (экономия времени) и отредактированный товар подсвечивался другим цветом. Так же добавил поле "закупочная стоимость".
п.с визувинг, я так полагаю это - WYSIWYG-редактор? .. Вот с ним я думаю будет тормоза, он довольно прожорлив, хотя без него не как, если нужно описание подправить, рыться в тегах, это время.
-
Отличный модуль, то что нужно! быстро и просто редактирование цен\тегов\описания\наличия. Радует именно аякс. Человеческое спасибо)
немного добавил информативности:
/admin/controller/catalog/fastitemedit.php
<tr><td colspan="9"> </td>
<td><a onclick=$(\'#table-' . $this->request->get['root_cat'] . '\').remove(); href="javascript:{}"><nobr>закрыть [x]</nobr></a></td></tr>
<tr>
<td class="center">Картинка</td>
<td class="center">Название</td>
...
после:
</tr> </thead> <tbody>';
добавить:
$this->load->model('tool/image'); foreach($products as $product) { if ($product['image'] && file_exists(DIR_IMAGE . $product['image'])) { $image = $this->model_tool_image->resize($product['image'], 40, 40); } else { $image = $this->model_tool_image->resize('no_image.jpg', 40, 40); }
после:
echo '<tr id="fastitem-' . $product['product_id'] . '">
добавить:
<td><img src="'. $image . '" /></td>
в итоге выводит и картинки, по аналогии со стандартным редактирование, так как некоторые товары узнаешь сначала по изображению, а не по названию
п.с. как, при редактировании, через этот модуль поля описания подключить WYSIWYG-редактор?
п.с.с. а ещё для информативности было бы неплохо выделять, те товары которые редактируешь, хотя бы подсвечивать их, а то путаницы не избежать. очень немаловажно
-
...Это чтоб в скобочках отображало количество роликов.
Это как то не работало. Добавил так:
<a tab="#tab_youtube"><?php echo $tab_youtube; ?>(<?php $pattern = '</object>';preg_match_all($pattern, $youtube_code, $text);echo count($text[0]); ?>)</a>
теперь считает кол-во добавленного видео.и ещё добавил так:
<div id="tab_youtube" class="tab_page"><?php if ($youtube_code) { ?><div align="center"><?php$patterns = '/width="[0-9]{3}"/';$replace = "width=540";$x = preg_replace($patterns, $replace, $youtube_code);echo $x; ?></div><?php } else { ?><div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-bottom: 10px; w"><?php echo $text_no_contents; ?></div><?php } ?></div>
что бы автоматом выставляло ширину, у меня это 540px (при большой ширине видео вылазит за пределы таба)
- 2
Помогите оптимизировать пагинацию
в SEO-питання (оптимізація та просування магазину)
Опубліковано:
в теги div не получится. нужно в область <head> </head> да ещё и с тегом <link>