Joomla 组件应用流程
Joomla component application flow
我是 Joomla 组件开发的新手,目前正在与某些基本设计模式作斗争!
比方说,我正在开发一个组件,用户可以在其中将简单的笔记输入到他们的个人笔记本中。
在调用视图时 "index.php?option=com_notebook&view=notes" 我只是显示了用户所有注释条目的列表。目前没问题,一切正常。
现在我想用以下功能扩展我的组件:在打开视图时 "index.php?option=com_notebook&view=notes",我想检查用户之前是否已经创建了笔记本。如果是,我会显示所有笔记条目,如果不是,我想加载一个不同的视图,其中包含一个用于创建具有特定选项的新笔记本的表单。
但是如何以干净的方式做到这一点呢?
当然,我可以在视图 "notes" 中实现表单,但这不是干净的方法,不是吗?
我还尝试覆盖主控制器的功能 "display()" 并在不存在笔记本的情况下手动设置视图。但是如果我这样做,我必须在函数 "display()" 中手动处理对我的组件的其他视图的所有调用。为了解决这个问题,我从 class "JControllerLegacy" 创建了一个原始实现的副本,并将其更改为我的需要——这是可行的——但这真的是处理此类问题的最佳方式吗?
所以我问你,解决这个问题的最佳方法是什么?
多谢!
据我所知,解决您问题的最佳方法是在您的笔记本列表页面上提供 "New" 和 "Edit" 按钮并创建笔记本的编辑视图。与 Joomla 一样有文章和文章视图。
因此,正如您上面提到的,如果用户没有任何笔记本,那么 he/she 可以使用 "New" 按钮创建一个新笔记本。当用户单击 "New" 按钮时,他有空白表单,其中 he/she 可以创建新笔记本。
这是如何在 Joomla 中创建列表和编辑视图的示例。希望对您有所帮助。
https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_backend_actions
我是 Joomla 组件开发的新手,目前正在与某些基本设计模式作斗争! 比方说,我正在开发一个组件,用户可以在其中将简单的笔记输入到他们的个人笔记本中。
在调用视图时 "index.php?option=com_notebook&view=notes" 我只是显示了用户所有注释条目的列表。目前没问题,一切正常。
现在我想用以下功能扩展我的组件:在打开视图时 "index.php?option=com_notebook&view=notes",我想检查用户之前是否已经创建了笔记本。如果是,我会显示所有笔记条目,如果不是,我想加载一个不同的视图,其中包含一个用于创建具有特定选项的新笔记本的表单。
但是如何以干净的方式做到这一点呢? 当然,我可以在视图 "notes" 中实现表单,但这不是干净的方法,不是吗? 我还尝试覆盖主控制器的功能 "display()" 并在不存在笔记本的情况下手动设置视图。但是如果我这样做,我必须在函数 "display()" 中手动处理对我的组件的其他视图的所有调用。为了解决这个问题,我从 class "JControllerLegacy" 创建了一个原始实现的副本,并将其更改为我的需要——这是可行的——但这真的是处理此类问题的最佳方式吗?
所以我问你,解决这个问题的最佳方法是什么? 多谢!
据我所知,解决您问题的最佳方法是在您的笔记本列表页面上提供 "New" 和 "Edit" 按钮并创建笔记本的编辑视图。与 Joomla 一样有文章和文章视图。 因此,正如您上面提到的,如果用户没有任何笔记本,那么 he/she 可以使用 "New" 按钮创建一个新笔记本。当用户单击 "New" 按钮时,他有空白表单,其中 he/she 可以创建新笔记本。 这是如何在 Joomla 中创建列表和编辑视图的示例。希望对您有所帮助。
https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_backend_actions