Параметры формы из XML файла в Joomla 1.6

Тема в разделе "Модернизация расширений", создана пользователем svolga, 11.06.2011.

  1. Offline

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

    Регистрация:
    13.10.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    В исходном коде компонентов Joomla 1.6, например, com_banners, в файле Views->banner->tmpl->edit.php увидел чтения настроек полей формы из xml файла с использованием form->getLabel и form->getInput, а именно этот код:
    <li><?php echo $this->form->getLabel('name'); ?>
    <?php echo $this->form->getInput('name'); ?></li>

    Пытаюсь применить этот же подход в своих формах, но пока не получается. Где можно почитать инфу, желательно по шагам как читать настройки полей из xml?
     
  2.  
  3. Tureckiy
    Offline

    Tureckiy специалист

    Регистрация:
    11.04.2009
    Сообщения:
    423
    Симпатии:
    30
    Пол:
    Мужской
    docs.joomla.org
     
  4. Offline

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

    Регистрация:
    13.10.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Кому интересно - разобрался своими силами.

    В Joomla 1.6 для класса модели необходимо унаследовать её (модель) от базового класса
    JModelAdmin, а не JModel как в Joomla 1.5
    Дале реализовать абстрактный метод
    public function getForm (
    $data=array
    $loadData=true
    )
    для получения формы из модели, как пример:
    public function getForm($data = array(), $loadData = true)
    {
    // Get the form.
    $form = $this->loadForm('com_mycomponent.testauthors', 'testauthors', array('control' => 'jform', 'load_data' => $loadData));
    if (empty($form))
    {
    return false;
    }
    return $form;
    }
    где testauthors - имя (без расширения) xml файла, в котором хранится описание полей формы.
    Файл должен быть расположен в каталоге models/forms

    После этого в ф-ии display для View вызвать загрузку формы
    function display($tpl = null){

    $this->form = $this->get('Form');

    }

    После этого в шаблоне View работает конструкция
    получения всех полей из xml файла

    <?php foreach($this->form->getFieldset() as $field): ?>
    <li><?php echo $field->label;echo $field->input;?></li>
    <?php endforeach; ?>

    или только конкретного поля

    <li><?php echo $this->form->getLabel('alias'); ?>
    <?php echo $this->form->getInput('alias'); ?></li>
     
    Последнее редактирование: 15.06.2011

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

Загрузка...