В файле view.html.php вашего компонента (например, com_faq / views / view.html.php) вы можете определить разметку для раздела вашего поля ввода. Я создаю переменную $ html, например:
$html .= '<input name="addQuestion" value="" type="Text"/>';
затем добавьте ссылку на него:
$this->assignRef("addQuestion", $html);
так, чтобы в вашем шаблоне представления (то есть com_faq / views / tmpl / default.php) вы могли добавить его на свою страницу как
echo $this->addQuestion;
Когда вы нажимаете кнопку отправки, вы можете вернуться к тому же представлению. Таким образом, пользователь URL, как
index.php?option=com_faq&task=addQuestion&view=default
Поэтому, прежде чем разметить свою страницу (например, в первых нескольких строках вашей функции отображения), вы можете получить содержимое ввода пользователя на внешнем интерфейсе
$question = JRequest::getVar('addRequest', null);
Если у вас есть это, вы можете сохранить его в своей базе данных или отобразить. Кроме того, вы можете AJAX отправить свою форму и обработать ее в функции контроллера, чтобы у вас не было обновления и т. Д.
Вам нужно будет отредактировать файл router.php, чтобы взять задачу и передать ее контроллеру, т.е. установить ее как задачу или представление.
Есть множество вариантов для этого, но в основном есть 3 вещи, которые вам нужны:
- Создайте свою пометку в файле view.html.php и присвойте ей ссылку
- Включите ссылку в ваш шаблон, т.е. default.php
- Отправьте форму по адресу, который может обрабатывать ваш компонент, т.е. index.php? Option = com_faq & task = addQuestion & view = default
Надеюсь, это поможет:)