如何从外部访问joomla控制器/模型功能?

时间:2013-01-28 06:36:27

标签: web-services api plugins joomla jomsocial

我在Joomla和Jomsocial创建了网站。

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

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

我可以访问我的Web服务/ API中controller/model externally内定义的函数(任务)吗?怎么样?

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

2 个答案:

答案 0 :(得分:3)

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

但是使用

调用控制器中没有参数的任何公共方法
yoursite/index.php?option=com_yourcomponent&task=yourpublicmethod.

这将触发指定的方法并在Joomla模板中使用所有相关模块等进行渲染。

如果您只想要主要组件输出,请添加到呼叫

&tmpl=component

通过模板的component.php而不是index.php呈现,通常前者仅加载外部资源(css和js)和主要组件输出。

否则,如果函数返回代码(html xml或json),您可能希望使用

调用它
&format=raw

只返回yourpublicmethod的裸输出。这也可以通过指令

在组件级别实现
exit;

在你的公共方法实施结束时

答案 1 :(得分:0)

Joomla CMS实现了MVC Patter(module-view-controlle),视图的差别很小。它实现了视图模型视图。

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

简单示例如何工作是你创建一个组件让我们说“helloworld”组件,这个组件驻留在JROOT / administrator / components / com_helloworld中,用于组件的管理面板部分,JROOT / components / com_helloworld用于前端

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

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

当您请求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

希望这有帮助:)