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

indevor

Користувачі
  
  • Публікації

    57
  • З нами

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

Усі публікації користувача indevor

  1. Столкнулся с той же проблемой, в гуле вылезли дубли title (в вашем случаи об этом тоже нужно подумать, так как убрав описание со второй и последующих страниц, вы не уберете дубли title, этих страниц) к примеру /detskie-kolaski , /detskie-kolaski?page=2 . Так же использую модуль фильтров от freelancer'a. То, что фактически перехода не происходит, в данном случаи не хорошо, ни плохо. Текст второй страницы просто подгружается модулем фильтра по средствам ajax'a. Гугл по этому поводу молчит. Но страница page=2 не куда не делась. Ребята из гугла для таких случаев разработали атрибуты к ссылкам rel="next" rel="prev". Почитать об этом можно тут. Я для себя не так давно начал использовать данный хак, Посмотрим пропадут ли дубли page=2
  2. Поднимаю старую тему. Так же возникли проблемы с категориями третьего уровня. Подопечный http://zoome.by/aksesyari_dlya_telefonovx/x1/ в этой категория должна быть ещё "Гарнитуры" Версия ocStore 1.5.4.1 Рекомендации выше вроде бы учтены. Куда смотреть подскажите.
  3. в движке магазина все изменения внесены. переменная показывает свои данные в категории в конкретном товаре - только когда выключен модуль filterpro
  4. Приветствую. Есть необходимость в шаблон категории, в часть со список товаров, вывести произвольную переменную. Все манипуляции проделаны. Переменная показывает свои данные, только когда выключаешь модуль. нашел в шаблоне 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 все прописано, переменная определена и не пуста.эффекта нет, куда ещё смотреть. Очень актуально.
  5. воспользуйтесь https://opencartforum.com/files/file/195-vqmod-product-video-tab-1513zip/ , переделайте vqmod по своему усмотрению(или внесите ручные правки в указанные файлы) и в админке и карточке товара добавиться дополнительный таб.
  6. Так же солидарен. Такую логику очень хотелось бы видеть.
  7. Как покупатель предлагаю на рассмотрению идею с добавлением к атрибутам пояснений, такое реализовано в крупных каталогах при подборе по параметрам (см. яндекс.маркет) т.е напротив названия группы атрибута выводить иконку по клику на которую вылетало бы окошко с пояснением что означает тот или иной атрибут. Конечно можно допилить сам движок opencart'a но потеряется модульность. Поэтому это лучше завести в "дополнения - модули - filterpro в список с выбором типа группы атрибутов.
  8. Подсмотрел на каких то магазинах таймер, который считает в обратном направлении до окончания акции или специальной цены. Порылся в дополнениях на оф.сайте, там такая приблуда 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> Таймер отсчитывает время до окончании "скидки", можно по аналогии сделать и "акции" или "специального предл.".
  9. пока не добавилось тормозов, товара пока мало (всегда можно закоментировать). Участок картинок выдрал со стандартного списка товаров при добавлении. Добавил: при открытии товара, после нажатия "сохранить", что бы окно само закрывалось (экономия времени) и отредактированный товар подсвечивался другим цветом. Так же добавил поле "закупочная стоимость". п.с визувинг, я так полагаю это - WYSIWYG-редактор? .. Вот с ним я думаю будет тормоза, он довольно прожорлив, хотя без него не как, если нужно описание подправить, рыться в тегах, это время.
  10. Отличный модуль, то что нужно! быстро и просто редактирование цен\тегов\описания\наличия. Радует именно аякс. Человеческое спасибо) немного добавил информативности: /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-редактор? п.с.с. а ещё для информативности было бы неплохо выделять, те товары которые редактируешь, хотя бы подсвечивать их, а то путаницы не избежать. очень немаловажно
  11. Это как то не работало. Добавил так: <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 (при большой ширине видео вылазит за пределы таба)
×
×
  • Створити...

Important Information

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