/administrator 就是管理后台的路径。如果你的网站域名是 http://www.52joomla.com ,那么加上这个目录就是管理后台的路径,即 http://www.52joomla.com/administrator 。这也就引出一个安全隐患:每个人都很清楚Joomla的管理后台路径,而且Joomla登录时不需要输入验证码(CAPTCHA),居心不良的人使用穷举法就能暴力破解网站后台帐号——更何况Joomla默认的管理员用户名是 admin,人家只需要猜密码就行了。为了安全,我推荐你学习一下AutoIt发明的改变后台管理登录路径的方法。
/cache 是缓存目录。这里存储网站运行过程中的缓存文件,对于提高网站打开速度有帮助。
/components 是组件(component)目录。如果进入该目录,会看到所有子目录都是以 com_ 开头。这是Joomla的命令原则,com_ 就是组件的字头。所谓组件,我的理解就是完成一项重大任务、实现某个复杂功能的程序集。比如我们需要一个留言本,那么com_easybook 就是留言本组件。组件展示的位置是在模板的mainbody区域。组件可以在前台菜单上建立菜单项,点击该菜单项就打开了该组件的内容。例如,点击本站顶部菜单上的“留言”就能打开留言本。
可以这么理解组件:每个组件都有明确的功能定义,或者发布新闻;或者展示相册;或者列出会员上传的视频并允许点击播放;或者是一个论坛供众人激辩;……它往往实现很复杂的功能,前台展示结果允许分页显示,并且需要显示在mainbody这个区域作为页面的主要内容。
/help 目录——Joomla的帮助文件,不过这个帮助简直是鸡肋,反正我从来没有用过。
/images 目录,一看就明白。这里存放网站文章中所有插图。如果你要建立电子相册、图库软件,其使用的存储目录或许不在这里。
/includes 是一个重要的目录,里面都是Joomla运行所需的各种脚本、函数等等。可谓“机房重地,闲人莫进”。
/language 即网站语言目录。这里存放全站前台界面的语言包。例如我们要将英文版Joomla汉化,就必须把中文语言包保存到这个目录。相应的,后台界面的语言包就存放在 /administrator/language 目录里。
/plugins 即插件目录。插件的文件名一般以 plg_ 或者 plugin_ 开头。一般来说只针对网页(content)启效。
有很多插件需要手动启动,即只有文章作者需要在该文中应用该插件的效果时才使用,这时只要插入相应的“触发命令”即可。所谓“触发命令”实际上是该插件的专用代码语法(syntax)。通常插入插件需要用打括号{}将一句或者一段代码包含。当Joomla的网页在浏览器中打开时,就会自动将大括号识别为插件启动命令,然后去寻找是否存在对应的代码,如果存在就将该大括号内的代码替换为插件的执行结果,如果不存在就直接以大括号来输出。
/media 目录顾名思义就是存放各种媒体文件的地方。当你的网站媒体文件不多,但又确实“有几个”的时候,可以将他们保存在这个目录,然后在文章中展示出来或者提供下载链接。实际上,这个目录管理的媒体有限,一些专门的媒体组件,如zOOm 允许使用指定的其他目录来管理媒体。
/modules 目录是存储模块(module)程序的地方,打开该目录,可以看到几乎所有文件名都以 mod_ 开头。Joomla的模块概念与其他web程序所说的模块稍有不同。这里的模块指可以将特定内容展示在前台mainbody之外的某个指定位置(position)的程序。由于mainbody是前台页面的中心,也是占面积最大的区域,因此模块在前台就是以一个小方块来显示。例如,我们可以在页面的左侧或者右侧,或者底部,通过 What is My IP 这个模块来显示访客的IP地址;我们也可以用OnBoom Flash MP3 Player这个模块在前台显示一个mp3歌曲播放器。
Joomla默认模板已经定义了十多个模块位置,如header、footer、left、right、debug、user1、advert2等等。在制作Joomla模板时,你可以自由分配这些模块位置的展示位置。比如,你可以将left显示在右侧,虽然有违常规,但是不算错。某个模块展示在前台的哪个位置,取决于你在后台设定它发布(publish)在哪个模块位置。例如,你将OnBoom Flash MP3 Player这个模块发布在left,那么网站左侧就多了一个播放器;如果你过几天想调整一下,登录到后台将它又改发布到right,那么前台的播放器就跑到右侧去了。在此过程中,你不需要理解或者编写任何代码,只需要点几下鼠标就行。
在一个模块位置上,可以发布多个模块。例如,左侧通常可以发布主菜单(mod_mainmenu)、登录窗口(mod_login)、新闻供稿(mod_rssfeed),右侧可以发布在线会员(mod_whosonline)、在线调查(mod_poll),而旗帜广告(mod_banners)则一般发布在顶部位置,可能是banner位置,也可能是header位置。对于发布在同一个位置的多个模块,管理员可以在后台调整展示顺序。
另外,还可以在后台设定模块发布到哪些页面。一个网站通常有很多页面,好几个栏目(组件),我们或许不希望在某些页面上展示某些模块。例如,安装了FireBoard论坛组件后,很多人希望点击菜单上的“论坛”打开的页面只有论坛界面,没有左侧或者右侧那些模块,这样论坛的内容就会占用整个屏幕窗口,显得比较大气。而在其他页面上却仍然需要显示左侧的登录窗口及右侧的Google Adsense广告等。那么,只需要在后台的模块列表中,将发布在left 和right的各个模块都一一打开,设定每个模块的发布页面中不要包含“论坛”这一页即可。这个设定不仅对论坛的首页有效,而且对于任何属于论坛的页面都有效,也就是说,即使你进入某个版块阅读帖子,或者点击“回复”按钮回帖,left和right位置都不会显示任何模块。
由此可以看出,模块一般展示的内容都比较简单,也不需要占用很大的面积,更不需要建立菜单上的链接。这样的程序都会被按照模块来编程。如果你的需求超过了这些,那么还是编写一个组件吧。
当然,某些组件还有配套模块。这是因为有时候需要将组件的某一部分内容显示在其他页面或者网站首页的周围区域,例如我们可能需要将RSgallery2图库的新增图片显示在网站首页,好让访客看到每天都增加了哪些图片;我们还可能需要将整合的SMF论坛的新帖展示在首页,以便访客迅速了解论坛的最新动向。这些模块的功能离不开相应的组件,但是它们也只是展示组件的一部分内容,并且需要发布在组件之外的位置。这样的功能就必须通过模块来完成。
/logs目录是Joomla的日志目录,
/tmp目录是Joomla的临时目录