Настройки модуля в файле хелпер.ПХП

  • 9 Ответов
  • 742 Просмотров

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

*

Оффлайн orsy

  • ****
  • 393
  • [+]21 / [-]1
  • Пол: Мужской
  • Web-Factor Ukraine
    • Просмотр профиля
    • Студия "Web-factor"
Странно, но в заголовке слово helper.php при сохранении заменяется на er.php, но то фигня, к делу...

Добрый день. Создаю некий AJAX модуль и появилась необходимость использовать параметры модуля, редактируемые в админке, использовать в файле helper.php.

Можно ли их получить в этот файл средствами Joomla 3 без прямого обращения к базе данных?
« Последнее редактирование: 06.09.2015, 20:33:44 от orsy »

*

Оффлайн midav

В модуле доступен объект $params со всеми настройками .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

Оффлайн orsy

  • ****
  • 393
  • [+]21 / [-]1
  • Пол: Мужской
  • Web-Factor Ukraine
    • Просмотр профиля
    • Студия "Web-factor"
В модуле доступен объект $params со всеми настройками .
это я знаю, но как мне получить из него данные в файле helper.php?

*

Оффлайн robert

как мне получить из него данные в файле helper.php?
Передать $params в качестве аргумента при вызове метода из helper.php
Код: (php-brief) [Выделить]
$blahblah=MyModuleHelper::someMethod($params,$otherarg);
« Последнее редактирование: 06.09.2015, 23:11:33 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн fbr

del

уже ответили

*

Оффлайн orsy

  • ****
  • 393
  • [+]21 / [-]1
  • Пол: Мужской
  • Web-Factor Ukraine
    • Просмотр профиля
    • Студия "Web-factor"
del

уже ответили

когда я так делаю, и пытаюсь в классе юзать

$params->get( 'textsuccesssend' )
в ответ в консоли получаю ошибку

POST http://site.ua/ 500 (Internal Server Error)

Так же при включении максимального показа ошибок php в админке при вызове helper вижу такое "Warning: Missing argument 1", то есть именно тот аргумент $params, который я пытаюсь передать в метод


« Последнее редактирование: 06.09.2015, 19:14:55 от orsy »

*

Оффлайн midav

А откуда вызываете хелпер ? Поподробнее опишите, а то немного непонятно .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

Оффлайн orsy

  • ****
  • 393
  • [+]21 / [-]1
  • Пол: Мужской
  • Web-Factor Ukraine
    • Просмотр профиля
    • Студия "Web-factor"
А откуда вызываете хелпер ? Поподробнее опишите, а то немного непонятно .

пользую вот эту инструкцию

https://docs.joomla.org/Using_Joomla_Ajax_Interface/ru#.D0.9F.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.BA.D0.B0_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D0.B5.D0.B9

вызывается модуль походу через  AJAX интерфейс Joomla

helper вызываю непосредственно со страницы где опубликован модуль

$(document).on('click', 'input#submit<?php echo $module->id;?>', function () {
<?php echo $dataField?>

request = {
'option' : 'com_ajax',
'module' : 'ajax_webors_form',
<?php echo $ajaxRequest?>
'format' : 'raw'
}
$.ajax({
type   : 'POST',
data   : request,
success: function (response) {
...
}
});
return false;
});
« Последнее редактирование: 06.09.2015, 21:16:04 от orsy »

*

Оффлайн robert

Так вы же нигде не передавали переменную $params, как helper может ее получить?
В методе вручную получите ее
Код: (php-brief) [Выделить]
jimport('joomla.application.module.helper');
$module=JModuleHelper::getModule('ajax_webors_form');
$params=new JRegistry();
$params->loadString($module->params);
Только осторожнее с тире и знаком подчеркивания в названии модуля: в названии класса helper их не должно быть.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн orsy

  • ****
  • 393
  • [+]21 / [-]1
  • Пол: Мужской
  • Web-Factor Ukraine
    • Просмотр профиля
    • Студия "Web-factor"
Так вы же нигде не передавали переменную $params, как helper может ее получить?
В методе вручную получите ее
Код: (php-brief) [Выделить]
jimport('joomla.application.module.helper');
$module=JModuleHelper::getModule('ajax_webors_form');
$params=new JRegistry();
$params->loadString($module->params);
Только осторожнее с тире и знаком подчеркивания в названии модуля: в названии класса helper их не должно быть.

Спасибо огромное, заработало. Приведенный вами пример кода уже прописывал, но проблема была в том что название модуля писал без нижних подчеркиваний, сейчас прописал с нижними подчеркиваниями и все гут.

Плюс в карму )