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

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Помогите пожалуйста реализовать вывод меню.

Суть такова:
есть меню следующего вида

-Родительская категория 1
--Дочерняя категория 1.1
--Дочерняя категория 1.2
--Дочерняя категория 1.3

-Родительская категория 2
--Дочерняя категория 2.1
--Дочерняя категория 2.2
--Дочерняя категория 2.3

необходимо например чтобы при заходе на страницу "Родительская категория 1" в меню отображался только пункт Родительская категория 1 со всеми вложенными в него подпунктами, т.е показывался только текущий пункт меню и его подменю, если таковые имеются, а все остальные родительские пукты не отображались:

-Родительская категория 1
--Дочерняя категория 1.1
--Дочерняя категория 1.2
--Дочерняя категория 1.3
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Создаёте три других меню, пункты которых это псевдонимы пунктов вашего основного. И публикуете модули на соответствующих страницах. Для удобства вывода можно AdvancedModulesManager использовать.
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Создаёте три других меню, пункты которых это псевдонимы пунктов вашего основного. И публикуете модули на соответствующих страницах. Для удобства вывода можно AdvancedModulesManager использовать.

спасибо за подсказку, решение хорошее, но слишком громоздкое, т.к страниц очень много.
 Я пытался допилить шаблон вывода в mod_menu, там где формируется дерево меню..но что то не получается с условием вывода
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Если знаете РНР, то вообще не проблема. Всё верно, делаете переопределение шаблона меню. Для первого уровня ($item->level == 1) делаете условие (если ссылка пункта та же, что и текущий URL, то выводить).
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
А в параметрах меню разве нет управления вложенностью выводимых пунктов?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Управление то есть. Но у ТС задача шире. Нужно на определённых страницах показывать только активный ПЕРВЫЙ уровень. А такого в системе меню не предусмотренно в принципе. Как вариант конечно тупо скрыть средствами CSS неактивные пункты первого уровня. Тогда задача вообще элементарная была бы. v-v, такой вариант вам как?
*

fbr

  • Завсегдатай
  • 1679
  • 209 / 7
Можно попробовать переопределить в default.php

Родительский пункт всегда .active, если даже текущим является вложенный пункт
Значит там нужно еще добавить флаг, типа $flag_active = true;

А перед выводом пункта поставить условие:

if ($flag_active ) {

72    echo '<li' . $class . '>';
...
}

Сам не проверял, но можете подумать
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
fbr, да, с условием active даже проще, чем со сравнением урлов. Респект. Но дополнительную проверку на level конечно нужно добавить. Т.е. двойное условие.
*

fbr

  • Завсегдатай
  • 1679
  • 209 / 7
ну это я упрощенно ))
на вскидку

Там может еще много чего придется добавить ..
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Управление то есть. Но у ТС задача шире. Нужно на определённых страницах показывать только активный ПЕРВЫЙ уровень. А такого в системе меню не предусмотренно в принципе. Как вариант конечно тупо скрыть средствами CSS неактивные пункты первого уровня. Тогда задача вообще элементарная была бы. v-v, такой вариант вам как?

нет, скрывать ненужное средствами CSS - это не то))

Можно попробовать переопределить в default.php

Родительский пункт всегда .active, если даже текущим является вложенный пункт
Значит там нужно еще добавить флаг, типа $flag_active = true;

А перед выводом пункта поставить условие:

if ($flag_active ) {

72    echo '<li' . $class . '>';
...
}

Сам не проверял, но можете подумать
fbr, да, с условием active даже проще, чем со сравнением урлов. Респект. Но дополнительную проверку на level конечно нужно добавить. Т.е. двойное условие.

пробовал я с active, но в результате получается что выводится только один активный пункт меню, без подменюшек. Если активна одна из подменюшек - то выводится она и ее родитель...ПХП знаю на уровне ликбеза...что то все таки делаю неправильно
*

fbr

  • Завсегдатай
  • 1679
  • 209 / 7
Я же написал, что на вскидку ))
Подумать нужно, потупить ...

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

89   if ($item->deeper) {
             $flag_active = false;
        ....

В общем экспериментируйте! Все не так просто
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Сделайте дамп пункта меню, выложите сюда. Условие активности там по-моему другое должно быть. Активный (active) ВЕСЬ пункт меню. Включая подпункты. А текущий (curent) один.
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Сделайте дамп пункта меню, выложите сюда. Условие активности там по-моему другое должно быть. Активный (active) ВЕСЬ пункт меню. Включая подпункты. А текущий (curent) один.

да, так и есть. Родительскому присваивается класс active parent, а дочернему current active
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla! 3.9.21 Невозможно создать пункт меню

Автор edvalitto

Ответов: 1
Просмотров: 1238
Последний ответ 26.03.2025, 19:26:30
от azm1n
Разные меню для мобильной и для ПК версии сайта

Автор jimka

Ответов: 7
Просмотров: 1462
Последний ответ 24.03.2025, 20:03:01
от R31rus
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 1633
Последний ответ 07.08.2024, 14:00:43
от denis_4
Непонятная проблема с меню

Автор THE KILLERS

Ответов: 2
Просмотров: 7161
Последний ответ 25.07.2024, 16:07:39
от THE KILLERS
Как установить header Cache-Control только для одной страницы по URL?

Автор Slava77

Ответов: 0
Просмотров: 999
Последний ответ 23.03.2024, 00:16:36
от Slava77