Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Хотя не совсем верная тема - правильнее наверное  -  не умею запустить модуль из url
пытаюсь сделать модуль из заготовки модуля SP Simple Map  , попытался ее расширить
на сайте настроил модуль таким образом - к url меню привязал пустой content Article а модуль привязал к этому меню .
Технологии точно не понимаю но вывод модуля отображается вместо  Article
то есть вероятнее всего, com_content вызывает мой модуль. картинка обьяснит лучше мое косноязыкое описание
Спойлер
[свернуть]
Все великолепно, но дело дошло до AJAX ,
там все достаточно, как я думал стандартно, но вычитал гдето, что бы не выводить AJAX вызов из под контроля Joomla framework (для безопасности) целесообразно в качестве url указывать ссылку на сам модуль , где вероятно отдельным task обрабатывать AJAX. Конечно верное решение, работает restricted Access и  легче подгрузить что то полезное из Joomla, поскольку ты уже в модуле а не в стороннем файле обработчике аякса.
https://stackoverflow.com/questions/13446333/putting-ajax-in-a-joomla-module
вот тут тоже похожее объяснение
казалось бы все просто - делаю
 url: "/index.php?option=mod_sp_simple_map&task=getCustomerJson"
это мой модуль, который переделываю
и лезу в отладчик что бы посмотреть 
$input=JFactory::getApplication()->input;  -то там в POST передается, ожидая увидеть переменные из url AJAX
а вижу я там переменные com_content article id от 404 ошибки, ну тоесть ответом на AJAX идет 404
ну тоесть /index.php?option=mod_sp_simple_map дает ошибку - полагаю изза настроек модуля через ссылку в меню на Артикль, хотя не уверен.

Извините за сумбурное объяснение, но может подскажете как правильно вызвать из аякса какойто кусок кода из модуля
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #2 : 05.03.2018, 23:34:11 »
Оно?
https://cmscafe.ru/docs/joomla/developer/module-joomla-2-5-joomla-3/616-ajax-funktsionalnost-s-pomoshchyu-ajax-interfejsa-com-ajax
Дмитрий, спасибо, читал всяко про com_ajax, но мне  кажется что для меня это несколько сложнее, поэтому пока боюсь туда лезть. мне кажется я просто чего то недопонимаю в модуле, поскольку поставил и сразу нашел место где писать код)) а как он с Joomla взаимодействует не разобрался. Но если не въеду, то попробую, спасибо
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #3 : 05.03.2018, 23:56:18 »
но мне  кажется что для меня это несколько сложнее, поэтому пока боюсь туда лезть.
там ничего сложного нет

делаете запрос аяксом такой строки (можете банально даже в браузере вставить после адреса вашего сайта)
index.php?option=com_ajax&module=sp_simple_map&format=raw&method=test

В классе файла  hepler.php вашего модуля вставляете метод

static function getTestAjax(){
echo '123';
}

Увидели на экране 123 значит всё ок, и можно делать AJAX запрос по этим переменным, не увидели уже другой разговор..
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #4 : 06.03.2018, 00:14:29 »
там ничего сложного нет

делаете запрос аяксом такой строки (можете банально даже в браузере вставить после адреса вашего сайта)
index.php?option=com_ajax&module=sp_simple_map&format=raw&method=test

В классе файла  hepler.php вашего модуля вставляете метод

static function getTestAjax(){
echo '123';
}

Увидели на экране 123 значит всё ок, и можно делать AJAX запрос по этим переменным, не увидели уже другой разговор..
Супер объяснение)), не увижу - дам знать.спасибо
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #5 : 06.03.2018, 10:06:15 »
helper.php создал, не было
Спойлер
[свернуть]
добавил в XML модуля
Сначало было сообщение модуль неопубликован, поборол с помощью ваших советов добавить itemid меню в url, убрал подчеркивания в названии модуля
?option=com_ajax&module=sp_simple_map&format=debug&method=test&Itemid=449
дает
LogicException: Method testAjax does not exist.

 
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #6 : 06.03.2018, 10:22:42 »
LogicException: Method testAjax does not exist.
 
