Изменить Title Joomla (в т.ч. главной страницы)

Зачастую по разным, порой не выявленным причинам тайтлы страниц сайта на Joomla приобретают не вполне логичный вид. А именно на главной в тайтле только название сайта, а на остальных страницах только название страницы.

Решение.
Во-первых будем решать проблему редактируя только код шаблона сайта.
А именно поместим в блок head код:

<?php
$document 	= & JFactory::getDocument();
$config 	= & JFactory::getConfig();
$curtitle = $document->title.' - '.$config->getValue('sitename');
$curtitle = html_entity_decode($curtitle,ENT_QUOTES, 'utf-8');
$document->setTitle( $curtitle );
?>

Но как оказывается это решение на 99% так как на главной странице тайтл принимает вид: Название сайта — Название сайта.
Иправляем с помощью условий публикации модулей в Joomla:

<?php
if(!$tmpTools->isFrontPage()) :
$document 	= & JFactory::getDocument();
$config 	= & JFactory::getConfig();
$curtitle = $document->title.' - '.$config->getValue('sitename');
$curtitle = html_entity_decode($curtitle,ENT_QUOTES, 'utf-8');
$document->setTitle( $curtitle );
endif;
?>

Важное уточнение:
В условии на главную страницу используется функция isFrontPage(), которая, например, входит в составт стандартного шаблона JA_PURITY и представляет из себя следующее:

function isFrontPage(){
    return (JRequest::getCmd( 'view' ) == 'frontpage') ;
}

Поэтому проверять главную страницу в ее отсутствии можно так:

<?php
    if(JRequest::getCmd( 'view' ) != 'frontpage') {
    ...
}
?>

Теперь хак тайтла будет срабатывать на всех страницах кроме главной.
Также следует обратить внимание на настройку «Заголовок страницы» системных настроек главного пункта меню, текст в этом поле будет $document->title для главной страницы.

Также эту задачу можно решить без вмешательства в какой-либо код, а именно с помощью плагина Website Name. В нем вы сможете выбрать символ, используемый в качестве разделителя и порядок следования заголовков.

Комментариев: 25

  • 17.01.2011 denslav:

    О Website Name, я его установил не сайт, как менять название главной страницы?

    • 17.01.2011 Кирилл:

      Ах ну да, сразу не догадался.

      Вобщем этот плагин сделан лишь для того чтобы выводить название сайта до или после названия страницы. Соответственно ответом на ваш вопрос будет скорее комментарий про Как убрать добро пожаловать на главную страницу в Joomla?, расположенный чуть выше.

  • 20.01.2011 Анатолий:

    Не получается. вот сайт каталог Пермских сайтов.

  • 10.02.2011 Евгений:

    Что-то ни одним способом не получается.

    Плагин включил, все настроил

    В файл шаблона вносил различные варианты изменений.

    Эффект тот же: на страницах статей — только их title

    в компоненте sobi2 название сайта — название записи

  • 14.05.2011 Евгений:

    как поменять title?

  • 09.07.2011 Иван:

    Так а можно ли на сайте, сделанном на джумла 1,5 поменять title только для главной страницы, без установки модуля, прям в коде?

    • 09.07.2011 Кирилл:

      Думаю можно, судя по тексту статьи можно попробовать так:

      <?php if (JRequest::getCmd( 'view' ) != 'frontpage') { $document = & JFactory::getDocument(); $config = & JFactory::getConfig(); $curtitle = 'Ваш заголовок для главной страницы' $document->setTitle( $curtitle ); } ?>

  • 02.10.2011 Longimanus:

    Вся статья неправильная.

    Чтобы и на главной было не название сайта, а название страницы, нужно зайти в менеджер Главного меню*, в пункт меню, соответствующий главной странице и сменить тип пункта меню с «Шаблон блога материалов на главной» на «Стандартный шаблон материала».

  • 28.12.2011 Victor:

    Спасибо, Кирилл! Коротко и ясно. Отличная статья...

  • 09.11.2013 Ольга:

    помогите, помогите люди добрые, как называется этот шаблон http://starkstrim.ru ??? Может кто знает, подскажите, все переискала не могу не как найти, очень понравился, не хочу все так как есть оставлять и еще, как сделать маштаб сайта или как правильно страницы, чтоб на любом разрешение экрана, сайт выглядел одинаково, чтоб что то не пряталось по за экран, а что то не морщилось сильно?


Добавление комментария:

 css.php