Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

sasha8888

  • Осваиваюсь на форуме
  • 46
  • 4 / 0
Когда-то реализовал, недавно вспомнил и решил поделиться.
Делаем следующий дополнительный файл в шаблоне, например module.php
закидываем в него код
Код
<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>
<jdoc:include type="modules" name="<?php echo JRequest::getVar('position','left')?>" />
можно добавить своих параметров, например, добавить еще стиль
Код
<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>
<jdoc:include type="modules" name="<?php echo JRequest::getVar('position','left')?>"  style="<?php echo JRequest::getVar('modstyle','none')?>"/>
и потом можем обращаться к модулю по адресу http://site.com/?tmpl=module&position=left&modstyle=xhtml
это позволяет модули на любом другом сайте и любом другом движке, например, через простую функцию
Код
echo file_get_contents('http://site.com/?tmpl=module&position=left&modstyle=xhtml');
, можно через JS организовать lazyload модулей на сайте через js+ajax, или уже как душа пожелает можно еще извращаться)
код успешно работает даже на Joomla 1.5
P.S. уважаемые модераторы, если разместил тему не в той ветке, то прошу перенести куда надо, спасибо
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #1 : 31.05.2014, 22:25:57 »
таким же образом можно и компонент подгружать:
Код: php
<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>
<jdoc:include type="component" />
интернет-блог: http://websiteprog.ru
*

sasha8888

  • Осваиваюсь на форуме
  • 46
  • 4 / 0
Re: AJAX подгрузка любого модуля
« Ответ #2 : 03.06.2014, 19:16:19 »
с компонентом и так понятно - есть часто даже шаблон component.php с несколько большим кодом, чем Ваш, этому решению уже пару лет будет, если я такое применял еще в 1.5) с модулями интереснее, т.к. часто под них берут более сложную обвязку, чем в этом решении.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #3 : 03.06.2014, 20:32:04 »
А с модулями что непонятно ? Все то же самое только позиция задается и обертка для стилизации
интернет-блог: http://websiteprog.ru
*

sasha8888

  • Осваиваюсь на форуме
  • 46
  • 4 / 0
Re: AJAX подгрузка любого модуля
« Ответ #4 : 04.06.2014, 10:36:48 »
Вы сами-то видели как порой извращаются разработчики с AJAX подгрузкой модуля, когда есть доступ к шаблону?)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #5 : 04.06.2014, 10:50:15 »
У этого способа большой недостаток - нагрузка на систему!
Так как при загрузке через ?tmpl=module будет проходят все этапы инициализации, и все запросы в базу, все инициализации что и в стандартном шаблоне!
Лучший вариант - написать системный плагин который будет на onAfterInitialise отдавать модуль!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #6 : 04.06.2014, 11:24:32 »
У этого способа большой недостаток - нагрузка на систему!
Так как при загрузке через ?tmpl=module будет проходят все этапы инициализации, и все запросы в базу, все инициализации что и в стандартном шаблоне!
Лучший вариант - написать системный плагин который будет на onAfterInitialise отдавать модуль!