Наверно с getTestAjax я поспешил, 100 лет не юзал этот функционал ) попробуйте назвать метод просто testAjax.
да, посмотрел сейчас по коду get не нужно просто testAjax
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #7 : 06.03.2018, 12:03:04 »
Да, затарахтел, странно я тоже где-то прочел что нужна приставка  get
Спасибо.
попробую так сделать, хотя конечно не очень понимаю зачем мне  лишняя нахлобучка из com_ajax, и почему Joomla не дает способа обратиться через аjax напрямую
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #8 : 06.03.2018, 13:25:52 »
Код
$.ajax({
type: 'POST',
url: "/modules/mymodule/ajax.php",
target: '',
data: formdata,
cache: false,
success: function(response){
console.log(response);
}
});

И в папке вашего модуля mymodule кидаете файлик AJAX.php (в нижнем регистре конечно, форумная автозамена иногда шутки шутит :)

Код
<?php
// подключим фреймворк движка
define( '_JEXEC', 1 );

header('Content-Type: text/html; charset=utf-8');

if ( file_exists( __DIR__ . '/defines.php' ) ) {
    include_once __DIR__ . '/defines.php';
}
if ( !defined( '_JDEFINES' ) ) {
    define( 'JPATH_BASE', __DIR__ . '/../../' );
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';

// получаем данные из formdata и пользуемся всеми плюшками API движка
//$fio = JRequest::getVar( 'name', '', 'post' );
echo 'ответ от сервера, будет показан в консоли браузера';

?>

Не будет нужен отдельный компонент для обработки..

P.S. вечно про это забываю, проверяйте пути до корня сайта от папки где лежит этот файл обработчик и меняйте переходы по дереву каталогов в define( 'JPATH_BASE', __DIR__ . '/../../' );
« Последнее редактирование: 06.03.2018, 14:47:21 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #9 : 06.03.2018, 15:38:46 »
Спасибо, согласен
но вот это в инете не хвалят
define( '_JEXEC', 1 );
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #10 : 06.03.2018, 16:33:16 »
но вот это в инете не хвалят
define( '_JEXEC', 1 );
Что значит не хвалят? Это стандартная заглушка движка от прямого доступа к файлу, можно в принципе и убрать, ничего смертельного не будет в данном случае
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #11 : 06.03.2018, 17:42:34 »
стандартная defined('_JEXEC') or die('Restricted access');

а это позволяет запустить откуда угодно
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #12 : 06.03.2018, 17:55:32 »
стандартная defined('_JEXEC') or die('Restricted access');
а это позволяет запустить откуда угодно

Вы наверно не заметили или не знаете но define и defined это разные функции  ;)
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #13 : 06.03.2018, 18:54:54 »
Вы наверно не заметили или не знаете но define и defined это разные
Дак наоборот, вроде как заметил
во всех джумловских файлах стоит
defined('_JEXEC') or die('Restricted access'); -> 1 или умри -> защита от запуска извне.
а define( '_JEXEC', 1 ); я ставлю в скриптах на свой страх и риск когда нужно поднять джумловский framework.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #14 : 06.03.2018, 19:02:43 »
Дак наоборот, вроде как заметил
во всех джумловских файлах стоит
defined('_JEXEC') or die('Restricted access'); -> 1 или умри -> защита от запуска извне.
а define( '_JEXEC', 1 ); я ставлю в скриптах на свой страх и риск когда нужно поднять джумловский framework.
Берем index.php  последней версии движка и видим
Код
define('JOOMLA_MINIMUM_PHP', '5.3.10');

Откуда вы берете defined не понятно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #15 : 06.03.2018, 19:08:44 »
Дак наоборот, вроде как заметил
во всех джумловских файлах стоит
defined('_JEXEC') or die('Restricted access'); -> 1 или умри -> защита от запуска извне.
а define( '_JEXEC', 1 ); я ставлю в скриптах на свой страх и риск когда нужно поднять джумловский framework.
вы не понимаете принципа работы )
define( '_JEXEC', 1 ) это инициализация константы _JEXEC для защиты от прямого доступа, она прямо в index.php http://joxi.ru/V2VLvjgfxjRw0r сайта инициализируется,
а defined('_JEXEC') or die('Restricted access') это проверка или есть эта переменная, без define( '_JEXEC', 1 ) не подключаться файлы cms
ставить в своём файле для инициализации фрейма define( '_JEXEC', 1 ) никак не сказывается на безопасности! Это настолько безопасно как и в index.php этот метод!
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #16 : 06.03.2018, 19:09:48 »
Берем index.php  последней версии движка и видим
Код
define('JOOMLA_MINIMUM_PHP', '5.3.10');
Что то не то вы скопировали ) наверно хотели то что я постом выше в скрине показал то есть это:
Код
/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
 */
