ModuleAdminController
предназначен для управления некоторыми типами записей, которые являются ObjectModel
. Страница Defaly для этого контроллера представляет собой список, затем вы можете редактировать каждую запись отдельно или просматривать ее полные данные (view
).
Если вы хотите иметь страницу настроек, лучшим способом является создание функции getContent()
для вашего модуля. Кроме того, для этой страницы конфигурации модуля HelperOptions
лучше, чем HelperForm
, потому что он автоматически выравнивает значения. Определите форму в этой функции и над ней добавьте один if (Tools::isSubmit('submit'.$this->name))
- Отправьте кнопку name
, затем сохраните свои значения в таблице configuration
. Configuration::set(...)
.
Конечно, можно создать какую-то страницу настроек в AdminController
, но она не предназначена для этого. Если вы действительно хотите: доберитесь до HookCore.php
и найдите exec
метод. Затем добавьте error_log($hook_name)
, и вы будете перехватывать, которые выполняются при открытии/сохранении/закрытии страницы/формы. Возможно, вы найдете свой крючок таким образом. Лучшим способом было бы проверить родительский класс AdminControllerCore
или даже ControllerCore
. У них часто есть определенная функция, готовая быть перегруженной, где вы должны сохранять свои вещи. Они уже являются частью процесса выполнения, но пусты.
Редактировать: Вы должны взглянуть на другие классы AdminController
, они wuite простые; Вам нужно только определить некоторые свойства для того, чтобы работать:
public function __construct()
{
// Define associated model
$this->table = 'eqa_category';
$this->className = 'EQACategory';
// Add some record actions
$this->addRowAction('edit');
$this->addRowAction('delete');
// define list columns
$this->fields_list = array(
'id_eqa_category' => array(
'title' => $this->l('ID'),
'align' => 'center',
),
'title' => array(
'title' => $this->l('Title'),
),
);
// Define fields for edit form
$this->fields_form = array(
'input' => array(
array(
'name' => 'title',
'type' => 'text',
'label' => $this->l('Title'),
'desc' => $this->l('Category title.'),
'required' => true,
'lang' => true
),
'submit' => array(
'title' => $this->l('Save'),
)
);
// Call parent constructor
parent::__construct();
}
Другие люди хотели бы переместить список и форму определения фактических функций, которые делают их:
public function renderForm()
{
$this->fields_form = array(...);
return parent::renderForm();
}
Вы на самом деле не нужно чтобы делать что-либо еще, контроллер сопоставляет поля с вашими моделями, загружает их, сохраняет их и т. д.
Опять же, лучший способ узнать об этом контроллере - посмотреть другие контроллеры AdminControllers.
Я действительно хочу управлять записями в списке. Я не знал правильной терминологии для того, что я пытаюсь выполнить. Я создал собственную модель для моего модуля. Какие функции я использую в своем модулеAdminController для отображения этих данных? – kel
Обновленный ответ. – gskema
Отлично. Это то, что я искал. Я вижу, что происходит сейчас. Благодарю. – kel