Новости 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).

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

dv-cto

  • Новичок
  • 9
  • 0 / 0
Вывод данных из базы
« : 12.02.2015, 17:39:07 »
Есть модуль, взаимодействующий с БД Joomla - создание-очистка-удаление собственных таблиц, заполнение из данными и вывод в табличном варианте. Все крутится во фронтенде.
Проблема с таким вопросом: требуется создать несколько однотипных таблиц с разным количеством полей. Таблиц таких довольно много и нет желание под каждую писать методы в хэлпере и шаблоны вывода. Делаю набор универсальных методов, количество полей передаю в них из скрытых полей формы (пока), названия таблиц передаю через get. С созданием таблиц разобрался - в цикле формирую строку запроса с нужным количеством полей (имена полей изменяются динамически vop1..vop2.... vopN).
Остались проблемы с выводом - не могу вывести данные. Получаю данные через $res = $db->loadObjectList().
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Вывод данных из базы
« Ответ #1 : 12.02.2015, 17:46:42 »
Цитировать
Остались проблемы с выводом - не могу вывести данные. Получаю данные через $res = $db->loadObjectList()
.
Предлагаете нам пошаманить? Код хотя бы приложили, как выводите и в чем проблема.
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Вывод данных из базы
« Ответ #2 : 12.02.2015, 17:49:39 »
требуется создать несколько однотипных таблиц с разным количеством полей.

А эти поля будут одинаковы в одоих таблицах или они все разные...

Остались проблемы с выводом - не могу вывести данные. Получаю данные через $res = $db->loadObjectList().

А если вот это http://roket.kiev.ua/index.php?option=com_content&view=article&id=36:-joomla&catid=1:articls&Itemid=6
...
*

dv-cto

  • Новичок
  • 9
  • 0 / 0
Re: Вывод данных из базы
« Ответ #3 : 12.02.2015, 19:45:40 »
.
Предлагаете нам пошаманить? Код хотя бы приложили, как выводите и в чем проблема.

нет, просто не стал сразу все кидать, вдруг это в принципе бредовая идея.

сейчас выложу код
*

dv-cto

  • Новичок
  • 9
  • 0 / 0
Re: Вывод данных из базы
« Ответ #4 : 12.02.2015, 20:06:19 »
В общем таблицы вида:
id
ключ ученика
номер школы
ответ1
ответ2
.....
ответN

В разных таблицах ответов разное количество, таблиц много, поэтому возникла мысль сделать универсальные обработчики

1 метод создания таблиц в хэлпере

Код
	public static function pkTabCrt()
{

$addP = htmlspecialchars(trim($_POST['addP'])); // идентификатор предмета например mat - математика
$addK = htmlspecialchars(trim($_POST['addK'])); // идентификатор класса - просто цифрой, например 4
$addN = htmlspecialchars(trim($_POST['addN'])); // количество полей с вопросами, определяется отдельным методом по предмету и классу

$pkName = 'mon_w78'.$addP.$addK;  // собираем имя таблицы например mon_w78mat4

$db = JFactory::getDbo();
  $query = $db->getQuery(true);
$query = "CREATE  TABLE IF NOT EXISTS ".$pkName." (
id int(4) NOT NULL auto_increment,
uchKey varchar(10) NOT NULL, // поле ключ ученика есть во всех таблицах
schoolId int(5) NOT NULL,";                             // поле номер школы есть во всех таблицах
for ($i = 1; $i <= $addN; $i++)
{
$query = $query.'otv'.$i.' int(2) NOT NULL,';    // собираю циклом поля с ответами - otv1..otv2....otvN
};
$query = $query." PRIMARY KEY (id)) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
$db->setQuery($query);
if (!$db->query())
{
// echo __LINE__.$db->stderr();
$res='error';
}else{
$res='yes';
};

//возвращаем результат
return $res;
}

В форме добавления данных в таблицу тоже циклом вывожу нужное количество полей для каждого предмета-класса

Код
<?php 
for ($vopN = 1; $vopN <= $vKol; $vopN++)
{ ?>
<tr>
<td>
Вопрос <?php echo $vopN; ?>
</td>
<td>
<input id="otv<?php echo $vopN; ?>" name= "otv<?php echo $vopN; ?>" type="text" style="width:99%;">
</td>
</tr>
<?php };
?>

получение данных таблицы

