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

indevor

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

    57
  • З нами

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

Повідомлення, опубліковані користувачем indevor

  1. Никто не сталкивался с проблемой чтоль ? Или только у меня и vadik21 такая хрень?

    у вас не происходит "переход по страницам", как таковой.

    Объясниете пожалуйста как такое происходит и чем это плохо или хорошо?

    Столкнулся с той же проблемой, в гуле вылезли дубли title (в вашем случаи об этом тоже нужно подумать, так как убрав описание со второй и последующих страниц, вы не уберете дубли title, этих страниц) к примеру /detskie-kolaski , /detskie-kolaski?page=2 .

    Так же использую модуль фильтров от freelancer'a.

    То, что фактически перехода не происходит, в данном случаи не хорошо, ни плохо. Текст второй страницы просто подгружается модулем фильтра по средствам ajax'a. Гугл по этому поводу молчит. Но страница page=2 не куда не делась.

    Ребята из гугла для таких случаев разработали атрибуты к ссылкам rel="next" rel="prev". Почитать об этом можно тут.

    Я для себя не так давно начал использовать данный хак, Посмотрим пропадут ли дубли page=2

    • +1 1
  2. Поднимаю старую тему. Так же возникли проблемы с категориями третьего уровня.

    Подопечный http://zoome.by/aksesyari_dlya_telefonovx/x1/ в этой категория должна быть ещё "Гарнитуры"

    Версия ocStore 1.5.4.1

    Рекомендации выше вроде бы учтены.

    Куда смотреть подскажите.

  3. Приветствую. Есть необходимость в шаблон категории, в часть со список товаров, вывести произвольную переменную. Все манипуляции проделаны. Переменная показывает свои данные, только когда выключаешь модуль.

    нашел в шаблоне 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 все прописано, переменная определена и не пуста.

    эффекта нет, куда ещё смотреть. Очень актуально.

  4. ясное дело что никак ))) Для этого нужно сделать больше.

    воспользуйтесь https://opencartforum.com/files/file/195-vqmod-product-video-tab-1513zip/ , переделайте vqmod по своему усмотрению(или внесите ручные правки в указанные файлы) и в админке и карточке товара добавиться дополнительный таб.

  5. Как покупатель предлагаю на рассмотрению идею с добавлением к атрибутам пояснений, такое реализовано в крупных каталогах при подборе по параметрам (см. яндекс.маркет) т.е напротив названия группы атрибута выводить иконку по клику на которую вылетало бы окошко с пояснением что означает тот или иной атрибут.

    Конечно можно допилить сам движок opencart'a но потеряется модульность. Поэтому это лучше завести в "дополнения - модули - filterpro в список с выбором типа группы атрибутов.

  6. Подсмотрел на каких то магазинах таймер, который считает в обратном направлении до окончания акции или специальной цены. Порылся в дополнениях на оф.сайте, там такая приблуда 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>

    Таймер отсчитывает время до окончании "скидки", можно по аналогии сделать и "акции" или "специального предл.".

    post-9359-0-19210500-1319801189_thumb.jpg

    • +1 3
  7. Ой, а вот с картинками-то я не хотел связываться из соображений мудрой экономии ресурсов ...

    Сильно тормозов прибавило? Ресайз ведь штука такая, прожорливая до ресурсов.

    Что касается визивуга - с ходу не отвечу на вопрос, но так ради интереса как по свободней буду - посмотрю@поковыряюсь.

    пока не добавилось тормозов, товара пока мало (всегда можно закоментировать). Участок картинок выдрал со стандартного списка товаров при добавлении. Добавил: при открытии товара, после нажатия "сохранить", что бы окно само закрывалось (экономия времени) и отредактированный товар подсвечивался другим цветом. Так же добавил поле "закупочная стоимость".

    п.с визувинг, я так полагаю это - WYSIWYG-редактор? .. Вот с ним я думаю будет тормоза, он довольно прожорлив, хотя без него не как, если нужно описание подправить, рыться в тегах, это время.

  8. Отличный модуль, то что нужно! быстро и просто редактирование цен\тегов\описания\наличия. Радует именно аякс. Человеческое спасибо)

    немного добавил информативности:

    /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-редактор?

    п.с.с. а ещё для информативности было бы неплохо выделять, те товары которые редактируешь, хотя бы подсвечивать их, а то путаницы не избежать. очень немаловажно

  9. ...Это чтоб в скобочках отображало количество роликов.

    Это как то не работало. Добавил так:

    <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 (при большой ширине видео вылазит за пределы таба)

    • +1 2
×
×
  • Створити...

Important Information

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