0 Пользователей и 1 Гость просматривают эту тему.
  • 61 Ответов
  • 14466 Просмотров
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
добавляем в list_products.php (именно добавляем в конец файла)
Код
<?php 
$limit = JRequest::getInt('limitstart',0);.........
}?>

Добавляю весь код, всёё работает....но вот при перелистывании страници, титл пропадает и страница становиться безымянная(
В декскрипшн добавляется текст.
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
подскажите, что то не хочет титл подставлять
Код
<?php 
$limit = JRequest::getInt('limitstart',0);
if ($limit > 0){
$document = & JFactory::getDocument();
$meTitle = $document->getTitle();
$desc = $document->getMetadata('description');

$selector = $this->product_count;
preg_match('|"selected">(\d*)|sei', $selector, $arr);

$numpage =  $limit / $arr[1] +1;
$titletext =' *** - страница '.$numpage;

$document->setTitle($meTitle.$titletext);
$document->setMetadata('description', $desc.$titletext);

}?>
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
разобрался
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
Цитировать
<?php
$limit = JRequest::getInt('limitstart',0);
if ($limit > 0){
$document = & JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');

$selector = $this->product_count;
preg_match('|"selected">(\d*)|sei', $selector, $arr);

$numpage =  $limit / $arr[1] +1;
$titletext =' *** - страница '.$numpage;

$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);

}?>

Если вставить этот код в list_products.php то описание добавляется только для навигации магазина, а если еще добавить в index.php то в навигации магазина будет двойное добавление, типа: мой тайтл - страница 2 -страница 2.
« Последнее редактирование: 24.07.2015, 19:08:25 от Vasiliy111 »
*

uicl

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Подскажите, пожалуйста, а как в этом варианте

Цитировать
<?php
$limit =  JFactory::getApplication()->input->getInt('limitstart', 0);
if ($limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = $limit / 10; //Здесь колличество материалов на странице 10
$titletext =' - страница '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
}
?>

можно сделать, чтобы вместо title выводился <h1> - Страница 2 (т.е. "Фотоаппараты - Страница 2", а не "Фотоаппараты - купить в интернет-магазине - Страница 2"), а meta description и meta keywords вообще убрать.
Вроде у того же Связного сделано именно так http://www.svyaznoy.ru/catalog/audiovideo/1732/page-2
*

Roinmana

  • Захожу иногда
  • 108
  • 2 / 0
Где-то на форуме уже писал решение. Долго искал не нашел и за пару минут написал вновь
Код: php
<?php 
$limit =  JFactory::getApplication()->input->getInt('limitstart', 0);
if ($limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = $limit / 10; //Здесь колличество материалов на странице 10
$titletext =' - страница '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
}
?>
Не проверял, но должно работать на уровне шаблона к примеру
Можно ли доработать код, что бы к заголовку страницы пагинации (включено отображение заголовка), который в H2 (class=subheading-category) также добавлялась "страница"?
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Так все работает $numpage = $limit / 5+1;
Но, если так, то после второй страницы все время подставляется "- страница 1" $numpage =  $limit / $arr[1] +1;
Подскажите, как исправить?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Регулярка здесь - не оптимальное решение: результат зависит от содержания и структуры текста.
Код
$limitstart =  JFactory::getApplication()->input->getInt('limitstart', 0);
$limit = JFactory::getApplication()->getUserStateFromRequest('jshoping.alllist.front.product.limit', 'limit', $jshopConfig->count_products_to_page);

if ($limitstart && $limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = ceil($limitstart / $limit);
$titletext =' - страница ' . $numpage;
$document->setTitle($mytitle . $titletext);
$document->setMetadata('description', $desc . $titletext);
}
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Регулярка здесь - не оптимальное решение: результат зависит от содержания и структуры текста.
Код
$limitstart =  JFactory::getApplication()->input->getInt('limitstart', 0);
$limit = JFactory::getApplication()->getUserStateFromRequest('jshoping.alllist.front.product.limit', 'limit', $jshopConfig->count_products_to_page);

if ($limitstart && $limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = ceil($limitstart / $limit);
$titletext =' - страница ' . $numpage;
$document->setTitle($mytitle . $titletext);
$document->setMetadata('description', $desc . $titletext);
}
СПС, а если это блог категории, то как правильно сделать запрос getUserStateFromRequest
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
list_products под товарами ругается на строку
Код
$document =  JFactory::getDocument();
Цитировать
Strict Standards: Only variables should be assigned by reference in .../list_products/list_products.php on line 29
Что это может быть?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
там вероятно символ & есть еще?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
там вероятно символ & есть еще?
Где там, в строке? Нет, я ее скопировал всю.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
символа & перед JFactory нет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Да, точно! Был &
Спасибо! Много тут кодов в теме написали разных. Вот так работает без ошибок
Код
<?php 
$limit = JRequest::getInt('limitstart',0);
if ($limit > 0){
$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');

$selector = $this->product_count;
preg_match('|"selected">(\d*)|sei', $selector, $arr);

$numpage =  $limit / $arr[1] +1;
$titletext ='. Страница '.$numpage;

$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);

}?>
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Привет. Перестал работать выше указанный код, предполагаю, из-за перехода на PHP 7.3
Цитировать
Warning: preg_match(): The /e modifier is no longer supported, use preg_replace_callback instead in
ругается на это
Код
preg_match('|"selected">(\d*)|sei', $selector, $arr);
Помогите поправить, кто в этом разбирается.
« Последнее редактирование: 10.07.2019, 14:15:31 от Bozhkov2 »
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Или это только у меня ошибка? И вопрос частный, а не общий?
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
preg_match('|"selected">(\d*)|sei', $selector, $arr);
попробуйте заменить на
Код
preg_match('|"selected">(\d*)|si', $selector, $arr);
Флаг e (судя по всему) больше не поддерживается. Но, как видно из кода, он там и не нужен.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Гениально! Спасибо!
*

