近安装使用了Joomla CMS,通过使用,我认为,它是一个把页面进行拆分,以位置来定义各个部分的显示,具体每个部分的显示又可以通过后台进行设置;后台提供了网站常用的功能组件,只需要进行简单的配置和操作即可显示于前台页面,这一点我觉得很方便。如果某些功能后台没有提供,我们还可以进行开发,如开发一个组件或模块,在后台进行安装,这样后台也就拥有了这样的功能模块,再设置其显示的位置,即可在前台显示。后台提供了插件的功能,如现在文章录入时使用的tinyMCE编辑器,我们也可以安装新的插件,如更换为FCKEditor等.

    源代码方面,它使用了工厂模式,代码的编写给我的感觉有点类似Zend Framework,我也从中学习到了很多代码编写的知识。

    以下内容为我在学习过程中的笔记,在这里写下来为了以后方便查找,方便学习,当然更希望它能给您带来一些帮助。

 

一、目录结构
    1、componets 所有安装的组件的,前端用户界面相关程序都在这里,每个组件一个子目录,通常是com_***
    2、plugins 所有的插件,涉及的程序文件和模板文件,资源等等
    3、modules 所有安装的模块相关的程序和资源
    4、includes 涉及重要的类,定义等等
    5、languages,下面是所有的语言文件,新的规范是一种语言一个目录,比如英文就是en-GB,中文简体就是zh-CN,目录下是相应的语言定义文件,命名规则是语种.组件名字(插件名字).ini ,比如 zh-CN.com_showcase.ini zh-CN.plg-***.ini等等。
    6、templates 没说的,一种模板一个目录
    7、library 最重要的目录之一了,下面都是重要的类文件,子目录结构对应类名称
       如:jimport( 'joomla.environment.uri' );    //那么对应的是 joomla/environment/uri.php 文件


二、基本概念
    1、单元——>分类——>文章
    2、先建立模块,然后建立菜单时可以选择已建立的模块
    3、首页核心代码(即首页正文blog列表)的位置

       /components/com_content/views/frontpage/tmpl/default_item.php
       首页核心代码样式修改,位置/templates/rhuk_milkyway/css/template.css
    4、模块实现一些小的功能,前台显示的位置为mainbody以外的区域,通过定义显示位置来设定。
       组件通常实现一个大的功能集合,可以与菜单结合,单独在一个页面显示某一组件。其前台显示的位置为mainbody区域。
    5、网页被分为不同的位置对应不同的功能模块,先实现功能模块,将其设置为显示到某一位置即可。位置的定义在模板文件中定义,可以自定义位置。

    6、如果使用了自定义的模板,如果模板文件夹中有组件/模块文件夹的话,其代码将覆盖系统对应的代码,需要修改时只修改模板文件夹下的代码即可。如果没有组件/模块文件夹的话,则其调用系统提供的代码,则到/components/或/modules/下进行修改。

    7、创建菜单项
           点击工具栏上的“New”按钮之后,出现的“菜单类型”页面有十多个选项,
           如果你将要新建的菜单项是指向某个组件,那么就选择“component”作为类型;
           如果是指向某个静态页面,就是“Link - static content”;
           如果是指向某个明确的URL,就可以选择“Link - Url”;
           如果是指向嵌入模式运行的页面,就选择“Wrapper”;
           如果是指向网页内容的单元或者类别,就选择对应的section或者category。
          “Submit - Content”这个类型比较独特,它的功能是在前台显示一个允许访客提交文章的页面,可以自行撰写,当Joomla安装后,默认的“Submit News”菜单项就是这个类型。
          “Separator / Placeholder”这个类型更特殊,它不产生任何链接,仅仅是为了插入一个分隔符,如 | 这个符号,或者占位符,比如多级菜单的第一级我们不希望它被点击,就可以设置为这种类型。


三、模板
    1、目录结构
       /templates
          /usertemplate
      /css
          template.css————模板核心css文件
      /html
      /images
      /js
      index.php————它对整站进行布局并且告诉JOOMLA内核何处放置组件和模块.
      templateDetails.xml————一个XML格式的文件告诉JOOMLA核心在使用当前模板时的文件清单. 这里也描述了作者;文件名称;copyright信息;甚至包括模板使用的图片文件的清单.必须包括模板使用的所有文件。
      template_thumbnail.png————当前模板的浏览器截图(通常使用140*90像素尺寸). 安装模板完毕以后,这张图片会以”缩略图”的形式在后台模板管理器中展示.
    2、html目录中如果存在模块或组件目录,那么这些目录的程序将覆盖系统对应的程序,系统对应的程序在网站根目录下的/components和/modules目录里。
    3、index.php说明
       jdoc:include
          例:<jdoc:include type="modules" name="left" style="xhtml" />
       引用一个模块,位置为left,xhtml表示风格
       注:type————类型,包括:component,head,installation,message,module,modules,前四个为固定的位置,所以不需要设置name值。
           name————位置
           style———风格

       说明:模块可以放置于任何位置,加载模块时需要指定其位置和显示风格,如果是组件,进行加载时不需要指定其位置。
    4、参考资料
       joomla模版代码分析
             http://www.35cola.com/viewthread.php?tid=97
       joomla 模板制作中的 jdoc 介绍
             http://www.adunet.cn/thread-368-1-1.html