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

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Подскажите, какие есть варианты выводить модуль для пользователей которые не состоят в указанной группе?

Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered

Надо выводить модуль для пользователей которые состоят только в группе Registered.
« Последнее редактирование: 06.06.2017, 10:47:24 от zilonitiz »
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Как-то так, кто в PHP разбирается - поправят  ^-^

<?php
$user =& JFactory::getUser();
$groups = isset($user->groups)? $user->groups : array();
?>

<?php
if (in_array('2', $groups ))
echo '222';
?>
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
надо дополнительно проверять, чтобы не было второй группы привязано.

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

Код
if (in_array('2', $groups ) && count($groups)==1) {

}
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
т.е. вариант один, делать позицию, ее заворачивать в предложенный выше код и уже к  этой позиции привязывать модуль?
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
может ещё как-то можно, но это решение для средних умов и оно должно работать :)
а чем не нравится?
Пока не могу сказать чем не нравится, да я и не намекал на это. Надо пробовать, попробую - скажу. :)
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ТС, у вас в двух постах 2 разных по сути вопроса: первый - это "что", второй - это "как", конкретизируйте задачу, что именно и при каких условиях в каком месте вам нужно вывести, как и с чем это должно коррелировать и прочия и прочия...
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
AlekVolsk, смотрите. Выше двое коллег дали вполне внятные варианты решения. За что им огромное спасибо! Вы их не увидели, но нашли какие то не соответствия обозначенные двумя словами. Что Вы тут делаете?

Вижу слова Вы знаете знатные. :D
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ок, извините за беспокойство ))
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
ок, извините за беспокойство ))
Да ничего, не стоит извинений! )

Есть и еще одно решение. Добавить группу, привязать к ней модуль и добавить эту группу ко всем пользователям.

Исходные данные:
Цитировать
Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered

Решение:
Цитировать
Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered
Custom-group2
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
НЕ состоящих же следовательно не в массиве
Код
!in_array
Ну а про состоит дали код выше. итого два условия должны быть.Так будет более верно.
А вообще сама реализация может быть любая к примеру можно плагинчик сделать простой который добавит поле в админку и будет его проверять до рендера модуля.  Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Но как верно подметил  AlekVolsk , дать нормальный совет и правильный код без контекста не возможно. Кто знает может тс пошёл вовсе по неверному пути.
Ну и конечно же на данный вопрос отлично знает ответ Google.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
смысл есть, актуален и по сей день, но это тема отдельного разговора
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Цитировать
Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Да, после как в Joomla! (наконец то) появился свой ACL этот компонент потерял частично свою актуальность.

Цитировать
Кто знает может тс пошёл вовсе по неверному пути
Тут остается только гадать. :D
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
смысл есть, актуален и по сей день, но это тема отдельного разговора
Ну это смотря для кого мне проще свой плагин за 15 написать чем эту махину ставить.

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Тут остается только гадать. :D
ну тогда вы форумом ошиблись, вам на hogvards-portal )))
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
ну тогда вы форумом ошиблись, вам на hogvards-portal )))
Не ошибся, поверьте. Позвольте, я Вам еще раз намекну. ;) Выше, четко поняли вопрос и четко дали на него свои варианты ответов. А Вы, вот Вы, уподобляетесь Ванге, пытаетесь быть на нее похожим. Зачем, спрашиваю еще раз? :)
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Ну это смотря для кого мне проще свой плагин за 15 написать чем эту махину ставить.

