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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Всем привет!

Раньше всегда подключал все дополнительные классы в главном index.php, решил запилить плагин.

В настройках два поля, работают они одинаково, это чтобы не запутаться..)

Ссылка на плагин

« Последнее редактирование: 04.11.2016, 17:38:36 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Это то что я думаю?
А можно пример синтаксиса?

И вот допустим я хочу переопределить /components/com_content/models/article.php - это им можно?
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Это то что я думаю?
А можно пример синтаксиса?

И вот допустим я хочу переопределить /components/com_content/models/article.php - это им можно?
Да, просто в поле ввести прям так же как вы и написали, т.е. от корня, в админке есть пояснения и примеры..
Блин, в смысле не также, а скопировать сначала этот файл в какую нибудь папку, например в templates/redefine..))

Похожие плагины уже давно есть
Если бы вы со своей репликой были там где решили придумать автоваз, цены бы вам не было.. ;D
Очень хорошо что есть, а т.к. их минимум три, то будет и 4-й, ничего страшного я думаю..)
« Последнее редактирование: 04.11.2016, 15:59:34 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Да, просто в поле ввести прям так же как вы и написали, т.е. от корня, в админке есть пояснения и примеры..
Блин, в смысле не также, а скопировать сначала этот файл в какую нибудь папку, например в templates/redefine..))
И? Первой строкой что, второй где переопредлен или через символ?
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
И? Первой строкой что, второй где переопредлен или через символ?
Вы просто копируете нужный файл, например модель article.php из com_content в вашу папку, и указываете путь, не к оригинальному файлу, а к скопированному, и все..

Два поля это чисто логическое разделение, что бы не путаться где переопределенные файлы, а где просто подключенные..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
эмм, правильно ли я понял: таким образом можно переопределить любой файл системы?
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
эмм, правильно ли я понял: таким образом можно переопределить любой файл системы?
Не совсем, шаблоны не переопределятся, переопределяются классы и функции, т.е. при вызове метода getItem() из того же com_content/models/article.php будет вызван этот же метод из подключенного вами файла..

Ну и не будут работать файлы которые включаются в систему до onAfterInitialise
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ну идея не нова сам недавно клепал плагин правда только на подключение хелперов различных, переопределением стандартных фукнций не пользуюсь ибо переопределять функциии модели себе дорохе чаще всего. Ставить не стал. Глянул на код.
И вот вам большое замечание, какого там делает русский язык?
Ну второе поменьше где Header DocBlock .

P.S ну и как по мне не тяжеловат ли.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Ну идея не нова
не верю, покажите..

сам недавно клепал плагин правда только на подключение хелперов различных
Все клепали, покажите кто его не клепал? Регулярку небось даже поставили, для проверки, хелпер или не хелпер..))

И вот вам большое замечание, какого там делает русский язык?
Раз большое, исправлю какой вам сделать?) Можно даже парочку, выбирайте..

Ну второе поменьше где Header DocBlock .
Хедер - это же шапка сайта, не?

А на самом деле, все что не нравится, удалите или добавьте,
я поделился своим сниппетом с сообществом, и не более того.. *DRINK*
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Хм.. попробовал и
Цитировать
Fatal error: Cannot redeclare class ContentModelArticle in .../templates/system/redefine/com_content/models/article.php on line 371
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Хм.. попробовал и
Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Да есть же плагин, его даже включили в офф.док.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
Так и делаю?
В комментах вообще один и тот же файл прописан!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Да есть же плагин, его даже включили в офф.док.
Любопытно.

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

*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
voland, вас, видимо, ввели в заблуждение настройки плагина. На самом деле не было переопределения плагином - он просто тупо подключает все указанные файлы, в вашем случае - 2 одинаковых. Это вы сами должны переопределить классы и уже потом подключить файлы.
« Последнее редактирование: 04.11.2016, 19:59:37 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Сейчас очистите поле файлы для подключения, оставьте только для переопределения..)

Да, путаница, сорь..
В общем, первое поле, для сторонних файлов которые надо подключить, второе для переопределенных..))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
voland, вас, видимо, ввели в заблуждение настройки плагина. На самом деле не было переопределения плагином - он просто тупо подключает все указанные файлы, в вашем случае - 2 одинаковых. Это вы должны переопределить классы и уже потом подключить файлы.
Да, все верно, т.е. вы просто указываете путь к переопределенному файлу, а какой файл вы переопределяете указывать не надо..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Любопытно.
C 04-08-2016 его почему-то убрали из JED. Вот ссылка на GitHub.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Блин. Совсем запутали.
А как мне переопределять классы на PHP?
Это ж не c++
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Все клепали, покажите кто его не клепал? Регулярку небось даже поставили, для проверки, хелпер или не хелпер..))
Зачем регулярку. Простое подключение через JLoader
А на самом деле, все что не нравится, удалите или добавьте,
я поделился своим сниппетом с сообществом, и не более того.. *DRINK*
Делятся с сообществом на gehub или же даже в JED а на форум выкладывают чтобы получить отзывы, мнения и критику. ИМХО конечно.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Блин. Совсем запутали.
А как мне переопределять классы на PHP?
Это ж не c++
Укажите путь к скопированному(переопределяемому) файлу во второе поле, первое оставьте пустым, все..)))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Раз большое, исправлю какой вам сделать?) Можно даже парочку, выбирайте..
Это не мне это просто нома. в коде не место русскому языку. Комментарии пишутся на английском (это простая норма поведения, ну на двух языках в крайнем случае). Ну а для русского языка в XML если языковые константы
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Укажите путь к скопированному(переопределяемому) файлу во второе поле, первое оставьте пустым, все..)))
Во, наконец!
Работает! :-)
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Это не мне это просто нома. в коде не место русскому языку. Комментарии пишутся на английском (это простая норма поведения, ну на двух языках в крайнем случае). Ну а для русского языка в XML если языковые константы
Да уж.. У меня был учитель по труду, который кричал, брызгал, у него было ужасное недомогание, когда я плоскогубцами забивал гвозди, т.к. молотка не было под рукой, он предлагал подождать пока освободится или принести свой... Не буду говорить что было когда я сделал это киянкой.. ^-^

Septdir, это будет усиливаться с годами, поэтому надо поймать себя на этом вовремя..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Во, наконец!
Работает! :-)
Ну и отлично, уже думал что то не учел, я эту возможность толком не тестировал, просто вспомнил мануальчик про который говорил voland выше, и добавил второе поле..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Хм.. обнаружилась проблема.
При попытке редактировать материал
Цитировать
Обнаружена ошибка.
0 Таблица article не поддерживается. Файл не найден.

Хотя я лишь добавил поля в запрос и всё.

ЧЯДНТ?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться