4

我在 Joomla 和 Jomsocial 中创建了网站。

我正在 Joomla 中创建 Web 服务/API 以供我的移动应用程序访问。

该移动应用程序将具有与网站几乎所有相同的功能。

我可以访问controller/model externally在我的 Web 服务/API 中定义的功能(任务)吗?如何?

注意:我正在使用phonegap开发移动应用程序

4

2 回答 2

3

您不能直接调用模型或视图中的特定函数。

但是控制器中没有参数的任何公共方法都将被调用

yoursite/index.php?option=com_yourcomponent&task=yourpublicmethod.

这将触发指定的方法并在 Joomla 模板中呈现它,以及所有相关模块等。

如果你只想要主组件输出,添加到调用

&tmpl=component

它通过模板的component.php而不是index.php进行渲染,通常前者只加载外部资源(css和js)和主组件输出。

否则,如果函数返回代码(html xml 或 json),您可能需要调用它

&format=raw

它只返回您的公共方法的裸输出。这也可以通过指令在组件级别实现

exit;

在你的public方法执行结束时

于 2013-01-29T08:29:51.690 回答
0

Joomla CMS 实现了 MVC 模式(module-view-controlle),视图略有不同。它实现了视图模型视图。

在 Joomla 中,一切都是组件。每个组件都可以有其输出模型、视图、控制器、数据库表等。

简单的例子是它的工作原理是你创建一个组件让我们说“helloworld”组件,这个组件位于 JROOT/administrator/components/com_helloworld 用于组件的管理面板部分和 JROOT/components/com_helloworld 用于前端。

在这些目录中,您有一个名为 com_helloworld.php 的文件,该文件会为此请求触发整个 MVC。

虽然 Joomla 实现了前端控制器模式,但您可以构建您的组件,但最适合您(有或没有前端控制器)。

当您请求http://domainname.com/index.php?option=com_helloworld时,我提到的 com_helloworld 文件会被调用,并且里面的所有内容都会执行。

有关更多信息,请参阅这篇关于开发 Joomla CMS 2.5 组件的非常有用的文章:

http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Introduction

希望这可以帮助 :)

于 2013-01-28T09:17:58.087 回答