Как добавить номера страниц в title

Автор VoyDi, 24 октября 2019, 14:47:52

« назад - далее »

VoyDi

Добрый день!

Подскажите как добавить номера страниц в title, а то в каталоге все страницы с одинаковым title

Спасибо!

coder

В теме/модулях находите фунцию javascript пагинации, в разных темах по разному называется, и добавляете
$('meta[name="title"]').attr('content', $('div.pagination select[name=n]').val());

VoyDi

Можно чуть подробней что искать?

Понял что в папке тема/модули предположу дальше blocklayered (это то что смог на гуглить) а там где?

coder

Если установлен blocklayered, тогда в папке модуля blocklayered.js.

VoyDi

в папке тема/модуль/блоклаеред такого файла нет, он есть в папке модули/ но не смог разобраться куда там вставлять

coder


VoyDi

Если вас не затруднит  тыкните пальцем или вставьте:

function paginationButton() {
$('#pagination a').not(':hidden').each(function () {
if ($(this).attr('href').search(/[&|\?]p=/) == -1)
    var page = 1;
else
    var page = $(this).attr('href').replace(/^.*[&|\?]p=(\d+).*$/, '$1');

var location = window.location.href.replace(/#.*$/, '');
$(this).attr('href', location+current_friendly_url.replace(/\/page-(\d+)/, '')+'/page-'+page);
});
$('#pagination li').not('.current, .disabled').each(function () {
var nbPage = 0;
if ($(this).attr('id') == 'pagination_next')
nbPage = parseInt($('#pagination li.current').children().html())+ 1;
else if ($(this).attr('id') == 'pagination_previous')
nbPage = parseInt($('#pagination li.current').children().html())- 1;

$(this).children().click(function () {
if (nbPage == 0)
p = parseInt($(this).html()) + parseInt(nbPage);
else
p = nbPage;
p = '&p='+ p;
reloadContent(p);
nbPage = 0;
return false;
});
});
}

vit2010

#7
Доброго времени суток!
Меня так же этот вопрос интересует, можно увидеть отредактирванный, рабочий фрагмент?
Думаю, что это важно: используется Infinite Scroll Premium v1.1.0.
Спасибо.

vit2010

#8
Одним из решений добавления номера страницы в Title оказался вариант редактирования header.tpl своей темы. Можно задать это значение:
<title>{$meta_title|escape:'html':'UTF-8'|truncate:120:"":false}{if isset($smarty.get.p) && $smarty.get.p} ({$smarty.get.p}){/if}</title>
Так же если у вас есть модули, у которых такие же проблемы (например нумерация страниц происходит путем ....html?ipage=n)можно дополнить:
<title>{$meta_title|escape:'html':'UTF-8'|truncate:120:"":false}{if isset($smarty.get.p) && $smarty.get.p} ({$smarty.get.p}){elseif isset($smarty.get.iPage) && $smarty.get.iPage} ({$smarty.get.iPage}){/if}</title>
и т.д.
Только я не понял как это исправить у такого варианта:
.../category/2 ,  .../category/3 ... .../category/n
Может кот-нибудь поделится опытом?
Спасибо.

Adik

#9
Тут на форуме уже написано много решений. Такое например, переопределить класс /override/classes/Meta.php
<?php

class Meta extends MetaCore
{
   public static function
getCategoryMetas($id_category, $id_lang, $page_name, $title = '')
   {
       
$metas = MetaCore::getCategoryMetas($id_category, $id_lang, $page_name, $title);
       
       if ((int)
Tools::getValue('p') > 1) {
           
$metas['meta_title'] .= ' (page '.(int)Tools::getValue('p').')';
       }
       
       return
$metas;
   }
}

или добавить а модуль многоуровневой навигации номер страниц $p
'meta_title' => $meta_title . ' | ' . $this->l('page') . ' ' . $p .  ' - ' . Configuration::get('PS_SHOP_NAME'),

vit2010

Цитата: Adik от 31 июля 2020, 11:54:51
Тут на форуме уже написано много решений. Такое например, переопределить класс /override/classes/Meta.php
<?php

class Meta extends MetaCore
{
   public static function
getCategoryMetas($id_category, $id_lang, $page_name, $title = '')
   {
       
$metas = MetaCore::getCategoryMetas($id_category, $id_lang, $page_name, $title);
       
       if ((int)
Tools::getValue('p') > 1) {
           
$metas['meta_title'] .= ' (page '.(int)Tools::getValue('p').')';
       }
       
       return
$metas;
   }
}

или добавить а модуль многоуровневой навигации номер страниц $p
'meta_title' => $meta_title . ' | ' . $this->l('page') . ' ' . $p .  ' - ' . Configuration::get('PS_SHOP_NAME'),

Понял. Спасибо!

vit2010

#11
Всем доброго времени суток.
Созрел очередной вопрос:
Для добавления в Title у страницы с URL http://.../?p=2
в тег <title> написан так: <title>{$meta_title|escape:'html':'UTF-8'|truncate:120:"":false}{if isset($smarty.get.p) && $smarty.get.p} ({$smarty.get.p}){/if}</title>
А как написать <title>, если у страницы URL http://.../?p=2&frat=2
?

И еще вопрос:
Если в header.tpl указывать вручную настройки Title и Description (в начале этого файла не комментировать Title и Description) для каждой группы страниц (product, category, ...)
Как написать проверку прописанного ранее Title и Description, чтоб заменить эти параметры? Чтоб анализатор брал не основные Title и Description, прописанные в начале header.tpl, а ниже указанные Title и Description.

Спасибо.

PrestaMan

Если у вас уже добавляет p, то можете также добавить и frat и оснальные переемнные url.
{if isset($smarty.get.X) && $smarty.get.X} ({$smarty.get.X}){/if}
Вообще бесполезная работы. Добавит скрипт цифры 1,2.. от этого Title и Description уникальными не станут.
Проще канонический url добвить. Или действительно написать анализатор Title и Description с дополнением выбранныз фильтров, названий а не цифр.
Если у вас Title и Description определены в шаблоне, а не формируются в контроллере, то изменить их можно через javascript.
Цитата: VoyDi от 25 октября 2019, 13:47:57
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Mr.Sen


vit2010