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

Здравствуйте!
Помогите правильно сделать изменение заголовка окна броузера (тег "Title"), сохранив динамичность, т.е. заголовок = "название_сайта" - "текущее_местоположение".
Постараюсь как можно подробнее описать ситуацию.
Использую Joomla 1.0.10 Paranoia и JoomFish 1.7
Почитав форум, удалось самому сделать многи вещи, за что всем большое спасибо! - так лирическое отступление.

На сайте 2 языка русский и английский. Весь разговор - про смену языка.
Картинки у меня меняются следующем образом:
Код
/images/<?php echo $mosConfig_lang;?>/

Логика на самой странице index.php и в файле footer.php. отрабатывает нормально:
Код
<?php if (@$mosConfig_lang == english) act; else act1;?>

но такой прием у меня не прошел в файле frontend.php, там пришлось делать следующую вещь для смены значения тега "Title" (практически в самом начале файла):
Код
if (@$lang == en) $mosConfig_sitename = 'English_NAME';
else $mosConfig_sitename = 'Русское_Название';

Тут и начинается самое интересное:
Все в принципе работает - картинки, название и прочее содержимое нормально меняется при смене языка, НО при исползовании модуля поиска (Search) при работе на английском языке сбивается только название сайта - на русское, все остальное работает нормально. Такая же вещь происходит если выйти с сайта в английской языке и снова зайти на сайт.

Помогите грамотно реализовать смену тега "Title", только, пожалуйста, как для хомячков - разжевывая, т.к. в web-программировании я новичок.

« Последнее редактирование: 23.11.2006, 01:06:36 от Practic »
*

Vladzimir

  • Захожу иногда
  • 107
  • 22 / 1
  • В очередь! в очередь! День Сурка © М.Борзыкин
 :D
В файле joomla.php строка 490 заменить на
   
Код
function setPageTitle( $title=null ) {
global $mosConfig_lang, $iso_client_lang;
if (@$GLOBALS['mosConfig_pagetitles']) {
$title = trim( htmlspecialchars( $title ) );
$title = stripslashes($title);
$this->_head['title'] = $title ? $title . ' - '. $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang] : $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang];
}
}

Затем в конфиге добавляеш mosConfig_sitename_ru и mosConfig_sitename_второй язык
Всё ;D

не работает что-то. титлы вообще пропали. joomla 1.0.10

Vladzimir, спасибо у меня вроде все сработало.
Затем в конфиге добавляеш mosConfig_sitename_ru и mosConfig_sitename_второй язык
- это имеется ввиду файл configuration.php?

Я в него вставил эти параметры, но есть определенная проблема: если менять что-то в настройках сайта через админку, то Джумла мои параметры стирает (я так понимаю она переписывает файл полностью). Я пока не нашел ничего лучше как хранить копию файла и из нее повторно вставлять мои параметры в "боевой" файл.

Есть ли более изящное решение?

пробовал по всякому.. у меня не получаеться ничего..
if (@$lang == en) $mosConfig_sitename = 'English_NAME';
else $mosConfig_sitename = 'Русское_Название';
не рботает =((

Поджнимем тему на счет изменения Title при смене языка.Перепробовал все.

При смене этого кода:


function setPageTitle( $title=null ) {
   global $mosConfig_lang, $iso_client_lang;
      if (@$GLOBALS['mosConfig_pagetitles']) {
         $title = trim( htmlspecialchars( $title ) );
         $title = stripslashes($title);
         $this->_head['title'] = $title ? $title . ' - '. $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang] : $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang];
      }
   }


и замены в configuration.php

mosConfig_sitename_ru и mosConfig_sitename_en     


Ошибки!!!
Ничего не получается.
Может можно как-нибудь добавить в админку при вводе титла несколько полей, для языков, или может есьть какой-нибудь другой выход???
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Tommy, вот тут еще подробно описывали - http://joomlaforum.ru/index.php/topic,2993.0.html
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

Весь форум о JoomFish прочитал вдоль и поперек.

Не работает, все что здесь пишут, не работает.

Даже когда в файле configuration.php пишу выбор языка (2-е переменные ru и en)
то в титле все равно каракуля одна на 2 языка, ничего не меняется.

Вот здеся: ??? ...>>>

