Новости Joomla

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

👩‍💻 v.2.6.1. Что нового?
- Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
- Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
- Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
- Рефакторинг и правки кода. Текущее обновление кодовой базы.
- Исправление ошибок.

👩‍💻 Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

- Страница расширения
- GitHub расширения
- Joomla Extensions Directory

@joomlafeed

Событие Pizza, Bugs & Fun - 29-30 января 2026 года.

Событие Pizza, Bugs & Fun  - 29-30  января 2026 года.

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Ссылки на видео и статьи из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF, а так же что и как делать.

В рамках события PBF все желающие могут собираться в общий онлайн чат, обсудить вопросы Joomla и приложить к их разрешению свою руку. Самый классный вариант, когда эта встреча происходит оффлайн: тогда организовывается пицца, напитки по вкусу и несколько часов совместного творчества.

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,
  • кто-то пишет код,
  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

https://www.youtube.com/watch?v=a-FuVKXg_Uw 

На момент написания данного поста в репозитории Joomla 810 открытых Issue (как правило это баги) и 236 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀 И ничего не останется нашим коллегам из международных Joomla-чатов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 2594 Просмотров
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
Подскажите, как составить запрос вида:
Код: php
$db 		= 	$this->getDBO();

$subquery = $db->getQuery(true);
$subquery -> select($db->quoteName('b.vendor_params'));
$subquery -> from($db->quoteName('#__vendors', 'b'));
$subquery -> where($db->quoteName('b.vendor_id'). ' = 1');

$query = $db->getQuery(true);
$query -> select($db->quoteName('a.user_code'));
$query -> from($db->quoteName('#__mycomp', 'a'));
$query -> where($db->quoteName('a.user_id'). ' IN (' . $subquery . ')');
$db -> setQuery($query);
$result = $db->loadColumn();

если поле b.vendor_params содержит данные, разделенные запятой. структуру таблицы b изменить нельзя.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Я что-то не пойму, что хранится в vendor_params? Там какие-то значения через запятую и среди них есть user_id?
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
одним запросом делать - это как минимум неправильно
т.к. подзапрос может ничего не вернуть и в результате получится ошибка
Цитировать
IN ()
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну тогда это просто невозможно. Как база поймёт, что среди строки, типа lala,11,lala,lala,12121, есть user_id? Или там как-то по другому хранятся данные или там все значения, это user_id?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код: php-brief
$subquery=trim(implode(',',$db->loadColumn()),',');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
Ну тогда это просто невозможно. Как база поймёт, что среди строки, типа lala,11,lala,lala,12121, есть user_id? Или там как-то по другому хранятся данные или там все значения, это user_id?
там все значения user_id, т.е. там хранится строка вида: 123,56,889,416 и т.п.
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
одним запросом делать - это как минимум неправильно
т.к. подзапрос может ничего не вернуть и в результате получится ошибка
да, я попробовал так:
Код: php
$db 		= 	$this->getDBO();
 
$subquery = $db->getQuery(true);
$subquery -> select($db->quoteName('b.vendor_params'));
$subquery -> from($db->quoteName('#__vendors', 'b'));
$subquery -> where($db->quoteName('b.vendor_id'). ' = 1');
$db -> setQuery($subquery);
$subresult = $db->loadResult();
 
$query = $db->getQuery(true);
$query -> select($db->quoteName('a.user_code'));
$query -> from($db->quoteName('#__mycomp', 'a'));
$query -> where($db->quoteName('a.user_id'). ' IN (' . implode(',', $subresult). ')');
$db -> setQuery($query);
$result = $db->loadColumn();

и получил ошибку IN (), хотя подзапрос
Код: php
$subquery = 	$db->getQuery(true);
$subquery -> select($db->quoteName('b.vendor_params'));
$subquery -> from($db->quoteName('#__vendors', 'b'));
$subquery -> where($db->quoteName('b.vendor_id'). ' = 1');
$db -> setQuery($subquery);
$subresult = $db->loadResult();

возвращает результат вида 123,56,889,416
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
потому что если бы вы не поленились почитать документацию по функции imlode то увидели бы что implode — Объединяет элементы массива в строку, а вы что передаете вторым параметром и что хотите в итоге получить?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
там все значения user_id, т.е. там хранится строка вида: 123,56,889,416 и т.п.
Ну тогда Ваш первый запрос по идее верный. Получаете ошибку?