Alti-R

  • Новичок
  • 9
  • 0 / 0
Да, точно! Был &
Спасибо! Много тут кодов в теме написали разных. Вот так работает без ошибок
Код
<?php 
$limit = JRequest::getInt('limitstart',0);
if ($limit > 0){
$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');

$selector = $this->product_count;
preg_match('|"selected">(\d*)|sei', $selector, $arr);

$numpage =  $limit / $arr[1] +1;
$titletext ='. Страница '.$numpage;

$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);

}?>

Добрый день, может я где-то пропустил, но так и не понял в какой файл нужно вставлять данный код?
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
добавляем в list_products.php (именно добавляем в конец файла)
Да, таки пропустили
*

Alti-R

  • Новичок
  • 9
  • 0 / 0
Да, таки пропустили
А в какой папке лежит этот файл? Если тут site.ru/public_html/components/com_jshopping/templates/тема/list_products/list_products.php, то данный код вообще не срабатывает. Вставляю в index.php шаблона - срабатывает криво, а именно на всех страницах пагинации добавляет в title ". Страница 1" и неважно какая на самом деле по счету страница - везде пишет Страница 1.
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Если тут site.ru/public_html/components/com_jshopping/templates/тема/list_products/list_products.php
Да, именно сюда.
Если не работает, то могу предположить, что или криво вставляете, или какая-то древняя версия  магазина.
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
И пост #46 данной темы не пропустите...
Вот исправленный код
Цитировать
<?php
$limit = JRequest::getInt('limitstart',0);
if ($limit > 0){
$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');

$selector = $this->product_count;
preg_match('|"selected">(\d*)|si', $selector, $arr);

$numpage =  $limit / $arr[1] +1;
$titletext ='. Страница '.$numpage;

$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);

}?>
*

Alti-R

  • Новичок
  • 9
  • 0 / 0
Да, именно сюда.
Если не работает, то могу предположить, что или криво вставляете, или какая-то древняя версия  магазина.

Пробовал вставлять код в конце файла и до, и после тега </table>, пробовал вставлять поочередно оба варианта данного кода. Не работает, title не меняется. Версия магазина Version 4.6.1. Единственное что срабатывает - это тот вариант, который привели в начале этой ветки, в index.php:
 
<?php
$limit =  JFactory::getApplication()->input->getInt('limitstart', 0);
if ($limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = $limit / 10+1; //Здесь колличество материалов на странице 10
$titletext =' - страница '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
}
?>

Но если поменять количество товаров на странице, то получается что-то вроде " - страница 2.344444"
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
И пост #46 данной темы не пропустите...
Вот исправленный код
Всем привет.
А как можно проверять сколько товара в категории. А то если примером ввести ?start=16000 а товара столько нету то покажет первую страницу но в тайтле будет страница 401 у меня примером. Но такой нету просто. Можно как то проверять есть или нету столько товара ?
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Можно как то проверять есть или нету столько товара ?
В каком месте проверять надо? В макете или в модели/представлении? На каком этапе?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
<?php
$limit =  JFactory::getApplication()->input->getInt('limitstart', 0);
if ($limit){
$document =  JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = $limit / 10+1; //Здесь колличество материалов на странице 10
$titletext =' - страница '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
}
?>
Я этот код вставил в list_products.php
*

sergeytolkachyov

  • Захожу иногда
  • 161
  • 17 / 0
  • @sergeytolkachyov https://web-tolk.ru
Есть плагин генерации тайтлов и мета по формуле. Там же есть добавление суффиксов "- стр. N" для страниц пагинации
https://web-tolk.ru/dev/joomla-plugins/wt-seo-meta-templates.html
*

sergeytolkachyov

  • Захожу иногда
  • 161
  • 17 / 0
  • @sergeytolkachyov https://web-tolk.ru
Плагин WT Seo Meta templates умеет работать с пагинацией без вмешательства в код
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Кстати, кто обеспокоен тайтлами пагинации, не забудьте и про пагинацию отзывов в товаре, у кого их много. Там автоматом разбивается по 20 отзывов и вторая страница аналогична первой, со всем описанием товара. Бред конечно полный.
Я сделал так https://kievdah.com.ua/metallocerepica/metallocherepitsa-arcelormittal/classic-arcelor-0-50-pema-zn275.html#comments
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Увеличение страниц 404

Автор diana1975

Ответов: 2
Просмотров: 1391
Последний ответ 12.04.2021, 11:08:05
от Mick_20
Вопрос по оптимизации страниц магазина

Автор dron

Ответов: 6
Просмотров: 1446
Последний ответ 21.01.2020, 10:30:00
от dron
Вывод описания категории только на первой странице пагинации

Автор rmnk

Ответов: 10
Просмотров: 4528
Последний ответ 06.12.2018, 16:46:44
от effrit
Разные тайтлы в выдаче гуглом в одной категории

Автор buto

Ответов: 4
Просмотров: 1239
Последний ответ 13.03.2015, 12:15:46
от dmitry_stas
Глобальное изменение URL страниц

Автор neonox

Ответов: 8
Просмотров: 1435
Последний ответ 28.08.2014, 16:49:29
от dmitry_stas