Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

usemind

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
Здравствуйте.

Цель: вывести из таблицы данные А и Б, используя сторонний файл PHP, написанный на простом PHP, а не на жумловском. Я как бы не новичок, но мало что понимаю в PHP, простите уж.

Написал скрипт, который обращается к БД Joomla, но на обычном не жумловском PHP, типа:

$db = mysql_connect("localhost","base","pass");
mysql_select_db("name_db",$db);

это в одном файле. Например, разместил его в какой-нибудь директории и затем закроем её от записи, защитим файлом htaccess, типа:

<Files connect_to_database.php>
order deny,allow
deny from all
</Files>
Deny from all

Затем создал еще один файл, доступ к которому будет у пользователя, например он расположен в директории с Joomla 1.5 и называется video.php

в нем код получает из _GET запроса ID видео, которое будет выведено по ссылке, например:

http://site.ru/folder1/video.php?id=123

сам код файла

// подключаем файл, который подключился к БД и находится в защищенной директории (который описан выше)

require_once ($_SERVER['DOCUMENT_ROOT'].'/directory_no_access/connect_to_database.php');

//экранирование какое-то нарыл в хабре, наверное экранирует кавычки =)
function prepareStr( $str ) {
    return "'". str_replace(
        array( '\\', "\0", "\n", "\r", "'", '"', "\x1a" ),
        array( '\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z' ),
        $str ). "'";
}
$id_vi = ($_GET["id"]);
//get result
$result = mysql_query("SELECT video FROM prefixdb_videos WHERE id=". prepareStr( $id_vi ),$db);


while($row = mysql_fetch_assoc($result)){
    echo $row['video'];
}
mysql_close($connection);

Далее... при заходе на страницу пользователь будет видеть плеер видео у которого ID передается в _GET.

http://site.ru/folder1/video.php?id=123

НО!

Подскажите насколько это безопасно и уязвимо, и как проверить уязвимости, если таковые есть (если можно, то с примерами).
------------------2--------------
Как можно средствами Joomla подключится к БД с ней без использования первого файла, описанного мной, чтобы далее выполнить те же задачи... ?
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Данный код уязвим для sql-injection, то что используется фильтр это для обреза переносов строк и спец симвалов, поидее он тут вообще не нужен, достаточно использовать функцию trim()для того чтоб небыло иньекции, юзайте функцию intval(), подробней об этой функции можно почитать сдесь http://www.php.su/functions/?intval, также полезно почитать про http://php.net/manual/ru/function.mysql-real-escape-string.php,
вот так будет лучше
Цитировать
$result = mysql_query("SELECT video FROM prefixdb_videos WHERE id='".intval($id_vi)."'".,$db);
*

usemind

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
winstrool, благодарю за хороший ответ. воспользуюсь Вашим советом :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

базы данных в папке администратора и безопасность

Автор Antonio Racter

Ответов: 3
Просмотров: 904
Последний ответ 26.03.2017, 17:41:13
от Antonio Racter
Безопасность Joomla 3.0 Как блокировать запросы POST?

Автор BuzCrysl

Ответов: 19
Просмотров: 3740
Последний ответ 31.01.2017, 13:12:23
от sterveo
пытаюсь Вылечить сайт на 2, 5 от вредоносного скрипта

Автор inspire

Ответов: 8
Просмотров: 1125
Последний ответ 12.01.2017, 14:15:55
от vipiusss
Появление скрипта

Автор uisr

Ответов: 42
Просмотров: 4243
Последний ответ 13.12.2016, 11:36:04
от SeBun
Форма связи с пользователем (гостевая книга, форма комментариев) и безопасность

Автор Igoritaly

Ответов: 8
Просмотров: 1687
Последний ответ 13.11.2015, 15:57:39
от Igoritaly