在Joomla!的组件里创建web service - opening
来源:互联网 发布:c#判断网络状态 编辑:程序博客网 时间:2024/04/27 22:28
其实web service的定义不是那么明确,基本上在一个RPC操作过程中在服务器端扮演提供者的东西都可列入其中。而在我当前的语境里,我所指的是一个输出JSON格式数据的功能,这个功能会在一个组件之中:JoomSport。
问题就是,正常情况下,我们在一个组件中创建一个controller,Joomla会根据index.php页面请求的task参数导向这个controller;接下来我们给这个controller创建一个view,Joomla会根据view参数导向它;之后我们再给这个view创建一个layout,Joomla会根据layout参数最终导向它,而最终这个layout的模板php所输出的HTML内容,将只会是所安装的Joomla主题模板输出的HTML中的一个片段。它通常被放在一个div中。在我的模板里,它的ID好像是componentpane。
也就是说,默认情况下,我们在一个组件中写的功能,将不会作为独立的输出被返回,它只会出现在整个主题模板中,而我要输出的是一个给Ajax请求的JSON数据,它不需要那些多余的HTML。这就是要解决的问题。在没有帮助信息的情况下,我想到一些思路或许可以解决这个问题:
1.我首先想到的是在后台部分的element,它实际上是保存在administrator/component/com_joomsport/elements/路径下的一些PHP文件,而每个文件内是一个类的定义,它们都继承自JElement类。它的作用是,为当用户,设定一个菜单项链接到一个视图布局时,提供该链接的某个参数的可能值来给用户从中选择。这个过程的重点就是,Joomla会把一个JElement的类文件输出的HTML作为一个独立的输出。在我以前的博客中有几篇讨论JElement的:
http://blog.csdn.net/zlxadhkust/article/details/6862317
http://blog.csdn.net/zlxadhkust/article/details/6904458
http://blog.csdn.net/zlxadhkust/article/details/7061435
http://blog.csdn.net/zlxadhkust/article/details/7060956
2.我可以参考一个叫JDump的Joomla!插件。它是一个用于给开发者输出PHP变量的工具,它跨越了前台和后台的分别,不管你在哪里的PHP页面中插入dump()函数,当请求执行到那个页面时,浏览器会弹出一个新的窗口,在窗口中输出关于一些变量的信息。
我想在这个过程中,这个组件应该是在HTML还在缓存的时候尚未被输出以前,注入了一些Javascript脚本,来实现弹出窗口的功能。但是中间过程的数据是如何被移动或者传递的就暂不清楚。
3.通过Joomsport自身,从Joomla的MVC设计中寻找答案。
如果我们做这样一个假设,即是,Joomla!做不到在一个component中将某个视图的结果独立输出来达到web service的目的,那么这将意味着Joomla!的设计有多么欠缺灵活性上的考量,这不是很有可能。
- 在Joomla!的组件里创建web service - opening
- 在Joomla!的组件里创建web service - 02: JDump
- 在Joomla!的组件里创建web service - 03: Joomla!自身的Component设计
- 在Joomla!的组件里创建web service - 01: JElement 回顾
- 在myeclipse中的web项目里创建web service
- 在myeclipse中的web项目里创建web service client
- 如何创建一个Joomla的组件
- 使用 Fabrik 组件为 Joomla 创建一个简单的留言板
- 使用 Fabrik 组件为 Joomla 创建一个简单的留言板
- joomla component学习笔记(一)--创建自己的组件
- 如何在Joomla!新建菜单类型里快速增加自定义组件类型?
- 创建简单的Web Service
- 在AS里创建可视组件》关于AS组件
- 快速编写joomla的组件
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API (分享)
- hdu 1131 Count the Trees(n!*卡特兰数)
- iPhone开发经典语录集锦
- Linux系统上给文件按占用磁盘空间大小排序的方法
- ipv6地址的分类
- vim 大小写转换
- 在Joomla!的组件里创建web service - opening
- UVa 10387 - Billiard
- ajax 文本框提示
- UVa 11234 - Expressions
- 时间管理的七条魔法
- JXL 解析EXCEL
- QT4 键盘按键发送自定义信号
- 从摄像头获得图像的坐标原点是在左下角(OpenCV中IplImage结构中的origin成员)
- 模糊聚类算法(FCM)和硬聚类算法(HCM)的VB6.0实现及其应用