Форум русской поддержки Joomla!® CMS
10.12.2016, 07:07:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 7167 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« : 19.08.2012, 00:56:26 »

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

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

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

Но это так - мысли в слух))
« Последнее редактирование: 12.08.2013, 16:38:33 от ELLE » Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #1 : 19.08.2012, 01:31:07 »

Цитировать
+ также можно сделать тайтлы (только я еще не пробовала)
Где-то на форуме уже писал решение. Долго искал не нашел и за пару минут написал вновь
Код
<?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);
}
?>
Не проверял, но должно работать на уровне шаблона к примеру
« Последнее редактирование: 19.11.2013, 12:05:38 от Fedor Vlasenko » Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #2 : 19.08.2012, 01:41:53 »

ага, оно.

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

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

Репутация: +5/-0
Offline Offline

Сообщений: 112


« Ответ #3 : 24.08.2012, 16:43:40 »

ELLE

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

<?php if ($_SERVER['REQUEST_URI'] == '/katalog?start=24') { $document->setTitle('Мой тайтл');
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #4 : 24.08.2012, 16:44:51 »

в index.php шаблона Joomla можно
Записан
andrea2509
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 112


« Ответ #5 : 24.08.2012, 16:50:33 »

А этот тогда куда? Azn

<?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);}?>
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #6 : 24.08.2012, 16:51:50 »

туда же.
надо выбрать один из вариантов
Записан
Vasiliy111
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 206


« Ответ #7 : 30.10.2012, 16:31:07 »

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

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

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #8 : 30.10.2012, 22:13:37 »

$numpage = $limit / 10 + 1;
Записан
Vasiliy111
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 206


« Ответ #9 : 30.10.2012, 22:55:42 »

Цитировать
$numpage = $limit / 10 + 1;
работает! Smiley
Записан
graf
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 198


« Ответ #10 : 10.02.2013, 00:57:58 »

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

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #11 : 10.02.2013, 01:15:25 »

http://docs.joomla.org/JDocument/setMetaData
Записан
graf
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 198


« Ответ #12 : 10.02.2013, 01:16:36 »

спасибо!
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #13 : 10.02.2013, 01:20:23 »

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

Репутация: +5/-0
Offline Offline

Сообщений: 161



« Ответ #14 : 10.05.2013, 00:19:32 »

Если бы это оформит плагином - цены бы не было!
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #15 : 10.05.2013, 00:26:21 »

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

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

Репутация: +10/-0
Offline Offline

Сообщений: 388


Люблю я детей !!!


« Ответ #16 : 10.05.2013, 02:09:36 »

Может я чего то не понимаю, а вобщем то зачем все это ? Можно же указать в вебмастере страницы пагинации, они вроде все хорошо понимают.
Записан
Msvirin
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #17 : 07.06.2013, 13:25:59 »

Доброго времени суток! Помоги пожалуйста, не могу разобраться куда именно вставлять приведенные коды, вставляю в шаблон главной страницы, сайт вырубается, напишите более подробно что куда вставлять  Cry, второй день ковыряю, нечего не получается Sad, в программирование я не селен.
сайт: salon-keramiki.ru, Joomla! 2.5.9 Stable + JoomShopping 3.14.0
« Последнее редактирование: 07.06.2013, 13:31:59 от Msvirin » Записан
zemelea
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45


« Ответ #18 : 26.06.2013, 02:24:54 »

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

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #19 : 26.06.2013, 02:39:53 »

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

http://extensions.joomla.org/extensions/site-management/seo-a-metadata/title-management
« Последнее редактирование: 12.08.2013, 16:38:15 от ELLE » Записан
gurkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 26


« Ответ #20 : 04.09.2013, 13:37:59 »

Если пользователь меняет количество выводимого на страницу товара - вся арифметика ($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
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #21 : 07.09.2013, 12:41:51 »

ну это больше нужно поисковикам, а не пользователям. наврядли пользователь заметит при изменении кол-ва товаров на странице, что в заголовке стало страница 2.5 Azn но в целом поправки конечно верные. единственное что, зачем такой изысканный способ выдергивания кол-ва товаров на странице? Azn
Записан
gurkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 26


« Ответ #22 : 09.09.2013, 12:02:25 »

...единственное что, зачем такой изысканный способ выдергивания кол-ва товаров на странице? Azn
буду рад, если научите, как сделать проще
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #23 : 09.09.2013, 13:13:20 »

Код:
print_r($this->pagination_obj)
Записан
kurandin
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 161



« Ответ #24 : 19.11.2013, 01:43:48 »

Если пользователь меняет количество выводимого на страницу товара - вся арифметика ($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
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #25 : 21.11.2013, 11:17:18 »

в 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
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 26


« Ответ #26 : 21.11.2013, 11:43:29 »

вставил строчку <?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
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #27 : 21.11.2013, 11:55:38 »

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

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #28 : 21.11.2013, 12:23:44 »

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

Репутация: +86/-10
Offline Offline

Пол: Мужской
Сообщений: 910


Интересно,в какой кодировке пишут врачи?


« Ответ #29 : 14.12.2013, 13:29:46 »

а для вертуя это решение подойдет?
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet