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


Joomla 1.5 Front End user add content into custom component

我为Joomla 1.5构建了一个自定义组件。这是一个常见问题组件。

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

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

例如,在后台管理中有Approved、Ordering和Published等字段。我想让任何没有登录的用户在前端添加问题,但这3个字段不应该显示给前端的用户。

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

也许有人已经做过了,或者知道一些关于这个案例的好教程?

在组件的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&视图=默认

希望这有帮助:)