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

stincv

  • Новичок
  • 8
  • 2 / 0
Доброго дня.

Возникла проблема с созданием зависимых полей для модуля средствами стандартной документации:
https://docs.joomla.org/SQL_form_field_type

Если подробнее, в модуле я добавил для поля:
Код
<field name="catid"
    type="sql"
    label="категория"
    sql_select="*"
    sql_from="#__categories"
    sql_order="id ASC"
    sql_group="title"
    sql_where="parent_id=46"
    key_field="id"
    value_field="title"
/>

<field name="people"
    type="sql"
    label="материал"
    sql_select="*"
    sql_from="#__content"
    sql_filter="catid"
    sql_group="title"
    value_field="title"
/>
В админке, в настройках модуля поля появились, по если выбрать в поле "catid" какую-либо категорию, то во втором поле ничего не меняется - все также отображаются все материалы из всех категорий. Даже не происходит AJAX запросов в консоли браузера, хотя по идее они и должны вызываться, чтобы обновить список значений второго поля.
Более того, если включить debug режим, то на странице редактирования модуля я вижу следующий дебаг по данным полям:

То есть видно, что для поля "people" формируется sql-запрос:
Код
SELECT *

  FROM lui_content

  GROUP BY title
и нигде нет упоминания про "WHERE catid = ", хотя в документации все четко описано.

У меня вопрос к сообществу, может кто-нибудь сталкивался с подобной проблемой? Почему не работает параметр sql_filter, может это я что-то делаю не так.

P.S.: Joomla 3.6.4
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Даже не происходит AJAX запросов в консоли браузера, хотя по идее они и должны вызываться, чтобы обновить список значений второго поля.
А скрипт, который должен посылать AJAX-запрос, есть?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

stincv

  • Новичок
  • 8
  • 2 / 0
А скрипт, который должен посылать AJAX-запрос, есть?

Откуда же я знаю - Joomla установлена из оф.пакета. Думаете они не добавляют туда скрипты, которые участвуют в процессах описанных в их документации? Если Вы знаете какой именно скрипт должен осуществлять AJAX, просьба сообщить, я поищу его.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Откуда же я знаю - Joomla установлена из оф.пакета. Думаете они не добавляют туда скрипты, которые участвуют в процессах описанных в их документации?
Насколько я знаю, из коробки - нет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а с чего вы взяли что там AJAX запрос должен быть?
Цитировать
и нигде нет упоминания про "WHERE catid = ", хотя в документации все четко описано.
может он появиться только после сохранения параметров
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Пишите свой тип поля, и не парьтесь, по идеи работать конечно должен, но. это же офф дока Joomla вареника что нибудь забыли. например onchange написать +
как верно сказано, скорее всего там просто нет AJAX
а чтобы проблем не было есть sql_default_
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
и нигде нет упоминания про "WHERE catid = ", хотя в документации все четко описано.
Это условие появится только тогда, когда параметр catid непустой и передан в $_REQUEST['filter'] или в сессию.
а чтобы проблем не было есть sql_default_
Не то - sql_default_ нельзя динамически менять, а ТС хочет, чтобы второй select менял значение в зависимости от первого.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Не то - sql_default_ нельзя динамически менять, а ТС хочет, чтобы второй select менял значение в зависимости от первого.
Ну а если 0 ? оно то и нужно если в первом поле пусто.
« Последнее редактирование: 08.11.2016, 15:15:46 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну а если 0 ? оно то и нужно если в первом поле пусто.
Будет
Код: sql
WHERE catid = 0
Может найти не то, что нужно или вообще ничего не найдет. Но это не относится к теме: ТС думал, что в офф.пакет уже включен динамическое изменение значения select AJAX'ом.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

stincv

  • Новичок
  • 8
  • 2 / 0
ТС думал, что в офф.пакет уже включен динамическое изменение значения select AJAX'ом.

Именно так думал ТС)
Из всего вышесказанного я понял, что sql_filter вообще не работает в данный момент. Не пойму почему в некоторых мануалах в сети приводят пример с sql_filter...
*

Septdir

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

sdi_68

  • Новичок
  • 9
  • 0 / 0
Столкнулся с той же проблемой. Посмотрел код ,действительно в Joomla сейчас нет поддержки для такого параметра. Решил доработкой файла .\libraries\joomla
\form\fields\sql.php
После строки
Код
$filters = isset($this->element['sql_filter'])? explode(',', $this->element['sql_filter']) : '';
Вставил
Код
					$curfrm = $this->form;
foreach($filters as $i => $v )
{
$filterval = $curfrm->getValue( $v, $group );
if (!is_null( $filterval ) )
$filters[$i] = $v.'='.$filterval;
}


В функцию processQuery внес следующие изменения
Код
		// Process the filters
if (is_array($filters))
{
$html_filters = JFactory::getApplication()->getUserStateFromRequest($this->context . '.filter', 'filter', array(), 'array');

foreach ($filters as $k => $value)
{
if (!empty($html_filters[$value]))
{
$escape = $db->quote($db->escape($html_filters[$value]), false);

$query->where("{$value} = {$escape}");
}
elseif (!empty($defaults[$value]))
{
$escape = $db->quote($db->escape($defaults[$value]), false);

$query->where("{$value} = {$escape}");
}
//  добавляем обработку XML параметра sql_filter BOF
else {
$query->where("{$value}");
}
//  добавляем обработку XML параметра sql_filter EOF
}
}


Вроде как работает :). Может кто-нибудь предложит лучший вариант решения....
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Столкнулся с той же проблемой. Посмотрел код, действительно в Joomla сейчас нет поддержки для такого параметра. Решил доработкой файла .\libraries\joomla
\form\fields\sql.php
После строки
Код
$filters = isset($this->element['sql_filter'])? explode(',', $this->element['sql_filter']) : '';
Вставил
Код
					$curfrm = $this->form;
foreach($filters as $i => $v )
{
$filterval = $curfrm->getValue( $v, $group );
if (!is_null( $filterval ) )
$filters[$i] = $v.'='.$filterval;
}


В функцию processQuery внес следующие изменения
Код
		// Process the filters
if (is_array($filters))
{
$html_filters = JFactory::getApplication()->getUserStateFromRequest($this->context . '.filter', 'filter', array(), 'array');

foreach ($filters as $k => $value)
{
if (!empty($html_filters[$value]))
{
$escape = $db->quote($db->escape($html_filters[$value]), false);

$query->where("{$value} = {$escape}");
}
elseif (!empty($defaults[$value]))
{
$escape = $db->quote($db->escape($defaults[$value]), false);

$query->where("{$value} = {$escape}");
}
//  добавляем обработку XML параметра sql_filter BOF
else {
$query->where("{$value}");
}
//  добавляем обработку XML параметра sql_filter EOF
}
}


Вроде как работает :). Может кто-нибудь предложит лучший вариант решения....

а эта функция processQuery где расположена и после чего ее вставлять?
*

sdi_68

  • Новичок
  • 9
  • 0 / 0
в том же файле
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 1382
Последний ответ 21.05.2025, 12:44:06
от jeans
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1955
Последний ответ 06.04.2025, 09:27:20
от wishlight
Не работает капча

Автор Leo1986

Ответов: 4
Просмотров: 1068
Последний ответ 16.09.2024, 09:15:28
от Leo1986
Дублируются дивы у модуля mod_custom

Автор timofe

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

Автор goga_pgasovav

Ответов: 3
Просмотров: 1211
Последний ответ 07.06.2024, 11:15:50
от goga_pgasovav