Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

indevor

Users
  
  • Posts

    57
  • Joined

  • Last visited

Everything posted by 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. Присоединяюсь Ritter, по 1.5 есть рецепт?
  10. пока не добавилось тормозов, товара пока мало (всегда можно закоментировать). Участок картинок выдрал со стандартного списка товаров при добавлении. Добавил: при открытии товара, после нажатия "сохранить", что бы окно само закрывалось (экономия времени) и отредактированный товар подсвечивался другим цветом. Так же добавил поле "закупочная стоимость". п.с визувинг, я так полагаю это - WYSIWYG-редактор? .. Вот с ним я думаю будет тормоза, он довольно прожорлив, хотя без него не как, если нужно описание подправить, рыться в тегах, это время.
  11. Отличный модуль, то что нужно! быстро и просто редактирование цен\тегов\описания\наличия. Радует именно аякс. Человеческое спасибо) немного добавил информативности: /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-редактор? п.с.с. а ещё для информативности было бы неплохо выделять, те товары которые редактируешь, хотя бы подсвечивать их, а то путаницы не избежать. очень немаловажно
  12. Это как то не работало. Добавил так: <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 (при большой ширине видео вылазит за пределы таба)
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.