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

gg.tatarin

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Доброго дня. Имеется тестовый сайт (https://test.globalcoffee.info/) на котором всё делается. Подскажите, пожалуйста, как можно и правильней будет реализовать, чтобы после оплаты стал доступен определённый раздел (страница). На главной странице сайта я добавил, так скажем тарифы, тарифы полностью одинаковые разница будет только в количестве дней подписки. Сейчас постараюсь по полочкам написать, чего хотелось бы реализовать.



- После выбора тарифа и нажатия на кнопку "Choose this plan" открывалась страница с оплатой (к примеру interkassa)
- После оплаты тарифа покупателя переносит в другую группу, которой разрешён просмотр закрытого раздела на сайте
- Скажем покупатель оплатил тариф #1, который действует 7 дней, после окончания семи дней покупателю обратно присваивается простая группа

В целом это 3 основных пункта, есть ещё несколько нюансов, но они не так важны. Прошу у Вас помощи. Может быть подскажете какой-нибудь компонент? Или же решение внутри Joomla? Заранее всех благодарю за ответы.
*

gg.tatarin

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Доступ к разделу после оплаты
« Ответ #2 : 06.10.2018, 16:33:25 »
Спасибо большое, draff. Честно говоря не рассматривал этот компонент, так как его поддержка прекратилась. Сейчас же буду посмотреть)
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Доступ к разделу после оплаты
« Ответ #3 : 06.10.2018, 19:53:06 »
Я бы сделал проще. Понадобиться скрипт, который меняет группу пользователя при обращении с определенными параметрами. Оплату мутим через Яндекс, а страницей на которую должен быть возврат после покупки, указываем наш скрипт. Единственный минус здесь, это необходимость покупателю нажимать кнопку вернуться в магазин, иначе не сработает.
*

gg.tatarin

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Доступ к разделу после оплаты
« Ответ #4 : 06.10.2018, 22:42:19 »
Цитировать
Я бы сделал проще. Понадобиться скрипт, который меняет группу пользователя при обращении с определенными параметрами. Оплату мутим через Яндекс, а страницей на которую должен быть возврат после покупки, указываем наш скрипт. Единственный минус здесь, это необходимость покупателю нажимать кнопку вернуться в магазин, иначе не сработает.
Можно попробовать, как вариант. Можно поподробнее, пожалуйста. Что за скрипт? Самому писать надо? Если да, то без вариантов. Я начинающий в этом деле.

По поводу Акибы. Установил, но всё на английском, в том числе и на самом сайте. Нашёл на просторах интернета, уже и не знаю где, так как много сайтов было просмотрено, русификатор, но для старой версии. В целом рабочий, за исключение нескольких надписей. Также, не смог убрать лишние поля и текст (страна и счёт фактура) в подтверждении подписки. Кнопки какие-то некрасивые и текст расположен не по центру кнопки. Скриншот прилагается.


Устал уже, завтра буду смотреть дальше. Надеюсь придётся довести до ума, но пока что всё крайне сыро и некрасиво.

P.S. Если есть ещё варианты, то прошу Вас отписать, заранее благодарю.
« Последнее редактирование: 06.10.2018, 22:58:13 от gg.tatarin »
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Доступ к разделу после оплаты
« Ответ #5 : 06.10.2018, 23:03:06 »
Перевести и отверстать под свои нужды
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Доступ к разделу после оплаты
« Ответ #6 : 06.10.2018, 23:14:49 »
Насчет скрипта, да, надо составлять самому) У меня готового решения нет. Как вариант, можешь в коммерческий отдел обратиться - скрипт простой должен получится, значит и цена небольшая будет.
*

gg.tatarin

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Доступ к разделу после оплаты
« Ответ #7 : 07.10.2018, 11:33:43 »
Цитировать
Перевести и отверстать под свои нужды
С переводом разобрался и уже потихонечку редактирую. С кнопками проблема тоже решена. Единственное, не могу понять, как убрать страну и счёт-фактуру.

Цитировать
Насчет скрипта, да, надо составлять самому) У меня готового решения нет. Как вариант, можешь в коммерческий отдел обратиться - скрипт простой должен получится, значит и цена небольшая будет.
Сначала попробуем сделать с помощью Акибы, так как в целом всё хорошо. Да есть нюансы и их не мало, но думаю получится оптимизировать под себя. Если уже ничего не получится, то будем решать уже через Ваш вариант. Спасибо)

----------------------------------------------------

Ещё момент. А можно ли вообще сделать через Акибу, чтобы авторизованных пользователей при выбора тарифа и нажатии кнопки сразу же перебрасывало на интеркассу, если же - гость, то в модальном окошке форма авторизации. Этот вариант хотелось реализовать изначально и он идеальный для меня. Если же не получится, то, конечно, жаль, но ничего страшного, обойдусь)
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Доступ к разделу после оплаты
« Ответ #8 : 07.10.2018, 13:33:46 »
Единственное, не могу понять, как убрать страну и счёт-фактуру.
Тут только настройки акибы и ее код копать
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

gg.tatarin

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Доступ к разделу после оплаты
« Ответ #9 : 07.10.2018, 14:48:38 »

Уже совсем другой вид и смотреть приятнее. Но так как я код не знаю и не особо в этом разбираюсь попробую удалять из компонента разные папки связанные с инвойсом, быть может что нибудь да получится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема со входом в панель администратора Joomla 3.x после обновления

Автор danieeljose

Ответов: 2
Просмотров: 1578
Последний ответ 24.03.2025, 20:33:02
от R31rus
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 849
Последний ответ 22.11.2024, 07:14:15
от stepan39
После выключения расширения лег сайт

Автор blind

Ответов: 4
Просмотров: 1480
Последний ответ 19.05.2024, 14:13:33
от blind
Пропало главное меню, и контент на главной (после обновления)

Автор GTHack

Ответов: 15
Просмотров: 1913
Последний ответ 07.01.2024, 16:00:15
от ProtectYourSite
После загрузки не кликабельная картинка

Автор phvsfpgs

Ответов: 0
Просмотров: 743
Последний ответ 04.09.2023, 19:01:35
от phvsfpgs