WIXOO

Digest

Joomla! 架构初探

作者:不详 发布时间 10/11/07 来源 来自网络

最近受人之托要建个网站。现在Web技术日新月异,已经成为最新的buzzword。学术界不少学者也加入进来进行language design和security方面的研究。我于是忙里偷闲做了点小调查,基本上计划使用网站内容管理工具(CMS)进行开发,这样比自己从HTML、 CSS、PHP、Javascript一步一步搭建会省事不少,同时还能学习别人的优秀设计。CMS安装起来大同小异,因为之前玩过Wordpress,所以装别的也不难。

Joomla和Drupal是两个最好的开源CMS。Drupal是由一位CS的PhD学生业余时间主持开发的,据说代码结构很清晰,模块化做得很好,很容易在核心代码之上开发扩展。与之相比,Joomla据说扩展性相对差些(1.5beta有所改善),但是可以看出来缺省安装后的网页以及管理界面确实都比Drupal要漂亮。Joomla强调的是just works out of the box。

Joomla里面影响页面结构的最重要的部分是template和modules。常用的module包括Main Menu,Syndicate,Newsflash,以及用于显示广告的Banner等。joomla的首页会调用当前被选中的template的 index.php来显示页面,同时模板又会call back注册的modules,modules一般有一些通用的属性,如显示/隐藏、位置,等等,同时每个module又有自身的特殊设置用来控制内部显示的内容。一般情况下如果模板已经符合要求,可以只通过设置module来进行微调,而很多情况下还必须对模板本身的html和css代码进行定制。我感觉这是joomla的不灵活性之一。

以1.012版的缺省安装为例。默认模板在templates/rhuk_solarflare_ii目录,其外观由index.php和 css/template_css.css控制。index.php将各个modules嵌入到页面中。嵌入的位置可以在管理页面中通过Site- > Preview-> Inline with Positions 进行观察。下图中详细解释了一个典型的三栏式页面的结构。红框都是modules,其中debug模块通常不会显示。管理员可以设置每个module到任一个红框中。一个红框可以包含多个module,并且它们的order可以被灵活设置。蓝框中的主页面不属于任何module,需要通过 Content-> Front Page Manager 进行定制。要定制header和footer则必须修改代码,其中header由模板自带的php和css控制,通常是一张图片,footer由 joomla/includes/footer.php控制,通常为两行文字。

template.png

 

上一篇:Joomla首页的概念
下一篇:Joomla!模板教程