Хмм, да об этом я даже не думал, а $app->initialise() не много подгружает? Хотя, посмотрел вроде немного, конфиги, языки..А может быть можно еще каким нибудь хелпером модуль подгрузить? 
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: AJAX подгрузка любого модуля
« Ответ #7 : 04.06.2014, 11:39:51 »
Я вот тут почитал все вышеизложенное, подумал, и решил поизучать/поэксперементировать с аяксом. Доку/примеры сайтов/шаблонов на аяксе на J3 подскажите, где почитать/посмотреть?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #8 : 04.06.2014, 11:45:43 »
Я вот тут почитал все вышеизложенное, подумал, и решил поизучать/поэксперементировать с аяксом. Доку/примеры сайтов/шаблонов на аяксе на J3 подскажите, где почитать/посмотреть?
А че там эксперементировать? Все просто как двери...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #9 : 04.06.2014, 11:46:21 »
Хмм, да об этом я даже не думал, а $app->initialise() не много подгружает? Хотя, посмотрел вроде немного, конфиги, языки..А может быть можно еще каким нибудь хелпером модуль подгрузить? 
Каким именно хелпером?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: AJAX подгрузка любого модуля
« Ответ #10 : 04.06.2014, 11:48:47 »
А че там эксперементировать? Все просто как двери...
Ага, как на велике ездить, когда вес 150... Юморист Вы однако, батенька :) Просто для знающего/умеющего, чего о себе пока сказать не могу.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: AJAX подгрузка любого модуля
« Ответ #11 : 04.06.2014, 11:53:29 »
Ага, как на велике ездить, когда вес 150... Юморист Вы однако, батенька :) Просто для знающего/умеющего, чего о себе пока сказать не могу.
Ну так почитайте в сети про технологию AJAX  ;) Как вариант в Joomla: AJAX в Joomla или AJAX в Joomla 3.2
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #12 : 04.06.2014, 11:55:45 »
Ага, как на велике ездить, когда вес 150... Юморист Вы однако, батенька :) Просто для знающего/умеющего, чего о себе пока сказать не могу.
Да уже сто раз тут на форуме обсуждалось! Что бы юзать AJAX есть несколько способов:
1. Шаблон (как у автора топика)
2. Системный плагин (все банально):
public function onAfterInitialise ( ){
   $input = JFactory::getApplication()->input;
   if($input->getCmd('task') === 'getAjaxMyData'){
      echo '123';
      ....         
      exit; // Обязательно что бы дальше не выполнять наш сайт и что бы не отдало ещё и шаблон
   }
}
запрос будет index.php?task=getAjaxMyData
3.В компонент index.php?option=com_mycomponent&task=getAjaxMyData
тут тоже все просто как и в плагине! Только в дефолтном контроллере пишем метод:
public function getAjaxMyData(){
   echo '123';
   exit;
}
4. способ начиная с Joomla  3.2 использовать встроенный com_ajax http://ссылка вырезана, так как домен распространяет вирусы/blog/joomla/ajax-v-joomla-3-2
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: AJAX подгрузка любого модуля
« Ответ #13 : 04.06.2014, 11:59:22 »
Спс, поизучаю =)
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #14 : 04.06.2014, 12:21:26 »
Хелпер зараза не работает без инициализации приложения, так что или плагин или скрипт, вот такой у меня получился(положил его в корень сайта):
Код: php
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__). '/' );
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
require_once(JPATH_BASE.DS.'libraries'.DS.'joomla'.DS.'application'.DS.'module'.DS.'helper.php');
JFactory::getApplication('site')->initialise();
$module = JModuleHelper::getModule('mod_login');
echo JModuleHelper::renderModule($module);
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #15 : 04.06.2014, 12:31:13 »
Хелпер зараза не работает без инициализации приложения, так что или плагин или скрипт, вот такой у меня получился(положил его в корень сайта):
Естественно не будет работать ) Да всегда забываю про этот вариант использования для дальнейшей работы с аяксом)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #16 : 04.06.2014, 12:32:51 »
P.S.
я может ошибаюсь но по моему этот метод:
$module = JModuleHelper::getModule('mod_login');
echo JModuleHelper::renderModule($module);
не учтет настройки модуля в админке...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: AJAX подгрузка любого модуля
« Ответ #17 : 04.06.2014, 12:36:40 »
Учтет если модуль один, если несколько - будет путаница.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #18 : 04.06.2014, 12:44:46 »
в объекте $module есть свойство params c json строкой и rendermodule вроде как парсит ее в объект.  в rendermodule надо только передать атрибуты для стилизации, он в метод mod_chrome... передает эти парметры.