function setPageTitle( $title=null ) {
   global $mosConfig_lang, $iso_client_lang;
      if (@$GLOBALS['mosConfig_pagetitles']) {
         $title = trim( htmlspecialchars( $title ) );
         $title = stripslashes($title);
         $this->_head['title'] = $title ? $title . ' - '. $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang] : $GLOBALS['mosConfig_sitename'.'_'.$iso_client_lang];
      }
   }


...>>> 

'mosConfig_sitename'.'_'.$iso_client_lang     а эта $iso_client_lang ТОЧНО  RU или EN??? может другие переменные?

Залить что-ли на сервер и написать тут пароли???
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Вот это решение у меня работает:
в файле configuration.php коментируем $mosConfig_sitename и прописываем такой код
if (@$lang == en) $mosConfig_sitename = 'Joomla!';
else $mosConfig_sitename = 'Жумла!';
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

Именно комментируем или можно удалить?

а в файле joomla.php в includes/ что прописать?

И можно еще узнать, на каких версиях joomla и Fish  все это работает.
Пробовал на Мультилэнге 1,0,10   и Fish - 1,5 и 1,7

Вот это решение у меня работает:
в файле configuration.php коментируем $mosConfig_sitename и прописываем такой код
if (@$lang == en) $mosConfig_sitename = 'Joomla!';
else $mosConfig_sitename = 'Жумла!';

при вставке этого кода пишет ошибку:
Notice: Use of undefined constant en - assumed 'en' in v:\home\localhost\www\configuration.php on line 66

Вот  собственно 66 строка:

if (@$lang == en) $mosConfig_sitename = 'Joomla!';

Что не так? Но в титле меняет заголовок!

и еще ряд тут же рядом:
Warning: Cannot modify header information - headers already sent by (output started at v:\home\localhost\www\configuration.php:66) in v:\home\localhost\www\mambots\system\jfdatabase.systembot.php on line 158

on line 159

 on line 160

on line 227

on line 228

и т.д.
« Последнее редактирование: 26.02.2007, 17:07:09 от Tommy »
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
У меня работает на последних версиях движка и фиша, но вот незадача - работает только на главной странице, на прочих почему то неверно хватается определение языка и выдается все время русской написание.
При таком варианте:
if ($lang == ru)
    {$mosConfig_sitename = 'Жумла' ;}
elseif ($lang == en)
    {$mosConfig_sitename = 'Joomla' ;}
else
    {$mosConfig_sitename = 'Default Joomla';}
На прочих страницах выдается Default Joomla вне зависимости от языка, почему - пока не знаю :(
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

Чтобы не плодить новые темы решил написать здесь.
Проблема такая: при переходе в раздел с названием,содержащим символы латинского языка,в тэге <title> прописывается код символа,например "#355".
И,вместо "Numele Saitului - Noutăţi" получаем "Numele Saitului - Nout&amp;#259;&amp;#355;i"
В русском ещё веселее - только коды.:)
У кого-то бывало такое?
Если да - нашли решение?
Заранее спасибо.:)

И все таки... Как написать TITLE на 2-х языках ???    ????
*

Vladzimir

  • Захожу иногда
  • 107
  • 22 / 1
  • В очередь! в очередь! День Сурка © М.Борзыкин
Есть более простое решение
ставим JoomSef и на каждую ссылки прикручиваем свой тайтл и все
*

otshelnik

  • Захожу иногда
  • 116
  • 7 / 0
  • мы вместе!
Есть более простое решение
ставим JoomSef и на каждую ссылки прикручиваем свой тайтл и все
Подкинул бы ссылку на этот JoomSef.
А то и у меня не работает ни один из вариантов.
Ссылку нашел
http://joom.ru/component/option,com_remository/Itemid,52/func,fileinfo/id,161/
изучаю
« Последнее редактирование: 20.03.2007, 12:36:17 от otshelnik »
*

otshelnik

  • Захожу иногда
  • 116
  • 7 / 0
  • мы вместе!
Есть более простое решение
ставим JoomSef и на каждую ссылки прикручиваем свой тайтл и все
Владимир, за идею спасибо!
Но не получается много. Можешь помочь?

