【问题标题】:Adding forms to joomla's front end component view将表单添加到 joomla 的前端组件视图
【发布时间】:2013-05-08 14:36:03
【问题描述】:

我正在使用 joomla 3.0 开发一个组件。我正在尝试在我的组件中添加表单。我看到 joomla 有用于在后端添加表单的 JHTML 类。

在前端创建表单的建议是什么。我应该使用 JHTML 还是干净的 html 标记?我在哪里可以找到该课程的文档。

【问题讨论】:

  • 这真的取决于你需要什么样的表格。就个人而言,如果您想保存到数据库或执行诸如从联系表单发送消息之类的操作,我会查看使用 JForm 的核心表单。如果您想做更多类似过滤器的事情,那么您可以在后端的过滤器栏或侧边栏中执行 JHTML。
  • 这是一个很好的问题,我自己也想知道。就我个人而言,我一直只是使用干净的 html 标记。 @Elin,希望您在答案中对此进行扩展。

标签: html forms joomla components


【解决方案1】:

JForm JModelForm JControllerForm

在 Joomla 1.6 + 中将数据保存在数据库中的表单主要使用 JForm 包来管理表单(xml 或 xml 字符串)、字段(实际字段)和规则(验证)。

通常的简单管理方法是扩展 JModelForm 和 JControllerForm。如果您查看核心,您会看到这些扩展在您可能不期望的地方,例如单个联系人视图,但基本上这是因为这些类提供了您在页面的任何部分管理表单所需的基本设置,即使其余部分与表单无关。

您也可以随时创建一个新的 JForm 对象。

如果您有一个模型文件夹,通常您将有一个表单文件夹,然后如果需要字段和规则文件夹。后两者包含您的扩展可能需要的任何自定义字段或规则。在您的扩展中构建表单时,默认情况下会找到这些,但如果您希望从其他地方获得它们,则需要在表单 xml 中根据需要使用 addFieldPath 或 addRulePath 或 addFormPath。

Jform 提供了一组标准的字段和规则以及一个标准的过滤器列表。规则意味着验证,而过滤器将更改保存的值。您还可以使用 JFilterInput 中可用的任何过滤器。

如果您指定的字段与当前表对象中的字段名称相同,则数据将自动保存在该字段中。如果您使用名称与默认字段匹配的字段标签,则标签内列出的字段将保存为该字段中的 JSON 字符串。

这就是基本的内容,但还有更多内容。

对我来说重要的一点是,如果您使用 JForm,默认过滤非常好,并且您选择性地允许 html 等,因此默认情况下它非常安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2013-03-12
    • 2012-02-22
    • 2015-06-15
    相关资源
    最近更新 更多