Сделайте
Код: php
echo $query->dump();
перед
Код: php
$db->setQuery($query); 
и посмотрите, как выглядит чистый запрос.
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
потому что если бы вы не поленились почитать документацию по функции imlode то увидели бы что implode — Объединяет элементы массива в строку, а вы что передаете вторым параметром и что хотите в итоге получить?
я знаю, что означает implode. меня тоже смутило использование данной функции, но везде в интернете, где я встречал подобное, советовали делать так. например, тут
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
я знаю, что означает implode. меня тоже смутило использование данной функции, но везде в интернете, где я встречал подобное, советовали делать так. например, тут
Так это если у Вас массив. У Вас же готовая строка 123,56,889,416 - она в IN() прекрасно становится.
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
Так это если у Вас массив. У Вас же готовая строка 123,56,889,416 - она в IN() прекрасно становится.
понятно. я, по причине неопытности, думал, что массив.
с запросом разобрался. изначальный вариант заработал.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
понятно. я, по причине неопытности, думал, что массив.
вот потому и надо было почитать на php.net документацию и как работает и что принимает функция implode http://php.net/manual/ru/function.implode.php
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
вот потому и надо было почитать на php.net документацию и как работает и что принимает функция implode http://php.net/manual/ru/function.implode.php
спс, буду знать теперь.

такой вопрос:
пытаюсь составить запрос вида:
Код: sql
SELECT `t`.`id` FROM `table` AS `t` WHERE `t`.`name` <> 'some_name'
конструкции вида:
!=
<>
NOT LIKE

не работают. в интернетах тоже ничего толкового не нашел.
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
запрос не выдает нужный результат
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
если вывести в дамп запрос, то видно, что он обрезает значение, по которому надо выбирать.
т.е. я делаю запрос так:
Код: php
$db 	= 	$this->getDBO();
$query = $db->getQuery(true);
$query -> select($db->quoteName('t.id'));
$query -> from($db->quoteName('#__table', 't'));
$query -> where($db->quoteName('t.name'). ' <> ' . $db->quote('some_name'));
$db -> setQuery($query);
$result = $db->loadResult();

а на выходе получаю

Код: mysql
SELECT `t`.`id` FROM `table` AS `t` WHERE `t`.`name
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
также пробовал строку
Код: php
$query	->	where($db->quoteName('t.name'). ' <> ' . $db->quote('some_name'));
заменить на
Код: php
$query	->	where('t.name <> "some_name"');
но все равно обрезается значение
Код: sql
... WHERE `t`.`name
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ваш запрос (скопировал код ) у меня: SELECT `t`.`id` FROM `#__table` AS `t` WHERE `t`.`name` <> 'some_name'
Возможно у вас что то с кодировкой файла!
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
с кодировкой все нормально, т.к. в этом файле модели и другие запросы есть, они корректно работают.
ок. буду соображать дальше, в чем может быть ошибка.
*

robert

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

denism300

  • Захожу иногда
  • 210
  • 5 / 0
А как вы получаете?
вот так получаю:
Код: php
echo $query->dump();

все, победил эту проблему. сделал так:
Код: php
$db 	= 	$this->getDBO();
$query = $db->getQuery(true);
$query -> select($db->quoteName('t.id'));
$query -> from($db->quoteName('#__table', 't'));
$query -> where($db->quoteName('t.name'). ' NOT LIKE ' . $db->quote('%some_name%'));
$db -> setQuery($query);
$result = $db->loadResult();
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А что вы будете делать, когда нужно name=some_name_blah? Надо найти причину ошибки, хотя все довольно странно. Кстати, вы написали, что получаете строку запроса путем echo $query->dump();. У вас что, внешний скрипт?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

denism300

  • Захожу иногда
  • 210
  • 5 / 0
А что вы будете делать, когда нужно name=some_name_blah? Надо найти причину ошибки, хотя все довольно странно.
а вот про этот момент я не подумал. :(
но только при таком написании запроса он не обрезается.

Кстати, вы написали, что получаете строку запроса путем echo $query->dump();. У вас что, внешний скрипт?
нет, внешних скриптов нет.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
а почему вы решили что запрос неправильно работает? и вы смотрели что выводит в просмотре кода?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код
echo $query->__toString();
тоже обрезает? покажите реальный запрос
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код
echo $query->__toString();
тоже обрезает? покажите реальный запрос
Вообще то при "echo $query" и вызывается __toString()...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
так и есть, но dump выводится в тегах pre. хотел убедиться, что у ТС нет проблем с ними из за CSS или <> в запросе, например как вы сказали из-за неверной кодировки
« Последнее редактирование: 20.11.2016, 13:54:26 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Селект с возможностью выбора всех данных материала

Автор bombapiter

Ответов: 3
Просмотров: 1005
Последний ответ 30.04.2021, 13:17:13
от v42bis
Помогите оптимизировать getDBO запрос

Автор goga_pgasovav

Ответов: 5
Просмотров: 894
Последний ответ 10.12.2020, 12:36:56
от goga_pgasovav
Произошла ошибка при получении данных json: код состояния http 0. error

Автор Андрей Купцов

Ответов: 2
Просмотров: 4298
Последний ответ 18.12.2019, 10:14:55
от Андрей Купцов
Вывод данных соглано таблицы Excel

Автор warlocksp

Ответов: 56
Просмотров: 2810
Последний ответ 28.02.2019, 23:56:23
от warlocksp
Юникод при записи параметров в базу данных

Автор Taatshi

Ответов: 12
Просмотров: 1418
Последний ответ 30.10.2017, 14:27:31
от SeBun