Получение JPreferences данных

Тема в разделе "Программирование", создана пользователем Miraj, 29.03.2010.

  1. Offline

    Miraj Недавно здесь

    Регистрация:
    25.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    [Joomla 1.5]

    как получить params в контроллере из файла config.xml который лежит в папке компонента?

    Создал функцию в модуле для получения параметров конфига компонента.

    В view вызываю так: $this->cash = $this->params->get('pay_cash', '');

    В представлении данные выводятся нормально, а в контроллере выдает ошибку.
     
    Последнее редактирование: 29.03.2010
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    потомучто в контроллере $this не доступен, точнее доступен, но он указывает на класс контроллера ) вам нужна переменная, которая содержит экземпляр класса модели/вьюва
     
  4. Offline

    Miraj Недавно здесь

    Регистрация:
    25.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    Все решил вопрос, через хелпер

    Код (PHP):
    1. $component = JComponentHelper::getComponent( 'com_itorder' );
    2. $params = new JParameter( $component->params );
    3. $params->get('pay_cash');
     
    Последнее редактирование: 30.03.2010
  5. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Попробуй.
    Код (PHP):
    1. $view = $this->getView();
    2. $paycash = $view->params->get('pay_cash', '');
     
  6. Offline

    Miraj Недавно здесь

    Регистрация:
    25.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    Ошибку выдает:
     
  7. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Отсутствует класс JController. Трудно получить что-либо из файла не являющегося контроллером.
     
  8. Offline

    Miraj Недавно здесь

    Регистрация:
    25.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    эмм.. можно по подробнее.
    Как сделать этот файл файлом контроллера?

    из файла admin.itorder.php я обращаюсь так:

    Код (PHP):
    1. <?php
    2.   defined('_JEXEC') or die('Restricted access');
    3.   require_once (JPATH_COMPONENT_ADMINISTRATOR . DS . 'controller.php');
    4.   JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables');
    5.  
    6.   $controller = new iTorderController();
    7.  
    8.   $task = JRequest::getCmd('task');
    9.   switch (strtolower($task))
    10.   {
    11.     case 'add' :
    12.         iTorderController::addOrder();
    13.         break;
    14.              
    15.     case 'apply' :
    16.         iTorderController::changeOrder(1);
    17.         break;
    18.  
    19.     case 'cancel' :
    20.         iTorderController::changeOrder('-1');
    21.         break; 
    22.    
    23.     default :
    24.    
    25.         $controller->execute(JRequest::getVar('task', null, 'default', 'cmd'));
    26.         $controller->redirect();       
    27.         break;  
    28.   }


    В самом controller.php начало такое:

    Код (PHP):
    1. <?php
    2.   defined('_JEXEC') or die ('Restricted access');
    3.  
    4.   jimport('joomla.application.component.controller');
    5.  
    6.   class iTorderController extends JController
    7.   {  
    8. //тут идут функции
    9. }
    10. ?>
     
  9. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Раз решил вопрос то не важно. Если только еще где не вылезет. Похоже что при обращении iTorderController::changeOrder(1); в входном файле в контроллере тоже нужно обращаться iTorderController::getView();. Класс контроллера не создается и $this не работает.
     

Поделиться этой страницей

Загрузка...