define('_JEXEC', 1);
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #17 : 06.03.2018, 19:10:54 »
Aleks.Denezh откуда он вообще взял функцию defined? В движе ее уже лет сто не видел
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #18 : 06.03.2018, 19:12:52 »
то то не то вы скопировали ) наверно хотели то что я постом выше в скрине показал то есть это:
В архиве Joomla_3.8.5-Stable-Update_Package индекс.пхп имеет в себе

Код
define('JOOMLA_MINIMUM_PHP', '5.3.10');

Файлы типа модулей плагинов да, работают через defined
Код
defined('_JEXEC') or die;
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #19 : 06.03.2018, 19:13:43 »
Aleks.Denezh откуда он вообще взял функцию defined? В движе ее уже лет сто не видел
В смысле не видели?! например administrator/components/com_content/models/article.php вот она: http://joxi.ru/BA00bVWIJEY0pA
версия движка последняя!
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #20 : 06.03.2018, 19:17:02 »
Берем index.php  последней версии движка и видим
Код
define('JOOMLA_MINIMUM_PHP', '5.3.10');

Откуда вы берете defined не понятно

ну это просто для проверки версии php как я думаю
не берусь утверждать что я прав, но
define( '_JEXEC', 1 ); стоит в минимальном  количестве файлов джумловского framework и в index.php , где он собственно объявляется для всех остальных, но там есть дополнительные проверки с тем чтобы не запустить его из шела. все остальные имеют проверку defined or die
ну я так думаю
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #21 : 06.03.2018, 19:17:28 »
В архиве Joomla_3.8.5-Stable-Update_Package индекс.пхп имеет в себе

Код
define('JOOMLA_MINIMUM_PHP', '5.3.10');

Файлы типа модулей плагинов да, работают через defined
Код
defined('_JEXEC') or die;

index.php из архива только что скаченного с офф сайта: http://joxi.ru/5mdYne3ukGgxB2
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #22 : 06.03.2018, 20:53:16 »
Блин виноват ступил, не туда смотрел, конечно же в последних версиях движка
Код
define('_JEXEC', 1);
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #23 : 07.03.2018, 15:26:56 »
Пока тема не остыла, не подскажете 
jquery.ajax дергаю jquery().change(function()
которая стреляет когда меняю чекбоксы или комбобоксы
есть ли способ превентивно в самом начале  дернуть эту эту функцию, хотя чекбоксы еще не поменяны, с тем чтобы она следом запустила AJAX call ?

или оформить $.ajax в виде отдельной JS функции  и запускать ее в самом начале  ?
Спасибо
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #24 : 07.03.2018, 15:35:28 »
или оформить $.ajax в виде отдельной JS функции  и запускать ее в самом начале  ?
Конечно, создайте функцию, в ней пропишите AJAX запрос и вызывайте при действии
пример

Код
function myFunc() {
// тут ваш $.ajax
}
И при изменении чего либо просто вызываем (можно добавить параметры и тд)
Код
$(document).on('keyup change click blur', '.qnt', function(){
    myFunc();
});
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

tm2010

  • Захожу иногда
  • 76
  • 0 / 0
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #25 : 07.03.2018, 16:06:59 »
спасибо так и сделал
*

padad

  • Новичок
  • 2
  • 0 / 0
  • https://kapper-ratings.ru/
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #26 : 02.06.2020, 17:43:53 »
А что если  правильно понимаю что method=[custom fragment] по умолчанию становится get, если не указано. если не указано. Пытаюсь сделать AJAX для ресурса
*

b2z

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

padad

  • Новичок
  • 2
  • 0 / 0
  • https://kapper-ratings.ru/
Re: Применение ajax (Аякс) в модуле Joomla
« Ответ #28 : 03.06.2020, 09:22:38 »
Значит все делать через функцию?
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 1774
Последний ответ 11.04.2022, 08:44:33
от sivers
Как сделать AJa загрузку материалов в ст модуле mod_article_category?

Автор Dolphin4ik_1

Ответов: 47
Просмотров: 1784
Последний ответ 03.11.2021, 16:04:25
от NewUsers
Документация по разработки компонента для Joomla 3.x

Автор Aspik

Ответов: 9
Просмотров: 3164
Последний ответ 23.01.2021, 07:55:56
от hmr
ajax проверку на вход. В стандартном модуле входа?

Автор Dolphin4ik_1

Ответов: 4
Просмотров: 686
Последний ответ 23.07.2020, 15:03:57
от sivers
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 11313
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1