description для страницы тега 2.X

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Всем привет. Столкнулся с такой проблемой. На сайте 3 типа контента и 100500 тегов. Появилась необходимость для тегов добавить description, так как иначе получается 100500 страниц с одинаковым мета-описанием.

Что я пытаюсь сделать. В файле templates/шаблон/controllers/tags/search.tpl.php в самом начале добавил строку
Код PHP:
  1. $this->setPageDescription(sprintf($tag));
Теперь description содержит в себе сам тег.

Если сделать так
Код PHP:
  1. $this->setPageDescription(sprintf($tag, 'какой-то текст'));
то ничего не меняется. Но если сделать так

Код PHP:
  1. $this->setPageDescription(sprintf('какой-то текст'));
то description содержит текст "какой-то текст", то же самое, если сделать так
Код PHP:
  1. $this->setPageDescription(sprintf('какой-то текст', $tag));
Т.е. вот этот sprintf выводит только первое значение почему-то. Перерыл весь интернет - везде пишут, что в sprintf можно выводить много значений через запятую. Пробовал "какой-то текст" добавлять через переменную - не помогает, все равно выводит только значение первой переменной.

Как можно решить эту проблему?

Также интересно, можно ли для каждого типа контента вывести свой "какой-то текст"? Понятно, что можно через if-else, но как определить тип контента в этом случае?

Спасибо.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Чудо произойдёт только если так
Код PHP:
  1. $this->setPageDescription(sprintf('какой-то текст о теге %s', $tag));
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Loadырь:
Чудо произойдёт
Вы волшебник!)))

Спасибо огромное! Весь день сегодня ломал голову, а дело в этой закорючке))
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Специально для вас, акция выходного дня:
Код PHP:
  1. $this->setPageDescription(sprintf('какой-то текст о типе контента %s и о теге %s', $ctype_name, $tag));
при этом $ctype_name должна быть объявлена.
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3090
Такс...еще чуть чуть и прикрутите админку к этому делу)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Loadырь:
Специально для вас, акция выходного дня
Огромнейшее спасибо! Но я немного иначе сделал, сам разобрался))

Код PHP:
  1. if ($ctype['name']=='posts'){
  2. $pre='первая часть текста для постов';
  3. $pos='вторая часть текста для постов ';
  4. }elseif($ctype['name']=='news'){
  5. $pre='первая часть текста для новостей';
  6. $pos='вторая часть текста для новостей';
  7. }elseif($ctype['name']=='articles'){
  8. $pre='первая часть текста для статей';
  9. $pos='вторая часть текста для статей';
  10. }else{
  11. $pre='первая часть текста для остальных типов контента';
  12. $pos='первая часть текста для остальных типов контента';
  13. }
  14.  
  15. $this->setPageDescription(sprintf('%s %s %s %s', $pre, $tag, $pos, $tag));
Выводится так: первая часть текста тег вторая часть текста тег

Теперь красиво всё)))

Loadырь, спасибо еще раз. Вопрос решен, тему закрываю.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: