Новости 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 Гость просматривают эту тему.
  • 25 Ответов
  • 2272 Просмотров
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Недавний топик побудил меня подумать о стандартном выводе ошибок через файл шаблона error.php. В этой теме приведена ссылка на мануал, в котором, на мой взгляд, описан вредный хак, а не способ реализации: суть заключается в том, что при обращении к файлу error.php вызывается редирект на другую страницу с материалом и отдаётся заголовок с кодом 404. На мой взгляд, этот способ не только корявый в плане реализации, но его так же опасно использовать с точки зрения SEO. К тому же, он не позволяет вывести описание ошибки (потом попробуй угадай).

Признаться, мне было всегда проще сделать HTML версию страницы, чем динамически отображать шаблон с подключенными внешними ресурсами и модулями. После нескольких часов кодинга я разработал свой динамический метод вывода ошибок, который выводит все скрипты, стили, модули — рендерит шаблон через index.php. Хотелось бы поделиться им
« Последнее редактирование: 14.02.2016, 07:44:47 от Филипп Сорокин »
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #1 : 12.02.2016, 20:50:15 »
Мануал корявый
Роутер еще корявее - вот объясни мне, когда неверный URL ведет на
1) другую страничку (дубль)
2) перехватывается системой и доступен в менеджере перенаправлений
3) не перехватывается плагином перенаправлений но ведет на 404 от движка
4) вообще не видится и отдается ответ напрямую от nginx\apache
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #2 : 12.02.2016, 21:01:59 »
Внутри файла error.php можно получить и код ошибки (для дальнейшего формирования нужного хедера) и ее описание:
Код: php
$error_code = $this->error->getcode();
$error_description = htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8');

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #3 : 12.02.2016, 21:04:32 »
в случае возникновения
4) вообще не видится и отдается ответ напрямую от nginx\apache
вопрос уже не к J ))
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #4 : 12.02.2016, 21:24:57 »
в случае возникновения вопрос уже не к J ))
Почему?
Я же использую дефолтный .htaccess!
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #5 : 12.02.2016, 22:33:45 »
Цитировать
вообще не видится и отдается ответ напрямую от nginx\apache
Тоже с этим сталкивался: так и не понял причину.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #6 : 12.02.2016, 22:34:33 »
Тоже с этим не раз сталкивался: так и не понял причину.
Во-во.
Даешь глубокое исследование!
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #7 : 13.02.2016, 03:12:44 »
Вот и сама реализация:

(Удалено по причине потери актуальности)
« Последнее редактирование: 13.02.2016, 23:40:51 от Филипп Сорокин »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #8 : 13.02.2016, 17:17:28 »
Кстати, существуют ли способы отрендерить шаблон методами движка?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #9 : 13.02.2016, 23:37:37 »
Кстати, существуют ли способы отрендерить шаблон методами движка?

Придётся самому отвечать на свой вопрос :)

Удалось здорово сократить и улучшить код: теперь в шаблоне нет никаких ограничений, т.к. он выполняется в контексте JDocumentHTML, а не в контексте JDocumentError. На дефолтном Protostar работает отлично, все стандартные методы и свойства доступны из псевдопеременной $this.
« Последнее редактирование: 14.02.2016, 07:53:55 от Филипп Сорокин »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #10 : 14.02.2016, 07:53:03 »
Окончательно закрыл для себя вопрос создания страницы ошибок — теперь эта страница ничем не отличается от обычных страниц, а её контент обрабатывается системными плагинами. Содержимое страницы может быть изменено как угодно, при этом оно не будет зависеть от разметки и оформления шаблона. И что самое главное — для всей этой красоты не нужно устанавливать никаких сторонних расширений — нужно всего лишь создать один файл и изменить другой. Кому интересно — выложил на своём сайте полную реализацию.
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #11 : 14.02.2016, 09:56:03 »
А зачем обрабатывать 404-ю плагинами?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #12 : 14.02.2016, 10:22:59 »
честно говоря вообще не понимаю, зачем это :) разве что из спортивного интереса... что не так было с базовым error.php?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #13 : 14.02.2016, 14:17:36 »
А зачем обрабатывать 404-ю плагинами?
Потому что плагинами обрабатываются все страницы. Чем 404 хуже? Системный плагин SEF, для примера, надо запустить, чтобы скорректировать ссылки? Надо. В предыдущей версии парсил регулярками -- не понравилось. Решил плагином =)