Цитировать
Проблема такая: при переходе в раздел с названием,содержащим символы латинского языка,в тэге <title> прописывается код символа,например "#355".
И,вместо "Numele Saitului - Noutăţi" получаем "Numele Saitului - Nout&amp;#259;&amp;#355;i"
Решил-таки проблемму.
Не без помощи другого сайта про "joomla"(публикация ссылок на другие ресурсы по идее запрещена).
Всё оказалось очень просто.
При формировании тэга <title> происходила лишняя замена символа "&" на "&amp;".
Где,как и почему до конца не разобрался(пока ещё изучаю Джумлу):).
Чтобы вывод происходил нормально достаточно произвести обратную замену:
Открываем "includes/joomla.php".
Ищем функцию setPageTitle.
Добавляем строчку
Код
$title=str_replace("&amp;","&",$title);
после строчки
Код
$title = stripslashes($title); 
*

Dutch

  • Глобальный модератор
  • 219
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
Просто вписываем перечень языков:

if (@$lang == ru) $mosConfig_sitename = 'Отель Панская гора';
if (@$lang == en) $mosConfig_sitename = 'Hotel Pan Moutan';
if (@$lang == pl) $mosConfig_sitename = 'Hotel Panska Gora';
if (@$lang == ua) $mosConfig_sitename = 'Готель Панська гора';

тогда работает!!!

Если вписываем дэфолтовое значение типа:
else $mosConfig_sitename = 'Готель Панська гора';

тогда не будет работать.

Итак рабочий вариант:
просто пересчитать все языки!!!
если языка нет (подставим иной другой язык не из списка) то тайтлов просто не будет.
Но этот вариант по крайне мере лучше и к тому же рабочий!
*

modstyle

  • Новичок
  • 6
  • 0 / 0
Здравствуйте!
Огромная просьба, напишите пожалуйста, что куда вставлять, я уже перепробовал много вариантов, но тайтл так и не меняется =(
Расжуйте, как для хомячка!
Заранее спасибо!
*

Dutch

  • Глобальный модератор
  • 219
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
есть 100% рабочий вариант.
примеры:
www.panska-gora.com.ua
www.magicline.com.ua

На днях повешу статью на джумлапортале.
плиз, немного терпения.
*

modstyle

  • Новичок
  • 6
  • 0 / 0
Так есть ответ на заданный вопрос?
*

sirko

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Так есть ответ на заданный вопрос?
Тот же вопрос.
Пробовал каждый из вариантов, предложенный в этой теме, title исчезает вообще...
Help!
*

modstyle

  • Новичок
  • 6
  • 0 / 0
Знающие! Помогите в этом вопросе! Пожалуйста! В данный момент этот вопрос актуален! ЗАранее огромное спасибо! !!!???!!!
*

modstyle

  • Новичок
  • 6
  • 0 / 0
Почему все забили на эту тему! Вопрос до сих пор актуален! Выручайте!

Чуваки!!!
Я думаю, что этот пост вам поможет: http://forum.joomla.org/index.php/topic,62827.0.html

Там написано и про Титл: TIP 3 - HOW TO LOAD SITE WIDE TITLE, META KEYWORDS & DESCRIPTION DEPENDING OF THE LANGUAGE FRONT-END SWITCH ?

Успехов!
*

sirko

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Ура! У меня этот метод работает.
Премного благодарен  :D
*

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Решение с сайта http://forum.joomla.org/index.php/topic,62827.0.html

1.Открываем includes/joomla.php file
комментируем строку

$this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ' - '. $title : $GLOBALS['mosConfig_sitename'];

и пишем вместо нее:
$this->_head['title'] = $title ? _SITENAME . ' - '. $title : $GLOBALS['mosConfig_sitename'];

2. В языковые файлы /language вставляем следующий код
define( '_SITENAME', 'Ваш заголовок сайта на данном языке' );
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как изменять title сайта при переключении языков (JoomFish)

Автор archibald07

Ответов: 4
Просмотров: 5264
Последний ответ 26.08.2013, 10:36:01
от Ejenie
[решено] JoomFish, как отключить автоопределение языка посетителя?

Автор dsolve

Ответов: 3
Просмотров: 6519
Последний ответ 18.07.2011, 07:25:21
от Лена)
Два языка в текстовом логотипе сайта

Автор aliaf

Ответов: 6
Просмотров: 3887
Последний ответ 29.04.2010, 23:17:35
от Pinot