Учтет если модуль один, если несколько - будет путаница.
хмм, не знаю, а как быть когда несколько модулей?
интернет-блог: http://websiteprog.ru
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: AJAX подгрузка любого модуля
« Ответ #19 : 04.06.2014, 12:46:05 »
хмм, не знаю, а как быть когда несколько модулей?
Тогда можно по названию модуль получить getModule($name, $title = null)
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: AJAX подгрузка любого модуля
« Ответ #20 : 04.06.2014, 12:49:16 »
Тогда можно по названию модуль получить getModule($name, $title = null)

так и получаю вроде. Я так понял что путаница будет когда много копий этого модуля. их же вроде как тиражировать можно)
интернет-блог: http://websiteprog.ru
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: AJAX подгрузка любого модуля
« Ответ #21 : 04.06.2014, 12:50:57 »
Я так понял что путаница будет когда много копий этого модуля
Аха, тогда вторым параметром передается название и получается конкретный модуль. Хотя нахвания тоже могут быть одинаковые, но это маловероятно.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #22 : 04.06.2014, 13:02:42 »
Аха, тогда вторым параметром передается название и получается конкретный модуль. Хотя нахвания тоже могут быть одинаковые, но это маловероятно.
У меня кстати так и не получилось таким методом схватить модуль.. писало ошибку, возможно потому что имя модуля на русском.. не проверял точно, вывел по позиции в итоге )
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: AJAX подгрузка любого модуля
« Ответ #23 : 04.06.2014, 14:05:40 »
У меня кстати так и не получилось таким методом схватить модуль.. писало ошибку, возможно потому что имя модуля на русском.. не проверял точно, вывел по позиции в итоге )
Хех, тогда толку от параметра, если он русский не подхватывает =)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: AJAX подгрузка любого модуля
« Ответ #24 : 04.06.2014, 14:10:57 »
Хех, тогда толку от параметра, если он русский не подхватывает =)
Странно сейчас попробовал работает ) Возможно был косяк на предыдущей ветке какой то...
*

r0m4n

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: ajax подгрузка любого модуля
« Ответ #25 : 13.12.2019, 11:10:39 »
мнда, тема старая, но...
Делаем следующий дополнительный файл в шаблоне, например module.php
Где этот  файл module.php будет лежать конкретно?

Кажется так( *ОХ-Х-Х*): корень_директории_сайта/templates/какое-то ваше имя(напр /beez3/)/module.php
ОКЭ
« Последнее редактирование: 13.12.2019, 11:50:35 от r0m4n »
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: ajax подгрузка любого модуля
« Ответ #26 : 14.12.2019, 09:40:08 »
На мой взгляд проще уж и вовсе весь сайт через AJAX грузить и только главную отдавать в виде статики, как точку входа. При желании можно будет даже закешировать сайт в хранилище или используя воркеры. Будет работать даже без интернета, вот пользователи удивятся, если увидят.
*

r0m4n

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: ajax подгрузка любого модуля
« Ответ #27 : 18.12.2019, 16:09:35 »
_
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: ajax подгрузка любого модуля
« Ответ #28 : 18.12.2019, 17:22:59 »
Полностью сайт на AJAX только для мелких проектов, где пяток страниц.
Была такая мода, делать крупные проекты с подгрузкой на лету, ну бессмысленно это.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: ajax подгрузка любого модуля
« Ответ #29 : 19.12.2019, 14:08:25 »
Полностью сайт на AJAX только для мелких проектов, где пяток страниц.
Была такая мода, делать крупные проекты с подгрузкой на лету, ну бессмысленно это.

Почему же?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как из Стиль модуля - none, убрать custom

Автор all_zer

Ответов: 3
Просмотров: 109
Последний ответ 15.11.2025, 16:20:01
от all_zer
Дублируются дивы у модуля mod_custom

Автор timofe

Ответов: 0
Просмотров: 778
Последний ответ 07.09.2024, 13:19:48
от timofe
Вывод содержимого модуля mod_custom без html разметки

Автор goga_pgasovav

Ответов: 3
Просмотров: 1214
Последний ответ 07.06.2024, 11:15:50
от goga_pgasovav
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 1466
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 1041
Последний ответ 17.05.2023, 09:35:23
от Театрал