Пользователь Joomla 1.5 Front End добавляет контент в пользовательский компонент - PullRequest
0 голосов
/ 19 января 2012

Я создал пользовательский компонент для Joomla 1.5. Это компонент FAQ.

Я бы хотел, чтобы пользователи могли добавлять вопросы из интерфейса.

У меня есть несколько полей, которые не должны отображаться для пользователя в интерфейсе.

Например в административном интерфейсе есть такие поля, как «Утверждено», «Порядок», «Опубликован» и другие. Я хотел бы разрешить любому пользователю, не входящему в систему, добавлять вопросы к интерфейсу, но эти 3 поля не должны отображаться для пользователей на интерфейсе.

Итак, как создать интерфейсный пользовательский ввод?

Может быть, кто-то сделал это или знает хороший урок для этого случая?

1 Ответ

1 голос
/ 20 января 2012

В файле 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 вещи, которые вам нужны:

  1. Создайте свою пометку в файле view.html.php и присвойте ей ссылку
  2. Включите ссылку в ваш шаблон, т.е. default.php
  3. Отправьте форму по адресу, который может обрабатывать ваш компонент, т.е. index.php? Option = com_faq & task = addQuestion & view = default

Надеюсь, это поможет:)

...