Новости Joomla

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

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Столкнулся с такой проблемкой. Много всего расписано как получать формы, формат форм XML и т.д. Но нигде ничего не написано про то в каком виде хранить настройки компонента. Ведь при установке у нас должен присутствовать файл config.xml с соответствующим содержимым, который после установки кладется в папку компонента в backend.
К примеру у нас большой компонент с кучей настроек. У нас есть этот самый config.xml в котором у нас настройки по умолчанию. У нас есть модель наследующая JModelForm с методами getForm() и loadFormData(). В первом у нас загружается форма, в втором присобачиваются данные к полям. По умолчанию loadForm() загружает форму из models/forms/form_name.xml. Теперь вопрос.

Как в этом случае загрузить нашу форму из файла config.xml?

PS!
Код
$form = $this->loadForm('com_mycomponent.settings', JPATH_COMPONENT.DS.'config.xml', array('control' => 'jform', 'load_data' => $loadData), 'config');
дает пустую форму вида
Код
JForm Object
(
    [data:protected] => JRegistry Object
        (
            [data:protected] => stdClass Object
                (
                )
        )
    [errors:protected] => Array
        (
        )
    [name:protected] => com_mycomponent.settings
    [options:protected] => Array
        (
            [control] => jform
        )
    [xml:protected] => JXMLElement Object
        (
        )
)

config.xml вида
Код
<?xml version="1.0" encoding="utf-8"?>
<config>
<fieldset>
<field name="obviously" type="radio" label="OPTS_DUPE" default="0">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
</fieldset>
</config>
/* Have a nice day! */
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
ну так посмотрите как идет в стандартных компонентах.
Либо на метод loadForm и какие параметры он принимает
Цитировать
$form = $this->loadForm(com_mycomponent.settings', 'config', array('control' => 'jform', 'load_data' => $loadData));

ЗЫ ник Helios забавный, прям как сборка Eclipse ))
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
ну так посмотрите как идет в стандартных компонентах.
Либо на метод loadForm и какие параметры он принимает
ЗЫ ник Helios забавный, прям как сборка Eclipse ))

Смотрел. По умолчанию в JToolbarHelper есть кнопка config. Так вот если у компонента в папке есть файл config.xml то будет выведена форма в lightbox с параметрами. Но это не совсем то что нужно. Я имел ввиду собственную страницу настроек(т.е. по виду как для самой системы(аля com_config)).

Перерыл все api и сорсы по поводу того что и как творится в loadForm. Собстно там все просто. первый параметр область, второй это форма(или файл с ней), третий параметр массив с префиксом форм и принудительной перезагрузкой и четвертый это xpath. Вот именно последний параметр отвечает за кастомный поиск. Но то ли я тупой, то ли лыжи погнуты... Форма как была пустой так и остается. А не хочется дублировать только из-за одного <config> вместо <form>.
/* Have a nice day! */
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Смотрел. По умолчанию в JToolbarHelper есть кнопка config. Так вот если у компонента в папке есть файл config.xml то будет выведена форма в lightbox с параметрами. Но это не совсем то что нужно. Я имел ввиду собственную страницу настроек(т.е. по виду как для самой системы(аля com_config)).
ну телепаты в отпуске.
Что мешает сделать еще один вид для компонента, вывести его в отдельное меню и в нем подключать нужную форму и делать с ней что угодно.
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Что мешает сделать еще один вид для компонента, вывести его в отдельное меню и в нем подключать нужную форму и делать с ней что угодно.
Да у меня так и сделано. Просто форма дублируется. Для вьюхи одна XML форма, для установщика компонента другая. И вся разница между ними в том, что в конфиге
Код
<config>
<fields...>
</config>
а в обычной
Код
<form>
<fields...>
</form>

Вот я и спрашивал собстно как можно этого избежать и использовать только первую форму(та что с <config>).
/* Have a nice day! */
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Да у меня так и сделано. Просто форма дублируется. Для вьюхи одна XML форма, для установщика компонента другая. И вся разница между ними в том, что в конфиге
не установщика, а конфигурации.
Ну и в чем проблема не пойму. В том что два разных файла?
Так зачем делать одно и тоже в форме и в настройках компонента?
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Именно что 2.
А как тогда при установке установщик подхватит настройки компонента? Или этого не нужно(в форме для всех полей есть default и они установлены)?
/* Have a nice day! */
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а причем тут установщик?
параметры компонента выставляются в config.xml, о чем сами писали.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание компонента MVC

Автор borodatych

Ответов: 36
Просмотров: 4555
Последний ответ 13.04.2015, 08:17:30
от flyingspook
Подскажите как сделать русификацию компонента)

Автор stardel

Ответов: 4
Просмотров: 7005
Последний ответ 08.04.2015, 09:08:00
от oxotnikkz
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57355
Последний ответ 17.11.2014, 13:43:07
от limon142
Вывод макета компонента в расширении XML

Автор DimkaJack

Ответов: 5
Просмотров: 1540
Последний ответ 21.08.2014, 19:05:24
от DimkaJack
Форма редактирования элемента компонента

Автор popoff17

Ответов: 5
Просмотров: 1802
Последний ответ 17.04.2014, 12:34:43
от b2z