Помощь Помогите найти решение по оптимизации сайта.

Тема в разделе "PrestaShop", создана пользователем Jame, 27 апр 2016.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. Jame

    Jame

    Регистр.:
    16 июл 2012
    Сообщения:
    376
    Симпатии:
    191
    Тут два варианта либо Advanced Search либо пилить свой вариант.
     
  2. fortuner

    fortuner Нарушитель

    Регистр.:
    26 июн 2012
    Сообщения:
    558
    Симпатии:
    896
    Пагинацию с решеткой делает стандартный модуль фильтра BlockLayered. Описание категории на страницах надо убирать в нем:
    Схема только для 1.4, для 1.5 думаю что почти все тоже самое...


    1) В файле category.tpl, найти строчки:

    Код:
    {if $category->description}
    {$category->description}
    {/if}
    
    Скопировать их в блокнот и затем удалить или закомментировать {* *} из файла category.tpl



    В место удаленого кода вставить это:

    {include file="$tpl_dir./p2.tpl"}
    2) Создаем новый файл p2.tpl и вставляем туда следующие строчки:

    Код:
    {if isset($p) && $p}
    {if $p > 1}
    <div class="cat_desc"></div>
    {else}
    <div class="cat_desc">{if $category->description}{$category->description}{/if}</div>
    {/if}
    {/if}
    
    3) Открываем файл \modules\blocklayered\blocklayered.js и находим примерно на 397 строчки этот код:
    Код:
    ajaxQuery = $.ajax(
    {
    type: 'GET',
    url: baseDir + 'modules/blocklayered/blocklayered-ajax.php',
    data: data+params_plus+n,
    dataType: 'json',
    cache: false, // @todo see a way to use cache and to add a timestamps parameter to refresh cache each 10 minutes for example
    success: function(result)
    {
    ...............................
    
    Далее после этого правила:
    Код:
    if (result.pagination.search(/[^\s]/) >= 0) {
    if ($(result.pagination).find('ul.pagination').length)
    {
    $('div#pagination').show();
    $('ul.pagination').each(function () {
    $(this).replaceWith($(result.pagination).find('ul.pagination'));
    });
    }
    else if (!$('ul.pagination').length)
    {
    $('div#pagination').show();
    $('div#pagination').each(function () {
    $(this).html($(result.pagination));
    });
    }
    else
    {
    $('ul.pagination').html('');
    $('div#pagination').hide();
    }
    }
    else
    {
    $('ul.pagination').html('');
    $('div#pagination').hide();
    }
    
    Сразу за ним вставляем этот код:
    Код:
    if (result.p2.search(/[^\s]/) >= 0) {
    $('.cat_desc').each(function () {
    $(this).replaceWith($(result.p2));
    });
    };
    
    4) Далее открываем там же файл blocklayered.php
    Находим в нем функцию:
    Код:
    public function ajaxCall()
    {
    .............................
    
    Сразу после этих строчек:

    Код:
    $nArray = array_unique($nArray);
    asort($nArray);
    
    Добавляем этот код:
    Код:
    $id_category = array('id' => (int)Tools::getValue('id_category_layered', 1));
    $category = new Category((int)($id_category['id']));
    if (isset($category->description[1])) $category->description = $category->description[1];
    

    5) После сразу ниже находим:
    Код:
    $smarty->assign(
    array(
    'homeSize' => Image::getSize('home'),
    'nb_products' => $nb_products,
    ......................
    

    Находим и комментируем:
    Код:
    // 'category' => (object)array('id' => (int)Tools::getValue('id_category_layered', 1)),
    
    Сразу после нашего комментария вставляем:
    Код:
    'category' => $category,
    
    Не забудь почистить кеш престашопа и браузера после!


    -----------------------------------------------



    В сети еще нашел вот такой код, но он не мой, и не отвечаю за его работоспособность:


    Код:
    {if $category->description}
                {if $smarty.get.p<=1}
                <div class="cat_desc">{$category->description}</div>
                {/if}
                {else}
                <div class="cat_desc"></div>
            {/if}
    

    Ссылка на источник
    https://www.prestashop.com/forums/topic/271159-делаем-вывод-описания-категории-только-на-перв/
    Спасибо Kerm за труды :)
     
  3. Jame

    Jame

    Регистр.:
    16 июл 2012
    Сообщения:
    376
    Симпатии:
    191
    Ничего себе квест, а чем этот вариант плох ? У себя на сайте проверял, все красиво.

    Это такой особый вид перфекционизма ?)
     
    Последнее редактирование: 13 июл 2016
    _sashok нравится это.
  4. fortuner

    fortuner Нарушитель

    Регистр.:
    26 июн 2012
    Сообщения:
    558
    Симпатии:
    896
    Ну это для ajax страниц. Даже если они не индексируются, то пользователю будет удобнее, если вверху страницы не будет простыни текста :)