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

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
JoomlaComponent + AJAX
« : 15.11.2011, 10:06:55 »
Привет всем!
Подскажите пожалуйста, как реализовать такую вещь:
В компоненте административной части при заполнении данных, их надо сверить с базой данных Joomla и получить результат о занятости кабинета.
Как сделать это с помощью AJAX безопасно в движке Joomla ?  ^-^
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
*

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
Re: JoomlaComponent + AJAX
« Ответ #2 : 15.11.2011, 15:55:28 »
Спасибо +. статья супер
*

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
Re: JoomlaComponent + AJAX
« Ответ #3 : 15.11.2011, 16:45:12 »
Есть одно но:
Код: php
<form action="index.php?option=com_mycomponent/form_handler.php"  method="post" enctype="multipart/form-data">
        <input type="file" name="Filedata" />
    <input type="submit" />
</form>
Отправить на ?option=com_mycomponent/form_handler.php нельяз в Joomla 1.7 .... что же делать ? (404 компонент не найден)
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: JoomlaComponent + AJAX
« Ответ #4 : 15.11.2011, 17:42:50 »
Отправить на ?option=com_mycomponent/form_handler.php нельяз в Joomla 1.7 .... что же делать ? (404 компонент не найден)
что значит нельзя?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: JoomlaComponent + AJAX
« Ответ #5 : 15.11.2011, 18:00:29 »
Так Restricted access вернет.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
Re: JoomlaComponent + AJAX
« Ответ #6 : 15.11.2011, 18:02:52 »
Цитировать
что значит нельзя?
у меня пишет ошибка 404 Компонент не найден. В Joomla 1.7 я так понял нельзя файл через слэш указывать либо я что то не так делаю.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: JoomlaComponent + AJAX
« Ответ #7 : 15.11.2011, 18:24:16 »
Обычно так делается
Код: php
echo JRoute::_('index.php?option=com_component&view=viewname');
echo JRoute::_('index.php?option=com_component&task=controllername.methodname');
или подобным образом.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: JoomlaComponent + AJAX
« Ответ #8 : 15.11.2011, 18:32:46 »
у меня пишет ошибка 404 Компонент не найден. В Joomla 1.7 я так понял нельзя файл через слэш указывать либо я что то не так делаю.
естественно нельзя))
это же просто пример.
Можно указать на конкретно исполняемый файл если нужно.
Lex
ответил, если предполагается какое-то действие, то логично указать на какую-то задачу (task) в контроллере, ну от него уже плясать дальше
*

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
Re: JoomlaComponent + AJAX
« Ответ #9 : 15.11.2011, 18:34:59 »
Смотрите, а вот к примеру:
Код: javascript
function createObject() {var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}

var http = createObject();

/* -------------------------- */
function searchNameq() {
teacher = encodeURI(document.getElementById('teacher').value);
cabinet = encodeURI(document.getElementById('cabinet').value);
nedelya = encodeURI(document.getElementById('nedelya').value)
time = encodeURI(document.getElementById('time').value)
nocache = Math.random();
http.open('get', '/components/com_hello/proverka.php?teacher='+teacher+'&cabinet='+cabinet+'&nedelya='+nedelya+'&time='+time+'&nocache = '+nocache);
http.onreadystatechange =  searchNameqReply;
http.send(null);
}
function searchNameqReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('search-result').innerHTML = response;
}
}
Как я понял rasponse возвращает весь HTML страницы верно, но у нас там вместе с админкой... если сделать через task задание.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: JoomlaComponent + AJAX
« Ответ #10 : 15.11.2011, 18:38:35 »
Как я понял rasponse возвращает весь HTML страницы верно, но у нас там вместе с админкой... если сделать через task задание.
Если не нужно возвращать весь документ, поиск по слову "format=raw" поможет, обсуждалась не раз.

ЗЫ: зачем указывать "/components/com_hello/..." не понятно)) лучше делать ссылки без SEF, тогда вы сможете добавить необходимые параметры.
Тем более если для админки, там SEF вообще нет.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: JoomlaComponent + AJAX
« Ответ #11 : 15.11.2011, 18:42:47 »
Да хз что он возвращает. Что файл proverka.php отдаст,  то и возвращает.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: JoomlaComponent + AJAX
« Ответ #12 : 15.11.2011, 18:44:55 »
Да хз что он возвращает. Что файл proverka.php отдаст,  то и возвращает.
))
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: JoomlaComponent + AJAX
« Ответ #13 : 15.11.2011, 18:52:13 »
Ладно. Давай напишем компонент вернее часть. Если у меня терпения хватит. Понял так что надо AJAX отдать на сервер некие данные, там проверить и возвратить true или false. В зависимости от результата подгрузить либо на страницу А либо на страницу Б. Правильно?
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

DanUnited

  • Захожу иногда
  • 124
  • 2 / 0
  • Программист TH ■■■■■■■■■□ (90%) (C)D.u. company
Re: JoomlaComponent + AJAX
« Ответ #14 : 15.11.2011, 18:55:40 »
щикарно всё получилось.
Создаем форму запроса как:
Код: php
<form action="index.php?option=com_hello&format=raw"  method="post" enctype="multipart/form-data">
        <input type="file" name="Filedata" />
<input type="submit" />
<input type="hidden" name="option" value="com_hello" />
<input type="hidden" name="view" value="default" />
<input type="hidden" name="layout" value="bd" />
</form>
В виде default создаем view.raw.php )) После чего возвращается чистый HTML компонента )
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Component+Ajax+json

Автор olejenya

Ответов: 16
Просмотров: 4332
Последний ответ 04.02.2015, 00:34:42
от Aleks.Denezh
Красивая подсказка с помощью hasTip + AJAX

Автор Aeliot

Ответов: 7
Просмотров: 1414
Последний ответ 07.11.2013, 16:43:15
от Aeliot
Использование AJAX в Joomla 2.5/3.0

Автор platonische

Ответов: 2
Просмотров: 5474
Последний ответ 28.05.2013, 01:27:50
от platonische
AJAX и Joomla

Автор skyer

Ответов: 31
Просмотров: 7156
Последний ответ 22.11.2011, 01:08:43
от skyer