Я пытался отладить это точно такая же проблема, и я нашел свой пост. К счастью, я придумал, как это сделать, с некоторой царапиной головы, Googling и поисками исходных файлов Kunena. Итак, вот ответ, если вы еще этого не поняли.
Есть две вещи, которые необходимо выполнить: Редактирование функции setTitle()
и редактирование языкового файла для компонента Kunena. Эту функцию можно найти в файле view.php
, присутствующего в следующей папке для Kunena 3.0.5 (последняя версия от 21 мая 2014 года):
YOUR_ROOT_DIR/public_html/libraries/kunena/view.php
Затем измените функцию setTitle()
к содержанию вашего сердца. Играйте с ним, чтобы вы выглядели и чувствовали, что идете. Вот функция по умолчанию:
public function setTitle($title) {
if (!$this->state->get('embedded')) {
// Check for empty title and add site name if param is set
$title = strip_tags($title);
if ($this->app->getCfg('sitename_pagetitles', 0) == 1) {
$title = JText::sprintf('JPAGETITLE', $this->app->getCfg('sitename'), $this->config->board_title .' - '. $title);
} elseif ($this->app->getCfg('sitename_pagetitles', 0) == 2) {
$title = JText::sprintf('JPAGETITLE', $title .' - '. $this->config->board_title, $this->app->getCfg('sitename'));
} else {
// TODO: allow translations/overrides (also above)
$title = KunenaFactory::getConfig()->board_title .' :: '. $title;
}
$this->document->setTitle($title);
}
}
Теперь строки, которые должны быть отредактированы в предложении if-elseif-else
. Обратите внимание на hypen '-', добавляемый через конкатенацию. Для меня мне пришлось отредактировать часть elseif
. Функция sprintf
нуждается в двух аргументах, кроме «JPAGETITLE». Первый аргумент здесь - $title .' - '. $this->config->board_title
, который является переменной названия плюс название форума, как установлено в Kunena. Второй аргумент - $this->app->getCfg('sitename')
, который является вашим именем сайта. Там будет дополнительный hypen между аргументом 1 и 2. Таким образом, если мы имеем следующий сценарий:
$title = 'Random Page';
$this->config->board_title = 'Kunena Forums';
$this->app->getCfg('sitename') = 'Joomla Site';
Вы получите вывод, на основе этого кода:
Random Page - Kunena Forums - Joomla Site
я вместо этого модифицированного функция:
public function setTitle($title) {
if (!$this->state->get('embedded')) {
// Check for empty title and add site name if param is set
$title = strip_tags($title);
if ($this->app->getCfg('sitename_pagetitles', 0) == 1) {
$title = JText::sprintf('JPAGETITLE', $this->app->getCfg('sitename'), $this->config->board_title, $title);
} elseif ($this->app->getCfg('sitename_pagetitles', 0) == 2) {
$title = JText::sprintf('JPAGETITLE', $title, $this->config->board_title);//, $this->app->getCfg('sitename'));
} else {
// TODO: allow translations/overrides (also above)
$title = KunenaFactory::getConfig()->board_title .' :: '. $title;
}
$this->document->setTitle($title);
}
}
Итак, тот же самый пример даст мне:
Random Page - Kunena Forums
Кроме того, вы можете изменить текст по умолчанию, отображаемый на странице индексов форумов, то есть «индекс категории», что-то приятнее.Чтобы сделать это, вам нужно отредактировать файл языка по адресу:
YOUR_ROOT_DIR/public_html/components/com_kunena/language/en-GB/en-GB.com_kunena.views.ini
Здесь искать теги:
COM_KUNENA_VIEW_CATEGORY_DEFAULT="Topics in %s"
COM_KUNENA_VIEW_TOPICS_DEFAULT="Topic: %s"
COM_KUNENA_VIEW_CATEGORIES_DEFAULT="Category Index"
изменить текст к чему-то лучшему. Например, я полностью удалил «Тема:» и «Темы в» и заменил «Индекс категорий» на «Главная страница форумов». Так, в настоящее время на моих форумах главная страница, я вижу
Forums Home - My Website Forums
Редактировать другие строки в файле языка по своему вкусу и поиграться с функцией setTitle
.
В вашем случае, поскольку вы хотите удалить имя форума, удалите часть $this->config->board_title
в sprintf.
Отлично, спасибо. Я испытаю это в наши дни и дам вам сейчас;) – ataman79
Ваше решение работает отлично, спасибо еще раз)) – ataman79
Нет проблем. Рад, что смог помочь. –