Цитировать
честно говоря вообще не понимаю, зачем это Azn разве что из спортивного интереса... что не так было с базовым error.php?
Что конкретно вы не понимаете? Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн, раскладку в error.php, потому что базовый error.php к шаблону не относится.

Короче, народ не понял ничего :) Мда...
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #14 : 14.02.2016, 14:39:52 »
Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн, раскладку в error.php, потому что базовый error.php к шаблону не относится.
Зачем дизайн менять? Вот часто используемый известный вариант error.php с подгрузкой статьи "404":
Спойлер
[свернуть]
Что в этом варианте вас не устроило?
Веб-разработка: заказ. Только новая разработка.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #15 : 14.02.2016, 14:44:58 »
Что конкретно вы не понимаете?
та не, я ниче :) я вообще за любой кипиш кроме голодовки :) просто тут так сказать глубину мысли не познал :) например

Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн
а в вашем решении разве не надо менять дизайн? разница только в том, что это внешний файл и его копировать надо? так скопировать просто error.php из старого шаблона, и все. разве нет?

потом
базовый error.php к шаблону не относится
это как? как это не относится? может мы о разных error.php? я о том, который в корне шаблона.

дальше, обработка плагинами. ну тут вопрос спорный... я наверное все таки склоняюсь в сторону, что 404 не нужно обрабатывать плагинами. потому что 404 рисуется раз и навсегда, и я бы не хотел чтобы при установке какого либо плагина, который нужен во фронте, 404 поломалась по недосмотру из-за него.

поэтому не то, чтобы
Короче, народ не понял ничего :) Мда...
задумку поняли. не поняли - зачем? :)
Спойлер
[свернуть]
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #16 : 14.02.2016, 14:50:48 »
Зачем дизайн менять? Вот часто используемый известный вариант error.php с подгрузкой статьи "404":
Спойлер
[свернуть]
Что в этом варианте вас не устроило?

fsv, ну я уже написал в начале. Во-первых, не известно, как поисковики к этому отнесутся: пользователю отдаётся 404 ошибка, а его самого перебрасывает на другую страницу. Возможна пессимизация. Во-вторых, при перенаправлении теряется контекст JDocumentError — мы уже не сможем работать с объектом ошибки, например, для того, чтобы вывести описание. Ну и последнее: это не всегда работает корректно, и я считаю, что это хак.

Цитировать
а в вашем решении разве не надо менять дизайн?
Нет. Дизайн и раскладка берётся из шаблона со всеми стилями, скриптами, модулями. По-сути, мой вариант — это обычная страница, только позиция компонента (который отсутствует при ошибке), замещается телом ошибки.

Цитировать
дальше, обработка плагинами. ну тут вопрос спорный... я наверное все таки склоняюсь в сторону, что 404 не нужно обрабатывать плагинами. потому что 404 рисуется раз и навсегда, и я бы не хотел чтобы при установке какого либо плагина, который нужен во фронте, 404 поломалась по недосмотру из-за него.
Вы отдаёте заголовок 404 и после этого можете менять страницу ошибки как захочется — боту главное получить заголовок.
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #17 : 14.02.2016, 14:55:23 »
fsv, ну я уже написал в начале. Во-первых, не известно, как поисковики к этому отнесутся: пользователю отдаётся 404 ошибка, а его самого перебрасывает на другую страницу.
кого куда перебрасывает?
Веб-разработка: заказ. Только новая разработка.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #18 : 14.02.2016, 15:03:36 »
пока почитал, подумал: а не хотите в теме всё не расказывать и этим самым обламать и туда: в комм раздел? и там писать
может не прав, что подумал.имхо.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #19 : 14.02.2016, 15:14:51 »
Цитировать
Нет. Дизайн и раскладка берётся из шаблона со всеми стилями, скриптами, модулями. По-сути, мой вариант — это обычная страница, только позиция компонента (который отсутствует при ошибке), замещается телом ошибки.
понял наконец-то :) уж извините, вообще не думал о таком варианте. считаю его неверным.

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

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #20 : 14.02.2016, 16:06:23 »
кого куда перебрасывает?
А, простите. Не увидел: там file_get_contents. Похожий способ просто есть, но только с перенаправлением.

