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

может быть в этой ветке подскажут. как сделать индексируемые страницы фильтрации? Необходимо задать фильтрам ЧПУ урлы (без использования # в адресе), возможность задавать свои мета теги и размещать тексты, которые не должны нигде дублироваться, а также чтобы гибко управлять такими страницами и добавлять на них index/noindex, follow/nofollow
Тут два варианта либо Advanced Search либо пилить свой вариант.
 
Пагинацию с решеткой делает стандартный модуль фильтра 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}

Ссылка на источник
Для просмотра ссылки Войди или Зарегистрируйся
Спасибо Kerm за труды :)
 
Описание категории на страницах надо убирать в нем:
Ничего себе квест, а чем этот Для просмотра ссылки Войди или Зарегистрируйся плох ? У себя на сайте проверял, все красиво.

Ну это для ajax страниц.
Это такой особый вид перфекционизма ?)
 
Последнее редактирование:
Ну это для ajax страниц. Даже если они не индексируются, то пользователю будет удобнее, если вверху страницы не будет простыни текста :)
 
Назад
Сверху