ТС исходные данные то понятны контекст какой.
Вот вы к контексту привязались, все вам подавай. :D Ладно, вот контекст. На сайте существуют подписки. Подписчики привязываются к определенной группе а не подписчики остаются в группе по умолчанию. Вот им и нужно выводить определенный модуль. Решение нашлось без вмешательства в код. Хотя вариант с кодом тоже не плох. При регистрации на сайте пользователь не становится подписчиком по умолчанию а добавляется в две группы к одной из которых и привязан модуль. Подписчиком пользователь становится на следующих после регистрации этапах по желанию пользователя. После осуществления подписки дополнительная группа меняется.
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Вот вы к контексту привязались, все вам подавай. :D Ладно, вот контекст. На сайте существуют подписки. Подписчики привязываются к определенной группе а не подписчики остаются в группе по умолчанию. Вот им и нужно выводить определенный модуль. Решение нашлось без вмешательства в код. Хотя вариант с кодом тоже не плох. При регистрации на сайте пользователь не становится подписчиком по умолчанию а добавляется в две группы к одной из которых и привязан модуль. Подписчиком пользователь становится на следующих после регистрации этапах по желанию пользователя. После осуществления подписки дополнительная группа меняется.
Ну собсевнно как и предполагали, при таком конетсте реализовавать надо совсем по дургому.
Во превых кто в своем уме привязывает рассылки к регистрации?
Вот элементарный пример я хочу подписать не регистрируясь.
С другой же стороны, а вы уверены что у вас будет только одна расслка? а когда будет две и для обеих надо будет выводить модуль при условии.
поэтому рассылка реализуется через дополнительный комопнент и привязывается не к группе пользователя, а к его id и email. И модуль будет выводиться исходя из этого условия.
Ну и еще с 10 вариантов.
Вот вам и элеементарый пример, почему контекст крайне важен. Всегда есть вероятность, что есть способ решения куда более простой.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Цитировать
Во превых кто в своем уме привязывает рассылки к регистрации?
О каких рассылках Вы говорите?  :o

Цитировать
Вот элементарный пример я хочу подписать не регистрируясь.
Вы не можете приобрести подписку не регистрируясь!  ;)

Цитировать
С другой же стороны, а вы уверены что у вас будет только одна расслка? а когда будет две и для обеих надо будет выводить модуль при условии.
Повторюсь, о каких рассылках идет речь?  :-X

Цитировать
Ну и еще с 10 вариантов.
Бросьте, я вас умоляю. Варианта всего два: или пользователь подписчик или не подписчик.

Цитировать
Вот вам и элеементарый пример, почему контекст крайне важен. Всегда есть вероятность, что есть способ решения куда более простой.
Если бы была важность контекста, я бы обязательно выложил ее в первом посте, поверьте. Я думаю Вы убедились, что он, контекст в данном случае абсолютно не важен. Приплели какие то рассылки, зачем? :) Совсем в сторону увели вопрос. :)
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
мне кажется, на следующей итерации на вводное "доброе утро" можно будет получить сведения о наступлении полярной ночи и всеобщем кризисе. :)
предлагаю считать тему исчерпанной, пока из-за неё ядерная война не началась :)
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
:)
Цитировать
что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
Если проанализировать события, то этому найдется причина. Избавиться от которой крайне затруднительно. :)
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Не надо плодить группы ради вывода модуля и оборачивать модульную позицию в шаблоне условиями. Сегодня модуль есть, завтра нет, а вся борода эта осталась.
Чуть модуль доработать.
В XML модуля добавить «Группа, которой НЕ выводится модуль», тип usergrouplist , см.синтаксис старого типа  usergroup - https://docs.joomla.org/Usergroup_form_field_type
В хелпере (или где-там-у-вас-не-знаю-смотрите-код):
Код: php
$user = JFactory::getUser();
$nogroup = (int)$params->get('nogroup');
if( $user->guest || in_array($nogroup, $user->groups) )
{
    return false;
}
Веб-разработка: заказ. Только новая разработка.
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Цитировать
Не надо плодить группы ради вывода модуля и оборачивать модульную позицию в шаблоне условиями. Сегодня модуль есть, завтра нет, а вся борода эта осталась.
Возможно Вы и правы, но в моем случае используется Custom модуль для вывода нужной информации нужно группе пользователей. Возможно в будущем будут использоваться и другие модули. В случае с предложенным Вами решением, после обновления движка - все слетит.
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
В случае с предложенным Вами решением, после обновления движка - все слетит.
Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
Веб-разработка: заказ. Только новая разработка.
*

zilonitiz

  • Захожу иногда
  • 427
  • 14 / 1
Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
В общем обдумали все еще раз и решили что предложенное Вами решение будет правильным. Клонируем кастомный модуль и будем работать с ним.
Автоматизация действий в интернете, рутина. Парсеры, постеры, регеры и т.д. Телеграм: @evildance.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор all_zer

Ответов: 3
Просмотров: 132
Последний ответ 15.11.2025, 16:20:01
от all_zer
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1496
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Дублируются дивы у модуля 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
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 2064
Последний ответ 09.11.2023, 16:33:08
от denxio