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

zvi

  • Захожу иногда
  • 392
  • 4 / 0
как вставить модуль в код нужной страницы php (нужно вставить в компонент)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Вставка по позиции модуля:
Код: php
$modules = JModuleHelper::getModules( 'position_name' );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
}

Вставка по названию модуля (второй параметр title модуля в менеджере модулей, если модуль не создан просто JModuleHelper::getModule('mod_menu'); )
Код: php
$module = JModuleHelper::getModule('mod_menu', 'Main menu');
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
Вставка по позиции модуля:
Код: php
$modules = JModuleHelper::getModules( 'position_name' );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
}

Вставка по названию модуля (второй параметр title модуля в менеджере модулей, если модуль не создан просто JModuleHelper::getModule('mod_menu'); )
Код: php
$module = JModuleHelper::getModule('mod_menu', 'Main menu');
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
  title это название модуля ? а это чтоmod_menu?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
 title это название модуля ? а это чтоmod_menu?
title это то как вы назовете модуль в менеджере меню
mod_menu - тип модуля(в папку /modules/ загляните)
*

nick71

  • Завсегдатай
  • 1145
  • 12 / 12
  • Сайты любой сложности - обращайтесь
только не забываем что надо  дописать в начале и конце
<?php $modules = JModuleHelper::getModules( 'ПозицияМодуля' );
foreach ( $modules as $module ) {
   echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
} ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Позволю себе предложить универсальное решение
Код: php
	<?php
$pos = 'position_name';
$modules = JModuleHelper::getModules($pos);
if (count($modules))
{
?>
<div class="tm-<?php echo $pos; ?>">

<?php
$attr = array('style' => 'none');

foreach ($modules as $module) {

$mod_params = json_decode($module->params);
$mod_title_class = (trim($mod_params->header_class)? ' class="'.trim($mod_params->header_class).'"' : '');
$mod_title_tag = (!empty($mod_params->params->header_tag)? $mod_params->params->header_tag : 'h3');
$mod_title = ($module->showtitle ? '<'.$mod_title_tag.$mod_title_class.'>'.$module->title.'</'.$mod_title_tag.'>' : '');
$mod_class = (trim($mod_params->moduleclass_sfx)? ' '.trim($mod_params->moduleclass_sfx) : '');
?>
<div class="tm-<?php echo $pos.'-mod'.($module->id).' tm-'.$mod_class; ?>">
<?php echo $mod_title; ?>
<?php echo JModuleHelper::renderModule($module, $attr); ?>
</div>
<?php } ?>

</div>
<?php } ?>
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Позволю себе предложить универсальное решение:

все что ты написал сворачивается в это:
Код: php
[code=php]function renderModules( $position, $style = '' )
{
$modules = JModuleHelper::getModules( $position );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => $style ) );
}
}
И дергается так:
Код: php
<?php echo renderModules('position_name', 'style_name');  ?>
Обертка определяется в templates/tmp_name/html/modules.php! В том числе можно дергать системные обертки: 'none', 'html5','table','horz', 'xhtml','rounded', 'outline' или те которые идут в поставку с шаблоном сайта!

Это и будет универсальное решение, потому что можно будет  дернуть кучу раз в куче разных мест с разными стилями модулей! У тебя же на каждый стиль модуля придется пихать такую простыню )[/code]
« Последнее редактирование: 11.04.2016, 10:38:49 от Istaan »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
я каждый модуль оборачиваю в отдельную див-обертку со всеми доп.классами из общих параметров всех модулей, при необходимости выводу заголовок (который по дефолту рендером не выводится)
див-обертка верстается уже по месту индивидуально, это кастомное решение
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 728
Последний ответ 13.09.2022, 15:35:31
от kurz
Вывод таблицы, деление на страницы

Автор March Cat

Ответов: 6
Просмотров: 1180
Последний ответ 09.01.2019, 18:49:15
от dmitry_stas
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 3178
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
Меню схлопывается после перезагрузки страницы

Автор onelawyer

Ответов: 10
Просмотров: 1797
Последний ответ 11.10.2017, 14:50:48
от effrit
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 3320
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora