Тайтлы и описание для страниц пагинации в каталоге

  • 35 Ответов
  • 8172 Просмотров

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

*

ELLE

  • Support Team
  • *****
  • 4578
  • 867
Poznakomlus, в данном случае можно и через API, думаю разницы особой нет.

Но, чем мне еще нравится первый вариант $_SERVER['REQUEST_URI'] - можно задавать любые урлы, например, использую для вывода разного контента (или оставляю описание только на главной странице) в блоге, т.е. при переходе на вторую, третью и т.д. стр-цы пагинации у меня либо вообще нет описание или оно разное для всех этих страниц.

+ также можно сделать тайтлы (только я еще не пробовала) в зависимости от страницы ?limitstart=20 или ?limitstart=40 и т.д. можно сделать - "Каталог магазина - страница 2", "Каталог магазина - страница 3" - уже уникально будет, а если еще подумать, то их вообще можно сделать входными;и вместо того чтобы болтаться в "соплях", они нам еще и траф будут приносить ;)

Но это так - мысли в слух))
« Последнее редактирование: 12.08.2013, 18:38:33 от ELLE »

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Варианты пагинации
« Ответ #1 : 19.08.2012, 03:31:07 »
Цитировать
+ также можно сделать тайтлы (только я еще не пробовала)
Где-то на форуме уже писал решение. Долго искал не нашел и за пару минут написал вновь
Код: 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);
}
?>
Не проверял, но должно работать на уровне шаблона к примеру

*

ELLE

  • Support Team
  • *****
  • 4578
  • 867
Варианты пагинации
« Ответ #2 : 19.08.2012, 03:41:53 »
ага, оно.

Но я больше склоняюсь к ручному варианту. Пример можно посмотреть на http://www.wildberries.ru/ если пройтись по пагинации какого-либо раздела. Может дополнение такое попросить у разработчиков, через админку все же удобнее.

Где-то на форуме уже писал решение. Долго искал не нашел и за пару минут написал вновь
Да уж...в конец за*рали форум, я только по +ам и ориентируюсь - где-какие решения даешь.

*

andrea2509

  • Осваиваюсь на форуме
  • ***
  • 108
  • 5
ELLE

а куда этот код вставить, подскажите пожалуйста непрограмисту

<?php if ($_SERVER['REQUEST_URI'] == '/katalog?start=24') { $document->setTitle('Мой тайтл');


*

andrea2509

  • Осваиваюсь на форуме
  • ***
  • 108
  • 5
А этот тогда куда? :)

<?php $limit = JRequest::getInt('limitstart',0);if ($limit > 0){$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);}?>


*

Vasiliy111

  • Давно я тут
  • ****
  • 206
  • 5
использовал первый код, все работает (к description и title прибавляется - страница 1). Но есть небольшое несоответствие, счет начинается с первой страницы в то время когда я нахожусь на второй, то есть нахожусь на странице 2 в  title пишет - страница 1, а нужно - страница 2.

пробовал менять в коде 0 на 1 не получилось решить.

*

dmitry_stas

  • Профи
  • ********
  • 9665
  • 930
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Vasiliy111

  • Давно я тут
  • ****
  • 206
  • 5
Цитировать
$numpage = $limit / 10 + 1;
работает! ^-^

*

graf

  • Осваиваюсь на форуме
  • ***
  • 193
  • 0
<?php if ($_SERVER['REQUEST_URI'] == '/katalog?start=24') { $document->setTitle('Мой тайтл');}?>
а как правильно вставить в данный кусок код чтобы можно было прописать в ручную description и keywords? например  (...description('мое описание'))


*

graf

  • Осваиваюсь на форуме
  • ***
  • 193
  • 0

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Код: php-brief
<?php
if ($_SERVER['REQUEST_URI'] == '/katalog?start=24')
{
$doc->setTitle('Мой тайтл');
$doc->setMetadata('keywords', 'Ключевые слова');
$doc->setMetadata('description', 'Описание');
}
?>
-----------------------------------------------------------------------------------------------
Так можно в блоге категории или категории прописать заголовки
Код: php-brief
<?php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
if ($app->input->getInt('limitstart',0))
 {
    $meTitle = $doc->getTitle().' / '.$this->pagination->getPagesCounter();
    $doc->setTitle($meTitle);
 }
?>

*

kurandin

  • Осваиваюсь на форуме
  • ***
  • 159
  • 5
Если бы это оформит плагином - цены бы не было!

*

ELLE

  • Support Team
  • *****
  • 4578
  • 867
Если бы это оформит плагином - цены бы не было!
угу, кто бы еще оформил ))
аналоги есть, но все они больно тяжелые и имеют излишний функционал

если сохранять пользовательские значения title, то только в БД, а это значит что потребуется написание хоть и простенького, но компонента, + доп. нагрузка будет - запрос туда\сюда, обработка ну и все равно утяжелит
насчет плагина не уверена.
плагином можно только пронумеровать страницы - см. прим. #1
« Последнее редактирование: 10.05.2013, 02:35:12 от ELLE »

*

skyrec

  • Давно я тут
  • ****
  • 383
  • 10
  • Люблю я детей !!!
Может я чего то не понимаю, а вобщем то зачем все это ? Можно же указать в вебмастере страницы пагинации, они вроде все хорошо понимают.