Код
$pr = $_GET['pr'];					// получаю ид предмета
$kl = $_GET['kl']; // получаю ид класса
$pkName = 'mon_w78'.$pr.$kl; // собираю имя таблицы
$result2= modMon2Helper::tableCheck($pkName); // проверяю отдельным методом наличие такой таблицы
if ($result2=='error') {
$result='error';
} else {
if ($result2=='empty') {
$result='empty';
}else{
$vKol= modMon2Helper::voprKolCheck($pr,$kl); // по предмету и классу определяю в отдельном методе количество полей
$result= modMon2Helper::tableAdmPK($pkName); // получаю данные таблицы
};
};
require_once __DIR__ . '/tmpl/tableAdmPK.php';


метод запроса данных таблицы в хэлпере

Код
public static function tableAdmPK($pkName)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = 'SELECT * FROM '.$pkName.' ORDER BY id Desc';
$db->setQuery($query);
$res = $db->loadObjectList();
if (!$db->query())
{
// echo __LINE__.$db->stderr();
$res='error';
};
return $res;
}


и вот с выводом у меня проблема - не знаю, как динамически поля ответов вывести

Код
foreach ($result as $pkInfo) : 
?>
<tr class="datas">
<td class="st1" width=20px><?php echo $pkInfo->id; ?></td>
<td class="st1" width=20px><?php echo $pkInfo->uchKey; ?></td>
<td class="st1" width=20px><?php echo $pkInfo->schoolId; ?></td>

<td class="st1" width=20px><?php echo $pkInfo->otv1; ?></td> // строка с одним ответом

............................................................................

</tr>
<?php
endforeach;

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

dv-cto

  • Новичок
  • 9
  • 0 / 0
Re: Вывод данных из базы
« Ответ #5 : 12.02.2015, 20:08:45 »
А эти поля будут одинаковы в одоих таблицах или они все разные...

А если вот это http://roket.kiev.ua/index.php?option=com_content&view=article&id=36:-joomla&catid=1:articls&Itemid=6

поля одинаковые по типу данных - числовые.

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

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Вывод данных из базы
« Ответ #6 : 12.02.2015, 21:00:48 »
Цитировать
и вот с выводом у меня проблема - не знаю, как динамически поля ответов вывести

Ну я так понял что вы в результате получаете объект с данными и вам надо подсчитать количество свойств в объекте за вычетом количества статических свойств, типа того может?
Код: php
$quantity = count( (array) $pkInfo ) - 3;
for($i = 1; $i <= $quantity ; $i++)
{
    $propName = 'otv'.$i;
    echo $pkInfo->$propName;
}

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

Тоже самое только надо проанализировать $_POST массив. И да, постом можно передавать массивы данных, имена полей должны быть вида "fieldname[]".

В дополнении хочется обратить внимание на плохую читаемость вашего кода. Даже вникать не хочется. Нельзя чтоли переменные называть как то более понятно и подходяще по смыслу? Более того у вас там в запросе sql инъекция прямо таки напрашивается..
« Последнее редактирование: 13.02.2015, 05:19:36 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

DImLaeda

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Вывод данных из базы
« Ответ #7 : 13.02.2015, 08:44:47 »
Ну я так понял что вы в результате получаете объект с данными и вам надо подсчитать количество свойств в объекте за вычетом количества статических свойств, типа того может?
Код: php
$quantity = count( (array) $pkInfo ) - 3;
for($i = 1; $i <= $quantity ; $i++)
{
    $propName = 'otv'.$i;
    echo $pkInfo->$propName;
}
Да, по смыслу так, буду пробовать, спасибо за подсказку.


Тоже самое только надо проанализировать $_POST массив. И да, постом можно передавать массивы данных, имена полей должны быть вида "fieldname[]".

В дополнении хочется обратить внимание на плохую читаемость вашего кода. Даже вникать не хочется. Нельзя чтоли переменные называть как то более понятно и подходяще по смыслу? Более того у вас там в запросе sql инъекция прямо таки напрашивается..

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

а про инъекцию не подскажете поподробнее? в этом не очень пока силен.
*

DImLaeda

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прописать условие для сохранения данных в БД

Автор semen1707

Ответов: 0
Просмотров: 558
Последний ответ 14.04.2021, 00:59:44
от semen1707
Модель для представления, которое показывает списки данных разных типов

Автор borro

Ответов: 27
Просмотров: 1353
Последний ответ 06.05.2020, 11:57:12
от Septdir
Не занимать место под пустой вывод модуля

Автор platonische

Ответов: 11
Просмотров: 1043
Последний ответ 28.04.2020, 07:53:11
от sivers
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 1345
Последний ответ 06.02.2020, 15:40:58
от golinejj
Редактирование данных в связанных таблицах

Автор NetFix

Ответов: 1
Просмотров: 835
Последний ответ 19.03.2019, 11:07:10
от platonische