Как получить из компонента все парамметры интересуещего нас модуля?

Тема в разделе "Создание расширений для Joomla", создана пользователем Kravcneger, 28.02.2010.

  1. Offline

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

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    Объясните пожалуйста как можно из компонента простым путём получить список параметров интересующего нас модуля .Я свой способ нашёл но он уж больно сложный

    function loadparams($id){

    $query = " SELECT params ".
    " from #__modules ".
    " WHERE id='$id' ".
    $this->database->setQuery($query);
    $list = $this->database->loadResult();

    $idmenu = explode(" ",$list);

    for($i=0;$i<count($idmenu);$i++){
    $params[] = stristr($idmenu[$i],'=');
    }

    }
    получаем массив $params[] со всеми параметрами .



    Но этот способ не совсем хороший , ведь методы фрэймворка позволяют это сделать ещё проще через
    $params->get().
    Вопрос в том как нужно в компоненте создать правильно объект , и извлечь через него все парраметры модуля с нужным id .
    Кто знает объясните пожалуйста .
     
  2.  
  3. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Попробуй так
    Код (PHP):
    1. $mod = JModuleHelper::getModule('mod_mainmenu');
    2. $params = new JParameter($mod->params);
    3. $menustyle = $params->get('menu_style','');

    Не проверял, влом в воскресенье, но должно работать
     
    Kravcneger нравится это.
  4. Gronpipmaster
    Offline

    Gronpipmaster специалист

    Регистрация:
    21.01.2009
    Сообщения:
    1 392
    Симпатии:
    62
    Пол:
    Мужской
    Kravcneger, ох если бы все компоненты были MVC, вот из вирта только так и выдирается всё
     
  5. Offline

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

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    botanist , скажите пожалуйста а как параметры из конкретного модуля извлечь .
     
  6. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Так из конкретного и показано.
     
  7. Offline

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

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    Gronpipmaster, Т.е только таким способом как я написал можно ? Я правильно понял?
     
  8. Offline

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

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    botanist, не не вы не правильно поняли . Идентификация модуля происходит по id а не по его типу .
    В таблице может быть множество модулей одного типа . А нужен конкретный .
     
  9. Gronpipmaster
    Offline

    Gronpipmaster специалист

    Регистрация:
    21.01.2009
    Сообщения:
    1 392
    Симпатии:
    62
    Пол:
    Мужской
    Kravcneger, чето у вас с логикой, компонент там все хранится, модуль только вывод, функций в нем минимум, если в нем функционал то только так и выдерать из мускула
     
  10. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Код (PHP):
    1. function modParams($id) {
    2. $mod = JModuleHelper::_load();
    3.    foreach($mod as $modul){
    4.        if ($modul->id == $id){
    5.        $mod = $modul;
    6.        break;
    7.        }
    8.    }
    9. $params = new JParameter($mod->params);
    10. return $params;
    11. }
    12. $modparams = modParams(1);
    13. $menustyle = $modparams->get('menu_style','');
     
  11. Offline

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

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    botanist , спасибо за ответ . Понял что проще уже моим способом будет (для меня).
    К тому же хэлперы на русском не описан .

    Gronpipmaster , я хотел получить возможность создавать модули сразу в компоненте . Как в компоненте swmenupro .

    Кстати , друзья , не подскажите каким образом некоторые модули , при создании собственных экземпляров , позволяют в админке получить записи из БД .
    Это делает какой то плагин ?
    потому что если в модуле в xml дескрипторе в разделе params указать

    <param name="menutype" type="mos_menu" default="" label="Menu Name" description="The name of the menu (default is mainmenu)" />

    То мы получим в админке список всех джумловских меню при создании этого модуля .
     
  12. Gronpipmaster
    Offline

    Gronpipmaster специалист

    Регистрация:
    21.01.2009
    Сообщения:
    1 392
    Симпатии:
    62
    Пол:
    Мужской
    Kravcneger, так-же есть про картинки, изучать что именно можно, по готовым модулям заглядывая в хмл файлы, я так обычно и делаю
     

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

Загрузка...