刚开始学习joomla时,老是搞不清楚模块(module)和组件的关系,二者有相似,又有不一样,曾经为这二者的关系及区别也搞得头大。两者有时候要结 合使用,有时候又能够分别使用,这又有什么区别?在实际应用中才能感觉到这些问题,本文将试着用本站上的例子讲一下这些问题,这样有一个直观的感觉,让初 学者将模块(module)和组件(component)的这个小又重要的问题搞清楚,至于触发器(bot),再写过一篇吧。
先说模块(module)的,简单一点的说,模块(module)的功能就是将后台的内容显示在网页上,一个模块(module)对应网页上的必定区域, 好比一个简单的计数器mod_digit_counter,效果见本站左上角。mod_digit_counter就是一个模块(你能够在网上搜索下载, 本站以后将提供下载),功能很简单,只是在网页上显示一个计数器,数据从哪里来呢,就是从joomla原有的数据库中得来。当你安装设置好后,这个模块就 正常工做了,就这么简单,至于模块的设置,每一个都不一样,能够看模块的相应说明,通常都很简单。这个模块最简单,也没有什么设置,初学者能够用这个模块来感 受一下模块的使用。
那么组件呢,从功能上来讲,它是实现joomla自己没有的功能,好比留言板功能,joomla自己不提供,怎么办,就用不少组件能够提供这个功能,好比 easybook,bookjoomlas。本站使用bookjoomlas,下面就bookjoomlas来讲说。安装好bookjoomlas组件后 前台并无相应的显示(也许有另外,但我还没见过),这就是和模块的区别,你须要其它操做才能在前台显示bookjoomlas这个留言板。其它操做多 吗?很少,就两种,一种操做是作一个连接,我这里说的连接也就是joomla中的菜单项(menu item),注意是菜单项(menu item),不是菜单(menu),这个很重要(对于这个问题你能够参看本站的另外一篇文章)。如何新建这个菜单项,你先进入菜单(menu),而后选择新 建菜单,在新窗口中选择菜单项(menu item)类型为组件(component),单击下一步,在新窗口中选择相应的组件,这里固然选择bookjoomlas了,再输入一个名字,我在本站 取的名字就叫“我要留言”,这四个字将显示在前台页面上,请有参看本站右一角。单击保存就OK了。另外一种操做就是用这个组件对应的模块,好比,我有须要在 页面右侧显示最新的留言,怎么办?如本站你能够安装bookjoomlas对应的模块mod_bookjoomlaslast,从 mod_bookjoomlaslast的名字你也能够看出这个模块的功能,呵呵。安装这个模块后,设置好这个模块的发布位置并发布,就能够在前台看到效 果,你也能够看看本站右侧的最新留言,就是用这个作的。有人会问,那有的组件要和模块使用,有的不须要和模块一块儿使用,怎么区别,这个没有必定的规则,还 是以bookjoomlas为例,他能够单独使用,不要模块也能够,而那个最新留言的模块只是bookjoomlas组件上的一个显示功能,它所取的数据 都是组件bookjoomlas中的。
那么还有一个问题,何时模块独立使用,何时模块要和组件一块儿使用呢?你再回头看一下那个mod_digit_counter,你能够这样理解,当 一个模块在前台显示的数据是从joomla自己数据库中得来(或者模块自己就有数据),就不须要和组件一块儿使用。当模块要显示的数据要从相应组件的数据库 中取时,就须要和相应组件配合使用。(相应组件的数据库这种说法不正确,应当说是安装这些组件时,会在joomla数据库中新建一些,这些组件的数据就放 在这些表中。}
不知道这样说有没有说清楚模块和组件的区别及功能,不知不觉写了一个小时,收工了。有什么问题能够给留言。
做者: hotart
时间: 2010-4-6 23:30
刚接触的 很好理解
做者: 悲伤的魂
时间: 2010-4-8 13:38
组件com
模块mod
就分清楚了,
做者: joon
时间: 2010-4-8 14:03
我还插件plg
做者: 悲伤的魂
时间: 2010-4-8 14:14
我其实分不清楚,不过也懒得去分清楚
功能作导向,要实现什么功能——什么东西能实现(管它组件仍是模块)——下载下来看readme
说明书要我怎么装我就怎么装,要配什么插件就配什么插件
而后整到前台,OK。
功能实现。
完了,谢谢你们。
做者: joon
时间: 2010-4-8 14:29
呵呵·
楼上有空的话去试试纯模块的页面·
意思就是一个页面所有用模块去实现,不要用到组件
你就会发现问题了~也就是为何组件和模块有区别了,为何要搞清楚模块和组件
建议你去试试~joomla还有不少惊喜的~
做者: 11025
时间: 2010-5-22 09:07
收益匪浅,学习中
做者: keigoholic
时间: 2011-1-6 11:30
多谢了~新生,学习中
做者: reallovelei
时间: 2011-1-10 11:46
模块化的页面结构 会比较清晰。。
做者: jiang1314
时间: 2011-1-11 20:38
我仍是不懂,就是不懂。。。
做者: jiang1314
时间: 2011-1-11 20:38
不过楼主的头像真赞。。。
做者: ychangeer
时间: 2011-1-14 22:52
学习了,楼主真正老好人了
做者: tct888
时间: 2011-2-16 20:02
谢谢,学习了。
做者: yesisey
时间: 2011-2-21 15:36
谢谢学习了!
做者: yesisey
时间: 2011-2-21 15:42
仍是在实践中学习比较可靠。
做者: chaoyue8821
时间: 2011-2-22 15:36
讲的仍是比较好理解的。
做者: S0UL
时间: 2011-2-24 22:44
恩
之前老是不知道组件怎么用,嘿嘿
谢谢了
做者: wenfang
时间: 2011-3-17 22:07
模块和组件?算了,头大,先练习再说
做者: yaofeng
时间: 2011-3-25 19:21
一个有实力的楼主
顶..狂顶
做者: victorchl
时间: 2011-5-12 04:33
很不错的教程~~~~
做者: bboonnee
时间: 2011-5-16 21:53
楼主讲的太复杂了
组件是自带数据库结构的实现的功能,安装的时候他会本身生成数据库表来实现joomla不提供的功能
模块就是前台的UI层,连接组件和joomla的;
若是模块使用已有数据库表数据,就不须要组件;组件应该是必须有模块设置才能够显示
做者: ysxlinux
时间: 2011-6-10 08:56
楼主,请教一个问题。我在一个模块中放置一个表单的页面。而后这个页面提交后会进入下一个页面,下一个页面也一样显示在这个模块中。请问我要怎么实现?
做者: ysxlinux
时间: 2011-6-10 08:57
补充:我这个表单不想用joomla内置的表单模块来实现,谢谢。给位楼上的朋友有什么想法也能够给我留言。谢了。php
http://joomla.net.cn/viewthread.php?action=printable&tid=191linux