*

Msvirin

  • Новичок
  • *
  • 1
  • 0
Доброго времени суток! Помоги пожалуйста, не могу разобраться куда именно вставлять приведенные коды, вставляю в шаблон главной страницы, сайт вырубается, напишите более подробно что куда вставлять  :'(, второй день ковыряю, нечего не получается :(, в программирование я не селен.
сайт: salon-keramiki.ru, Joomla! 2.5.9 Stable + JoomShopping 3.14.0
« Последнее редактирование: 07.06.2013, 15:31:59 от Msvirin »

*

zemelea

  • Осваиваюсь на форуме
  • ***
  • 48
  • 0
После прочтения данной темы осуществил подобное, но пока что сделал чтоб описание категории было доступно только на первой странице, а начиная со второй к тайтлу добавляется " - Страница 2", " - Страница 3" и тд. В кейвордах и описании тоже самое. Минус в том, что если изменить количество выводов товаров на странице - то всё это поломается)). В планах сделать чтоб всё это регулировалось из админки и можно было для каждой страницы делать свое описание + свой тайтл и кейворды, и чтоб подсчет страниц автоматом осуществлялся ориентируясь на количество вывода товаров в определенной категории. Если доведу до конца, поделюсь наработками.

*

ELLE

  • Support Team
  • *****
  • 4578
  • 867
Да, расширения и так есть готовые...взять тот же sh404, видела отдельные плагины на JED, которые делают " - Страница 2", " - Страница 3"
Поищите, зачем велосипедить

http://extensions.joomla.org/extensions/site-management/seo-a-metadata/title-management
« Последнее редактирование: 12.08.2013, 18:38:15 от ELLE »

*

gurkin

  • Осваиваюсь на форуме
  • ***
  • 26
  • 4
Если пользователь меняет количество выводимого на страницу товара - вся арифметика ($numpage = $limit / 10 + 1;) вдребезги

Поэтому вытягиваем из настроек дж.шоппинга к-во товара и дальше по формуле

добавляем в list_products.php (именно добавляем в конец файла)

Код
<?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);

}?>

*

dmitry_stas

  • Профи
  • ********
  • 9665
  • 930
ну это больше нужно поисковикам, а не пользователям. наврядли пользователь заметит при изменении кол-ва товаров на странице, что в заголовке стало страница 2.5 :) но в целом поправки конечно верные. единственное что, зачем такой изысканный способ выдергивания кол-ва товаров на странице? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

gurkin

  • Осваиваюсь на форуме
  • ***
  • 26
  • 4
...единственное что, зачем такой изысканный способ выдергивания кол-ва товаров на странице? :)
буду рад, если научите, как сделать проще

*

dmitry_stas

  • Профи
  • ********
  • 9665
  • 930
Код
print_r($this->pagination_obj)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

kurandin

  • Осваиваюсь на форуме
  • ***
  • 159
  • 5
Если пользователь меняет количество выводимого на страницу товара - вся арифметика ($numpage = $limit / 10 + 1;) вдребезги

Поэтому вытягиваем из настроек дж.шоппинга к-во товара и дальше по формуле

добавляем в list_products.php (именно добавляем в конец файла)

Код
<?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);

}?>

как это сделать и для keywords и description?

*

raskolbas

  • Новичок
  • *
  • 8
  • 0
в index.php шаблона Joomla можно
вставил строчку <?php if ($_SERVER['REQUEST_URI'] == '/katalog?start=24') { $document->setTitle('Мой тайтл');}?> в /templates/rt_fresco/index.php но получаю ошибку: Call to a member function setTitle() on a non-object in.
Я так понимаю что не может найти функцию setTitle(). Подскажите, пожалуйста, как исправить?

*

gurkin

  • Осваиваюсь на форуме
  • ***
  • 26
  • 4
вставил строчку <?php if ($_SERVER['REQUEST_URI'] == '/katalog?start=24') { $document->setTitle('Мой тайтл');}?> в /templates/rt_fresco/index.php но получаю ошибку: Call to a member function setTitle() on a non-object in.
Я так понимаю что не может найти функцию setTitle(). Подскажите, пожалуйста, как исправить?

$doc->setTitle('Мой тайтл'); или $document->setTitle('Мой тайтл'); вот в чем вопрос

*

raskolbas

  • Новичок
  • *
  • 8
  • 0
$doc->setTitle('Мой тайтл'); или $document->setTitle('Мой тайтл'); вот в чем вопрос
не понял что сделать. у меня стоит $document->setTitle('Мой тайтл').
попробовал поменять на $doc->setTitle('Мой тайтл').
Ошибка та же:Call to a member function setTitle() on a non-object in...

*

raskolbas

  • Новичок
  • *
  • 8
  • 0
Надо вначале дописать  $document = JFactory::getDocument();
спасибо, помогло ошибка исчезла.

*

Sedoy

  • Support Team
  • *****
  • 910
  • 76
  • Интересно,в какой кодировке пишут врачи?
а для вертуя это решение подойдет?
Что б правильно задать вопрос - нужно знать на него ответ!
смотри FAQ по Joomla!
Где скачать шаблоны Joomla
Статьи и обзоры
Желаю Вам здоровья в личной жизни - живите долго и часто :)