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

Negative

  • Захожу иногда
  • 157
  • 5 / 0
Задача следующая:
Нужно добавить в базу данных, где описываются пользователи Joomla несколько полей для описания пользователя, чтобы в разделе "Пользователи" помимо имени пользователя и пароля был ещё селект, дающий понять, скажем Клиент ли этот пользователь или же Партнёр

Нужно это для того чтобы, перед тем как впустить пользователя на сайт, я смог бы проверить кто он такой и в зависимости от результатов идентификации загрузить нужную для него информацию, либо же переместить на какой-нибудь мой сайт

Каким образом лучше всего осуществить эту процедуру и с помощью каких средств?
*

OLIWIN

  • Захожу иногда
  • 81
  • 0 / 0
Тоже интересует такой вопрос! Только для добавления товара
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
неужели никто не знает?) не верю)
как хотя бы называется таблица, где описываются пользователи Joomla? и как называется файл в файловой структуре Jommla, имеющий код вывода данных о юзере в админке?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Вариант 1. Добавить новые группы пользователей. http://forum.joomla.org/viewtopic.php?f=431&t=262604&start=0
Вариант 2. В файле administrator\components\com_users\models\user.xml добавить
Код: xml
<param name="status" type="radio" default="1" label="Status" description="DESCRIPTION">
           <option value="1">Customer</option>
           <option value="2">Partner</option>
         </param>
В алминке в параметрах пользователя появяться радиоселекты.
Потом извелекать эти параметры и проверять
Код: php
$user = JFactory::getUser();
$params = $user->getParam('status','');
if ($params == ''){
echo "Гость";
};
if ($params == '1'){
echo "Клиент";
};
if ($params == '2'){
echo "Партнер";
};
Выбор варианта зваисит от задачи.
« Последнее редактирование: 10.03.2010, 13:36:47 от Lex »
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
Lex, спасибо огромное! Всё заработало как надо! :-*

*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
Только появился вопрос, как вместо радиопереключателей отобразить селектовый список?
Попробовала просто вписать в type вместо radio слово select - не работает

И ещё почему-то когда создаёшь после этого кода

Код
<param name="status" type="radio" default="1" label="Status" description="DESCRIPTION">
           <option value="1">Customer</option>
           <option value="2">Partner</option>
         </param>
 


ещё один к примеру вот такой:

Код
<param name="status" type="radio" default="1" label="City" description="DESCRIPTION">
           <option value="london">London</option>
           <option value="newyork">New York</option>
         </param>
 

то у всех четырёх радиоселектов (Customer, Partner, London, New York) образуется общая связь и выбрать можно только либо пункт Partner либо пункт New York, а независимо выбирать нельзя отдельно по статусу и отдельно по городу, почему так происходит?
« Последнее редактирование: 11.03.2010, 18:30:05 от Negative »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
и не будет работать. ставьте list
Standard parameter types
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
вышеназванные проблемы решены  ^-^
SmokerMan, спасибо :-*

Хотя один момент непонятный есть ^-^
Когда сохраняешь настройки юзера, и потом сразу же заново заходишь в его редактирование то отмеченного радиоселекта Customer нет, ни один радиоселект не выбран
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Когда сохраняешь настройки юзера, и потом сразу же заново заходишь в его редактирование то отмеченного радиоселекта Customer нет, ни один радиоселект не выбран
Кэш включен?
Возможно просто кэшируется.
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
SmokerMan, нет, кэш выключен

И ещё один непонятный момент есть
Когда я в PHP пытаюсь указать в условии дополнительный критерий, к примеру такой

Код
$user = JFactory::getUser();
$params = $user->getParam('status','');
if ($params == ''){
echo "Гость";
};
if ($params == '1'){
echo "Клиент";
};
if ($params == '2') && ($params == 'london'){
echo "Партнер";
};

то выводится следующая ошибка:
Parse error: parse error in C:\xampp\htdocs\JOOMLA3\templates\siteground-j15-71\index.php on line 9

[size=8]9-я строка это строка "if ($params == '2') && ($params == 'london'){"[/size]
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Код: php
$user = JFactory::getUser();
$params = $user->getParam('status','');
if ($params == '') {
echo 'Гость';
}
if ($params == '1') {
echo 'Клиент';
}
if (($params == '2') && ($params == 'london')) {
echo 'Партнер';
}
кто вас учил ставить точку с запятой после закрывающей скобки условия :)

По поводу последнего условия - как это одновременно переменная $params может быть и 2 и london по значению? Наверно имелось в виду условие ИЛИ - тогда надо не && а ||
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
Никто не учил, просто скопировала код из сообщения Lex и даже не обратила внимание  ^-^

А по поводу условия - поняла свою ошибку, но мне действительно нужно условие И
Нужно будет идентифицировать партнёра именно из конкретного города, только вот как это сделать непонятно :dry:
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
А по поводу условия - поняла свою ошибку, но мне действительно нужно условие И
одна переменная никак не может хранить в один момент времени два значения, это же не массив к элементам которого вы обращаетесь (вас же не могут одновременно звать и Вася и агент007)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
:)
Нужно будет идентифицировать партнёра именно из конкретного города, только вот как это сделать непонятно :dry:
ну для этого минимум две переменные нужны, если я правильно понял.
Делайте еще один параметр, раз уж такая пляска :)

бзз
beliyadm опередил :)

Да добавлю еще.
Поставьте лучше что-нибудь на подобии CB, я думаю так будет проще для всех ;)
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
а как черех XML передать в пхп-код значение города в данном случае?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
а как черех XML передать в пхп-код значение города в данном случае?
мм, еще раз и подробнее
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
Ну вот в посте Lexa во втором варианте показано как можно в файле user.xml создать значения param

А потом в PHP коде уже задать условия относительно значения полученной переменной

Вот как мне в файле user.xml создать переменную, которая будет описывать город (а не статус пользователя) и задем в PHP коде где-нибудь получить эту уже вторую переменную
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
кто вас учил ставить точку с запятой после закрывающей скобки условия :)
Я учил.   crazy! Ибо был слегка пьян.  ;D
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Negative

  • Захожу иногда
  • 157
  • 5 / 0
и всё-таки) как же мне передать в PHP возможность идентифицировать город?)
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Делайте еще один параметр, раз уж такая пляска :)
По аналогии
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться