Сборка Joomla 3 Custom Component
В настоящее время я создаю пользовательский Компонент в Joomla 3, который позволяет пользователям искать спортивный клуб по почтовому индексу, используя форму Ajax на внешнем интерфейсе. У меня все эти функциональные возможности работают, и сейчас я работаю над бэкэндом компонента (в админке). Этот раздел должен позволять администраторам добавлять и удалять спортивные клубы среди прочего.
Я не слишком опытен в создании пользовательских компонентов Joomla, но хорошо разбираюсь в MVC, но столкнулся с некоторыми проблемами.
Компонент использует представление под названием "Posctodes" в качестве представления по умолчанию, которое само содержит раскрывающееся меню всех текущих спортивных клубов, которое позволяет пользователю выбрать клуб, нажать "Отправить" и перейти на страницу редактирования для изменения сведений об этом клубе. Вот где у меня проблема. Я хочу создать отдельное представление под названием "editform", которое пользователь будет перенаправлен на выбор клуба для редактирования. Я не уверен, как это сделать в рамках Joomla.
Вот мой код для компонента на данный момент:
Контроллер компонента (admin / components / com_postcode / controller.php):
<?php
defined('_JEXEC') or die;
class PostcodeController extends JControllerLegacy {
protected $default_view = 'postcodes';
public function display($cacheable = false) {
$view = $this->input->get('view', 'postcodes');
$layout= $this->input->get('layout', 'postcodes');
$id = $this->input->getInt('id');
return parent::display($cacheable);
}
}
?>
Файл view.html.php для представления по почтовому индексу (admin / components / com_postcode / views / postcodes / view.html.php):
<?php
defined('_JEXEC') or die;
class PostcodeViewPostcodes extends JViewLegacy {
public function display($tpl = null) {
$clubs = $this->get('Clubs');
$this->clubs = array();
foreach($clubs as $club) {
$this->clubs[] = array(
'club_id' => $club['club_id'],
'name' => $club['name'],
'postcode' => $club['postcode'],
'link' => $club['link'],
'description' => $club['club_id'],
'image' => $club['club_id'],
'address' => $club['club_id']
);
}
$pagination = $this->get('Pagination');
$this->items = $items;
$this->pagination = $pagination;
parent::display($tpl);
}
}
?>
И файл представления (admin/components/com_postcode/views/postcodes/tmpl/default.php):
<div class="row-fluid">
<div id="filter-bar" class="btn-toolbar">
<a class="btn" href="">Clubs</a>
<a class="btn" href="">Postcodes</a>
</div>
<div class="span2">view
</div>
<div class="postcode_admin span10">
<h3>Postcode Search Component</h3>
<form action="<?php echo JRoute::_('index.php?option=com_users&view=clubedit');?>" method="post" name="postcodeForm" id="postcodeForm">
<select name="clubs" id="clubFilter">
<option value="">-- Please select --</option>
<?php foreach($this->clubs as $club) { ?>
<option value="<?php echo $club['club_id']; ?>"><?php echo $club['name']; ?></option>
<?php } ?>
</select>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
<div class="club_information">
</div>
</div>
Как вы можете видеть из файла default.php, я говорю форме для отправки в представление clubedit, но это не так. Я знаю, что здесь чего-то не хватает, но в Интернете не так много документации по компонентам Joomla 3. Кто-нибудь может пролить свет на это?
Спасибо!!