博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
joomla1.5前台组件开发过程分享(附中文开发教程两本)
阅读量:6159 次
发布时间:2019-06-21

本文共 1866 字,大约阅读时间需要 6 分钟。

hot3.png

    上一次分享到一个后台组件开发,也许我讲的不是很明白,不过你们把源代码拿去以后应该可以看懂,我是完全按照MVC模式开发的。今天呢,就 来分享一下前台组件开发,我这里的前台组件和后台组件都是单独开发,前台组件是没有后台管理的,仅仅是开发显示效果,因为默认的排版方式就是那么两种,如 果客户需要个性化的,就必须自己开发,下来我们就开发了。说一下目的,我要开发的是显示文章的列表样式,和自带的博客样式,默认样式不同的,找到前台组件 目录components在里面新建一个文件夹就叫做com_more吧,在里面新建文件more.xml这个是打包安装文件,models文件夹是模块 文件夹,views是视图文件夹,controller.php是控制器,more.php是入口文件。开发过程中我们可以用 index.php?option=com_more来查看效果,由于这个例子简单,没有更多控制器和视图,所以还是比较容易理解。最后我会分享给你们插 件开发的教程两本。

    现在一步一步来,more.xml是安装文件,不是必须的,如果要打包分享别人通过zip上传方式安装才需要,一般工作中没有必要去写那个文件,特别是当文件特多的时候,我们直接上传开发文件和手动配置数据库同样可以。先来看more.php入口文件吧,

defined('_JEXEC') or die;jimport('joomla.application.component.helper');require_once( JPATH_COMPONENT.DS.'controller.php' );$controller = new MoreController();$controller->execute(JRequest::getVar('task',null,'default','cmd'));$controller->redirect();

里面的1-3行是每个组件必须,任何组件都这么写,分别是防止意外加载,载入助手函数,再入控制器文件,4行是创建一个控制器对象,5行是执行任务,最后跳转,MoreController()是采用组建名+controller来命名的,joomla随处可见这种命名方式。

    接着来看controller.php控制器代码

defined('_JEXEC') or die( 'Restricted access' );jimport('joomla.application.component.controller');class MoreController extends JController{    function display()    {        parent::display();    }}

很简单吧,就是继承了父类joomla的控制器而已,没啥好说的。复杂一点的事models里面,他是一 个模型,就是处理数据的,他把处理的数据给了views文件夹里面的more下面的view.html.php,在这个文件里面,我们首先是获得模型,然 后把处理数据的方法返回的数据复制给模版。$this->assignRef('category',    $category);就是赋值给category,这里其实可以不需要模型,我们直接在这个文件里面写查询数据,然后把值赋给变量,不过就不是MVC 模式了。

    最后就是在views\more\tmpl里面default.php的显示文件了,这里就是控制显示效果了,把处理的数 据结果都在这里显示,通过循环,可以取出数据值。这里也是可以写查询语句的,有时候为了开发方便就直接在这里写了,不过后期维护组件的人就不容易看懂了, 怎么做自己看着办吧。在joomla里面查询数据用的最多,所以

$db=&JFactory::getDBO();    $query="SELECT * FROM #__content";    $db->setQuery($query);$list=$db->loadObjectList();

 这几句用的最多,几乎开发插件、组件、模块都有可能用到的。最后用循环取出$list值。

    好了一个组件基本就完成了,最后附上组件完整代码,以及两本开发教程都是中文版的,一本是API讲解,一本是插件组建模块开发。

(原创 by Yoby)

转载于:https://my.oschina.net/u/98589/blog/57511

你可能感兴趣的文章
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
js中var、let、const的区别
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
Apache通过mod_php5支持PHP
查看>>
java学习:jdbc连接示例
查看>>
Silverlight 如何手动打包xap
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>