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

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
метод JRequest::getCmd
« : 03.06.2010, 09:42:14 »
Доброго дня!

Не могу понять след выражение  JRequest::getCmd('layout')!= 'form'. В API Joomla очень кратко и не понятно. Буду благодарен если кто нить объяснит назначение метода getCmd. Спасибо.
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: метод JRequest::getCmd
« Ответ #1 : 03.06.2010, 09:50:54 »
То же самое что getVar (получает значение переменной из запроса) только более жесткий фильтр на значение переменной. Только буквы и цифры в значении должны быть ну и еще точка и нижнее подчеркивание
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #2 : 03.06.2010, 09:54:17 »
спасибо , но меня больше интересует именно смысл параметра layout метода getCmd(). Что это такое и какие они могут быть?
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: метод JRequest::getCmd
« Ответ #3 : 03.06.2010, 10:05:45 »
А что тут не понятно JRequest::getCmd('layout')!= 'form' значение переменной layout в запросе не равно значению 'form'. Не равно - получаем true(1) равно - false(0)

Пример
такая строка запроса
http://mysite.com/index.php?layout=form вернет false(0)
а такая
http://mysite.com/index.php?layout=rss true(1)
« Последнее редактирование: 03.06.2010, 10:12:21 от StarCat »
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: метод JRequest::getCmd
« Ответ #4 : 03.06.2010, 10:18:10 »
а какой там смысл? просто из URL запрошенной страницы берётся значение параметра 'layout'.
Но я думаю что должно быть не
Request::getCmd('layout')!= 'form'
а
Request::getCmd('layout')!== 'form'
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #5 : 03.06.2010, 10:21:27 »
ну сам функционал метода я понял. Мне не совсем понятно что такое layout в контексте Joomla
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: метод JRequest::getCmd
« Ответ #6 : 03.06.2010, 10:26:12 »
layout в контексте Joomla это может быть что угодно :) это параметр... а вот в контексте конкретного компонента, модуля или метода может быть вполне чем то определенным.. скорее всего тут идет речь идет о выборе шаблона для вывода чего то где то :)) но это уже из области телепатии
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: метод JRequest::getCmd
« Ответ #7 : 03.06.2010, 10:27:11 »
ну сам функционал метода я понял. Мне не совсем понятно что такое layout в контексте Joomla
layout - вывод, т.е. грубо говоря шаблон.
Но я думаю что должно быть не
Request::getCmd('layout')!= 'form'
а
Request::getCmd('layout')!== 'form'
а в чем разница тождественное или нет неравенство в этом случае?
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #8 : 03.06.2010, 10:31:28 »
какие бывают layout. в приведенном примере производится сравнение с 'form'
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: метод JRequest::getCmd
« Ответ #9 : 03.06.2010, 10:33:17 »
какие бывают layout. в приведенном примере производится сравнение с 'form'
любые :)
как захотят так и назовут.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: метод JRequest::getCmd
« Ответ #10 : 03.06.2010, 10:33:29 »
layout в данном случае что-то типа "шаблона вывода операции"
в дальнейшем когда загружается шаблон, то Joomla проверит, есть-ли этот шаблон компонента (в /components/com_<компонент>/views) в шаблоне сайта (/templates/<шаблон>/html/com_<компонент>)
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: метод JRequest::getCmd
« Ответ #11 : 03.06.2010, 10:34:11 »
Любые бывают. у каждого компонента например свои шаблоны. Чаще всего это form RSS и тд.. В принципе можно напридумывать каких угодно
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #12 : 03.06.2010, 10:48:27 »
как бы все понятно по частям но в целом непонятно. задам вопрос по другому. Что делает Joomla когда встречает JRequest::getCmd('layout')!= 'form' (строка из стандартного шаблона). то что я понял происходит получение из строки запроса значение layout. Но я поклацал по сайту и в строке запроса не увидел данный параметр. Вопрос когда этот параметр появляется? Дальше, я понмаю что form гдето что то обзываю, но не понятно где и что обзывают в данном случае 'form'?
*

StarCat

  • Захожу иногда
  • 54
  • 8 / 0
Re: метод JRequest::getCmd
« Ответ #13 : 03.06.2010, 10:55:37 »
кода бы побольше увидеть тогда и можно сказать что ОНА делает :)))))
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #14 : 03.06.2010, 10:58:56 »
что увидеть?

в продолжение. Вот например когда методом я получаю имя компонента как бы понятно что возможные значения это все имена компонентов. А вот с form грусно! где именно могу увидеть что layout назвали form?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: метод JRequest::getCmd
« Ответ #15 : 03.06.2010, 11:05:41 »
что увидеть?

в продолжение. Вот например когда методом я получаю имя компонента как бы понятно что возможные значения это все имена компонентов. А вот с form грусно! где именно могу увидеть что layout назвали form?
Вам же уже вроде все разжевали.
Копайте папку views компонента.
На примере стандартного com_content - components\com_content\views\article\tmpl\form.php
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: метод JRequest::getCmd
« Ответ #16 : 03.06.2010, 11:08:28 »
да его может и не существовать этого layout, он может быть не объявлен впринципе. Это не мифическая переменная (менее мифическая чем option), можно так-же попробовать получить вместо "layout" значение параметра "krevedko", и это не будет означать что krevedko - это свещенное животное :)
*

mpbakunov

  • Захожу иногда
  • 54
  • 1 / 0
Re: метод JRequest::getCmd
« Ответ #17 : 03.06.2010, 11:30:50 »
Спасибо всем я разобрался! Может кто еще сталкнется с этим, кратко опишу.

для каждого компонена определены несколько видов шаблонов например в каталоге  ...\components\com_content\views\archive\tmpl\ . По указанному пути находятся 3 вида шаблона представления default.php, form.php, pagebreak.php. В зависимости от того как в аминке определен тип шаблона, например при выборе типа меню если указать: Материалы-Статья-шаблон отправки материала,  тогда будет использоваться шаблон form.php, а также в строке запроса URL появится параметр layout=form. если для вывода компонентов используется шаблон default тогда параметра layout в строке запроса не будет.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Простой метод для добавления изображений

Автор kishibala

Ответов: 1
Просмотров: 1463
Последний ответ 05.10.2011, 00:05:44
от stardel