Новости Joomla

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

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

  • Легенда
  • 13151
  • 1234 / 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

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

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

robert

  • Живу я здесь
  • 4974
  • 457 / 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

  • Легенда
  • 13151
  • 1234 / 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

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 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

  • Легенда
  • 13151
  • 1234 / 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 вашего шаблона жумлы
Спасибо - прекрасно работает :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Какой файл управляет выводом страницы для редактирования материалов с фронта?

Автор alnorton

Ответов: 2
Просмотров: 1919
Последний ответ 23.05.2024, 21:43:41
от alnorton
Хлебные крошки: вместо title сделать заголовок

Автор Zelyonkin

Ответов: 2
Просмотров: 804
Последний ответ 09.09.2022, 08:46:10
от Zelyonkin
Криво выводятся `title` & `data-original-title` в шаблоне

Автор Аня

Ответов: 2
Просмотров: 2218
Последний ответ 16.04.2022, 23:44:10
от onniby
Не могу понять где могу убрать Google карту со страницы

Автор itbc

Ответов: 2
Просмотров: 973
Последний ответ 18.11.2021, 13:12:34
от itbc
Непонятное отображение одной страницы сайта

Автор itbc

Ответов: 12
Просмотров: 1071
Последний ответ 14.12.2020, 13:42:32
от itbc