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

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Всем доброго!

Раньше до Джумлы 3.7.5 включительно, title страницы формировался в файле \libraries\joomla\document\renderer\html\head.php

Оригинальная переменная формировалась так:
Код
		$buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8'). '</title>' . $lnEnd;

На мультиязычном сайте я проблему формирования тайтлов на соответсвующем языке решил хаком
Код
		$buffer .= $tab . '<title>' . htmlspecialchars(JText::_($document->getTitle()), ENT_COMPAT, 'UTF-8'). '</title>' . $lnEnd;

В версии Джумлы 3.8.1 тайтл страницы формируется уже в файле \libraries\src\Document\Renderer\Html\HeadRenderer.php и такая фича уже не проходит :( Может какой новый параметр в API Джумлы вместо JText::_?
*

dmitry_stas

  • Легенда
  • 13125
  • 1232 / 8
Re: Использование JText в title страницы
« Ответ #1 : 11.10.2017, 11:57:20 »
не очень понимаю, зачем нужен хак ядра. в принципе не понимаю, а какую вы проблему решали на мультиязычном сайте? ее вроде как и нет, проблемы. у меня по крайней мере.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Re: Использование JText в title страницы
« Ответ #2 : 11.10.2017, 12:06:14 »
В $document->getTitle() загружается языковая константа, поэтому её и нужно вывести через JText

P.S. Если есть вопрос - нужен ответ. Если нет предложения - зачем занимать свое и чужое время.
*

dmitry_stas

  • Легенда
  • 13125
  • 1232 / 8
Re: Использование JText в title страницы
« Ответ #3 : 11.10.2017, 12:12:05 »
там где она загружается, сразу и делайте JText. зачем это делать в ядре? делайте это в шаблоне например.

P.S. кхм... а понять на что нужно отвечать нужно? или это лишнее, надо ответить абы ответить? или тут всем по умолчанию должны быть известны ваши мысли и желания, что вы делаете и чего хотите добиться?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
Re: Использование JText в title страницы
« Ответ #4 : 11.10.2017, 12:14:39 »
В $document->getTitle() загружается языковая константа, поэтому её и нужно вывести через JText

P.S. Если есть вопрос - нужен ответ. Если нет предложения - зачем занимать свое и чужое время.
А $document->setTitle() для чего? Указание на тупость вопроса - это тоже ответ.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Re: Использование JText в title страницы
« Ответ #5 : 11.10.2017, 12:15:29 »
в шаблоне загружается ВЕСЬ head полностью. Насколько я понял ваше предложение, убить загрузку переменной, формирующей тайтл, а выводить его вручную уже в шаблоне?
*

dmitry_stas

  • Легенда
  • 13125
  • 1232 / 8
Re: Использование JText в title страницы
« Ответ #6 : 11.10.2017, 12:17:27 »
не надо ничего и никого "убивать". просто установите сразу правильный, какой вам надо, и все. JFactory::getDocument()->setTitle(тут тайтл) вы можете сделать где угодно. ну практически где угодно. в шаблоне так точно можете.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Re: Использование JText в title страницы
« Ответ #7 : 11.10.2017, 12:34:38 »
Наверное, нужно было дать более полное объяснение ситуации. Сорри :)

Чтобы решить проблему огромного количесва меню для большого количесва языков, я кастомизировал модуль меню. Теперь у меня одно меню на все языки. В материалах (article), тайтлы выводятся нормально, поскольку используют стандартный механизм джумлы, а вот в меню сейчас, после обновления, тоже используется стандартный механизм, который получает значение из названия меню. Но… В названии меню у меня стоят языковые константы, что и позволяет использовать одно меню на все языки. Вот они и выводятся с тайтлах.

Именно поэтому и была необходимость хакать ядро. Или можеть есть другой путь?

Как это выглядит сейчас, можно посмотреть здесь.
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
Re: Использование JText в title страницы
« Ответ #8 : 11.10.2017, 12:52:31 »
Не знаю, что вы сделали с модулем меню, но раз есть языковая константа, то должны быть ее варианты значений в разных языках. Загрузите нужную языковую библиотеку и выводите нужный перевод.
Код
JFactory::getLanguage()->load(здесь_нужная_языковая_библиотека);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13125
  • 1232 / 8
Re: Использование JText в title страницы
« Ответ #9 : 11.10.2017, 12:52:43 »
попробуйте прям в модуле меню

Код
$document = JFactory::getDocument();
$document->setTitle(JText::_($document->getTitle()));
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Re: Использование JText в title страницы
« Ответ #10 : 11.10.2017, 14:35:29 »
попробуйте прям в модуле меню
Единственное нормальное решение, править именно в HeadRenderer.php :( поскольку, тогда и в админке и везде автоматом правильные тайтлы. Кроме того, проблема усугубляется использованием конструктора контента SEBLOD, который тоже добавляет кучу своих шаблонов.
*

dmitry_stas

  • Легенда
  • 13125
  • 1232 / 8
Re: Использование JText в title страницы
« Ответ #11 : 11.10.2017, 15:08:28 »
если надо везде - сделайте тоже самое в index.php вашего шаблона жумлы
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Mega-e

  • Захожу иногда
  • 53
  • 2 / 0
  • artinweb.biz
Re: Использование JText в title страницы
« Ответ #12 : 11.10.2017, 16:28:11 »
если надо везде - сделайте тоже самое в index.php вашего шаблона жумлы
Спасибо - прекрасно работает :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разбивка на страницы

Автор Agoniya

Ответов: 2
Просмотров: 162
Последний ответ 23.08.2020, 10:25:42
от effrit
Редактирование шаблона с главной страницы сайта

Автор Illarya

Ответов: 2
Просмотров: 363
Последний ответ 11.10.2019, 19:18:26
от Illarya
Как программно получить весь документ страницы?

Автор ut4utc

Ответов: 13
Просмотров: 637
Последний ответ 10.09.2019, 19:07:14
от icom
Вывод заголовка страницы в шаблоне

Автор boony

Ответов: 10
Просмотров: 5289
Последний ответ 15.01.2019, 12:38:22
от rsn
В title добавляются символы и цифры

Автор angelo4ek-001

Ответов: 6
Просмотров: 494
Последний ответ 09.12.2018, 18:10:44
от lexxbry