Вызвать php-функцию в backend модуля

Я пытаюсь вызвать php-функцию из бэкэнд модуля (я использую настраиваемое поле формы). com_ajax не работает, потому что он вытаскивает текущий пункт меню, который не существует, поскольку он не вызывается из меню.

Я попытался напрямую связать файл php, но это не сработает, потому что для обеспечения безопасности требуется defined('_JEXEC') or die('Direct Access to this location is not allowed.');.

Я также пробовал использовать JURI::base() . 'index.php?option=mod_myMod&task=myPhpFunction'; для моего URL-адреса запроса AJAX, имея код ниже, указанный перед моим вспомогательным классом в модуле ---- +: = 3 =: + ----, но просто получите ошибку helper.php:

404 (Component not found.)

Я мог бы создать отдельный компонент для обработки этого. Тем не менее, это просто странно, и проблема $taskInput = JFactory::getApplication()->input; $task = $taskInput->get('task'); if ($task == "importData") { ModPropertySearchHelper::importDataAjax(); } пыталась решить, поэтому я предпочел бы этого не делать.

Есть ли способ переопределить com_ajax, чтобы поддерживать вызов из внутреннего модуля модуля? Я бы не хотел его заменять в случае обновлений и т. Д.

Или есть лучшее решение моей проблемы?

2 голоса | спросил Kibner 23 MaramWed, 23 Mar 2016 00:55:42 +03002016-03-23T00:55:42+03:0012 2016, 00:55:42

2 ответа


1

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

Итак, вы должны следовать рекомендациям Joomla, чтобы воспользоваться преимуществами Joomla CMS.

Для выполнения внутри Joomla вам необходимо создать компонент, модуль или плагин.

Если вы хотите выполнить запрос Ajax, вам нужно создать плагин для com_ajax.

Использование интерфейса Joomla Ajax

  

Тонкий, расширяемый компонент, выступающий в качестве точки входа для HTTP   запросы на автономные модули и плагины, что позволяет   потенциал функциональности Ajax в них. Com_ajax обычно используется   когда вы не являетесь разработчиком компонента, который модуль или   плагин взаимодействует с.

https://docs.joomla.org/Using_Joomla_Ajax_Interface

ответил Anibal 23 MarpmWed, 23 Mar 2016 12:44:55 +03002016-03-23T12:44:55+03:0012 2016, 12:44:55
0

Похоже, этот модуль позволит вам вставлять php, но я сам не пробовал.

Но, как говорит Анибал. Если вы собираетесь использовать Ajax и вам нужно взаимодействовать с Joomla, вы должны использовать com_ajax и сами разработать его.

http://extensions.joomla.org/extension/blank-module

ответил Søren Beck Jensen 23 MarpmWed, 23 Mar 2016 13:02:45 +03002016-03-23T13:02:45+03:0001 2016, 13:02:45

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132