Joomla 1.5前端用户将内容添加到自定义组件中

时间:2012-01-19 11:59:56

标签: php joomla joomla1.5 joomla-extensions

我为Joomla 1.5构建了一个自定义组件。这是一个FAQ组件。

我想让用户从前端添加问题。

我有几个字段不应该在前端为用户显示。

对于前。在后端管理员中有“已批准”,“订购”和“已发布”等字段。我想让任何没有登录的用户在前端添加问题,但这3个字段不应该显示给前端的用户。

那么,如何构建前端用户输入?

也许有人这样做了,或者知道这个案例的一些好教程?

1 个答案:

答案 0 :(得分:1)

在组件的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;

单击提交按钮后,您可以重新路由回同一视图。所以用户喜欢

index.php?option=com_faq&task=addQuestion&view=default

因此,在您标记页面之前(例如,在显示功能的前几行内),您可以在前端获取用户输入的内容

$question = JRequest::getVar('addRequest', null);

一旦你有了这个,你可以将它存储到你的数据库或显示它。或者,您可以通过AJAX提交表单并在控制器功能中处理它,这样您就没有刷新等。

您需要编辑router.php文件以获取任务并将其传递给您的控制器,即将其设置为任务或视图。

有很多选择,但从根本上说,你需要做三件事:

  1. 在view.html.php文件中创建标记并为其指定引用
  2. 在模板中包含引用,即default.php
  3. 将您的表单提交到同一组件可以处理的地址,即index.php?option = com_faq&amp; task = addQuestion&amp; view = default
  4. 希望这会有所帮助:)

相关问题