Цитировать
никуда никого не перебрасывает. все 1:1 как и в вашем варианте, за исключением того, что ваш вариант экономнее по ресурсам сервера.
Ну я бы не сказал, что один в один. Мы теряем контекст JDocumentError, мы не можем вывести описание ошибки и использовать методы этого объекта. Гибкость также теряется: если сайт мультиязычный, то для каждого типа ошибки мы должны наплодить по 2-3 материала на разных языках. Наконец имеется лишний запрос (это, конечно, не очень существенно, но, я считаю, что криво).

А если материал вдруг удалить, то вообще будет полное разочарование :)
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #21 : 14.02.2016, 16:51:08 »
Мы теряем контекст JDocumentError, мы не можем вывести описание ошибки и использовать методы этого объекта.
Код: php
if ($this->error->getCode() == '404') 
{
echo $this->error->getMessage(). '<br>';
echo '<pre>'.print_r($this, true).'</pre>';   // JDocumentError Object
}

А если материал вдруг удалить, то вообще будет полное разочарование :)
если у бабушки..., то это уже дедушка
Веб-разработка: заказ. Только новая разработка.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #22 : 14.02.2016, 16:57:25 »
теряется контекст JDocumentError - это имеется в виду когда делаем file_get_contents. это же уже не 404.

в целом так и есть, предложенный вариант более гибок чем file_get_contents. кто любит так делать 404 - можно советовать :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #23 : 14.02.2016, 16:58:34 »
fsv

Ну и как вы сделаете это в материале? Представьте, что у вас SQL ошибка, нужно вывести описание, а вы цепляете другой материал и выводите страницу данного материала. Где вы будете выводить там описание и как?

Цитировать
если у бабушки..., то это уже дедушка
Ну... это отсылки к рыжему и конопатому. А вот при недоступности страницы реально может случиться что-то вроде бесконечного перенаправления, только в 100 раз хуже. Как откроет бот удалённую страницу — и конец настанет вашему серверу :)
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #24 : 14.02.2016, 17:45:38 »
теряется контекст JDocumentError - это имеется в виду когда делаем file_get_contents. это же уже не 404.
да, в file_get_contents не будет ошибки. При ответе не об этом думал, потому что…

Ну и как вы сделаете это в материале? Представьте, что у вас SQL ошибка, нужно вывести описание, а вы цепляете другой материал и выводите страницу данного материала. Где вы будете выводить там описание и как?
… я не буду выводить все подряд ошибки. Это вредно для здоровья. Для юзера хватит стандартных фраз в материале, никто письма вам писать не будет. Ошибка – в логах.
И да, имея текст ошибки в переменной, в чем проблема его использовать на подгруженной в другую переменную странице? Извращение какое-то, но это так, теоретически...

Да я не против. Подобные раскопки на самом деле очень полезны. Всегда что-то нужное вынесешь. Только по этой теме – я так пока повторять не готов.
Веб-разработка: заказ. Только новая разработка.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Поговорим о выводе ошибок в Joomla?
« Ответ #25 : 14.02.2016, 19:45:21 »
Описание определенных ошибок можно сделать доступным для супер-администраторов. Все в одном файле, не нужно создавать никакие материалы. Вот вы говорите, что это извращение - выводить красиво отформатированное описание ошибки в позиции компонента, а я считаю извращением при отладке лезть в логи. Обновил страницу - лезь опять в логи. Зачем? Логи проверять, конечно, полезно, но не в этом случае. Ещё я считаю извращением подгружать какие-то переменные в других пространствах имён. А при запросе к другому материалу подгружать в этом материале переменные - это настоящее извращение.
« Последнее редактирование: 14.02.2016, 19:49:21 от Филипп Сорокин »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 4889
Последний ответ 05.06.2025, 04:48:29
от andrey222
По поводу сессий Joomla 3

Автор azm1n

Ответов: 0
Просмотров: 1278
Последний ответ 25.05.2025, 09:26:17
от azm1n
Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 1641
Последний ответ 09.05.2025, 12:39:18
от azm1n
Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 2845
Последний ответ 28.04.2025, 10:25:44
от sivers
Максимальная версия PHP для Joomla 3

Автор Dram

Ответов: 8
Просмотров: 3263
Последний ответ 27.03.2025, 10:40:29
от wishlight