Автор Тема: Как добавить номера страниц в title  (Прочитано 1272 раз)

24 Октябрь 2019, 14:47:52
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!

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

Спасибо!
24 Октябрь 2019, 16:30:38
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В теме/модулях находите фунцию javascript пагинации, в разных темах по разному называется, и добавляете
$('meta[name="title"]').attr('content', $('div.pagination select[name=n]').val());
24 Октябрь 2019, 19:25:33
Ответ #2
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно чуть подробней что искать?

Понял что в папке тема/модули предположу дальше blocklayered (это то что смог на гуглить) а там где?
24 Октябрь 2019, 19:59:07
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Если установлен blocklayered, тогда в папке модуля blocklayered.js.
25 Октябрь 2019, 10:50:33
Ответ #4
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в папке тема/модуль/блоклаеред такого файла нет, он есть в папке модули/ но не смог разобраться куда там вставлять
25 Октябрь 2019, 13:04:53
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
25 Октябрь 2019, 13:47:57
Ответ #6
  • Пользователь
  • **
  • Сообщений: 95
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если вас не затруднит  тыкните пальцем или вставьте:

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;
});
});
}
30 Июль 2020, 12:34:38
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток!
Меня так же этот вопрос интересует, можно увидеть отредактирванный, рабочий фрагмент?
Думаю, что это важно: используется Infinite Scroll Premium v1.1.0.
Спасибо.
31 Июль 2020, 07:23:38
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Одним из решений добавления номера страницы в 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
Может кот-нибудь поделится опытом?
Спасибо.
31 Июль 2020, 11:54:51
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Тут на форуме уже написано много решений. Такое например, переопределить класс /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'),
05 Август 2020, 12:10:23
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тут на форуме уже написано много решений. Такое например, переопределить класс /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'),

Понял. Спасибо!
06 Август 2020, 08:15:00
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем доброго времени суток.
Созрел очередной вопрос:
Для добавления в 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.

Спасибо.
06 Август 2020, 10:44:45
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Если у вас уже добавляет 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.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
06 Август 2020, 10:59:10
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
У вас Prestashop какой версии?
06 Август 2020, 11:00:39
Ответ #14
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля