joomla安装,代码结构

joomla-安装

  1. 下载源码

  2. 解压到apache发布目录

  3. 访问http://xxx/installation/index.php 根据实际情况访问

  4. 按每步提示操作,mysql库要先建立,ftp可暂时不开

  5. 删除安装文件即可


joomla代码结构

Joomla 2.5主要目录结构
├─administrator     # 后台程序部分
├─cache             # 用于存放cache,需要保持可写
├─components        # 组件,每个组件一个文件夹,通常是com_**
├─images            # 图片资源,上传的文件都会存放在这里,所以要保持可写
├─language          # 语言包目录,名称要与components、plugin或module的名称对应才能生效
│  ├─en-GB          # 如:language/en-GB/en-GB.com_content.ini
│  └─overrides      # 从2.5开始,语言文字可以在后台重写,被重写的语言信息存在位置
├─libraries         # joomla的核心类库,需要深入API的可以阅读里面的代码
├─logs              # 日志目录,要保持可写
├─modules           # 所安装模块的位置
├─plugins           # 所安装插件的位置
├─templates         # 所安装模板的位置,每个子目录对应一个模板
│  ├─atomic         # atomic是个典型的模板,适合于初学者
│  │  ├─css         # CSS目录,关于模板的样式文件都放在这里
│  │  ├─html        # 组件与模块都有自己的默认模板(tmpl目录),主模板有权限重写它们,重写的模板在这里
│  │  ├─images
│  │  ├─js
│  │  └─language    # 模板在后台可以拥有配置参数,而参数的语言包会放在这里
│  │      └─en-GB
│  └─system         # 所有template都基于system模板,不要修改它
│      ├─css
│      ├─html
│      └─images
└─tmp                # 临时目录,需要保持可写
configuration.php    # 配置文件,里面含有数据库与网站设置信息
.htaccess            # 没有它,在apache就不能实现伪静态链接
web.config           # 没有它,在IIS7就不能实现伪静态链接

component目录结构,举其中一个com_users的组件的栗子:
├─com_users            # user组件,joomla里非常重要的组件之一
│  ├─controllers       # 控件器集
│  ├─helpers           # helpers用于存放辅助类与函数  
│  ├─models            # 数据库model
│  │  └─forms          # Joomla2.5开始,表单可以基于XML来配置,forms是指定配置目录   
│  └─views             # 视图集
│      ├─login         # 登录页面视图
│      │  │  metadata.xml
│      │  │  view.html.php      # 视图逻辑,作用是model与template的桥梁
│      │  │  view.json.php      # 如果URL上有参数format=json,就会使用这个视图逻辑,如此类推
│      │  └─tmpl                # 默认模板,会由视图引入
│      │          default.php   # 其中一个模板
│      │          default.xml   # 后台添加菜单时需要选择menu type,组件是否出现在menu上靠这文件
│      │          default_login.php        # default.php的子模板,由loadTemplate引入
│      │          default_logout.php

注释:

  1. 组件与模块都有自己的默认模板(位于tmpl里), 如果自定义的模板下的html文件夹有相同的组件或模块,则执行渲染时,joomla会使用此下面的,也即原组件或模块的模板被覆盖了


模板里的位置

每个模板里所包含的位置都位于templateDetails.xml里<positions>下

比如下面在给模块选择显示位置时

--》

joomla安装,代码结构_第1张图片

此处列表的位置值即从各个模板的templateDetails.xml下去取的

而模板里则用<jdoc:include type="modules" name="left" style="tz_style" />去引用


菜单项类型

在创建新菜单,选择菜单项选项时

弹出的内容

joomla安装,代码结构_第2张图片

总的来说就是取各模块的view下文件夹展示的,详细步骤如下:

  1. 实际访问的是http://xxx/administrator/index.php?option=com_menus&view=menutypes&tmpl=component&recordId=101

  2. 按上面执行步骤知道其找的是administrator/components/com_menus/views/menutypes/view.html.php

  3. 看display代码有$this->get('TypeOptions'), 此处$this指libraries/joomla/application/component/view.php

  4. 而view.php里get是获取model里相应的$method = 'get' . ucfirst($property); 此处$property即为'TypeOptions'

  5. 从getTypeOptions方法里可见其从**_extensions表里取值,如下

  6. $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('name, element AS ' . $db->qn('option'));
    $query->from('#__extensions');
    $query->where('type = ' . $db->q('component'));
    $query->where('enabled = 1');
    $query->order('name ASC');
    $db->setQuery($query);
  7. 获取到component名称后,再获取具体链接

  8. 其会先获取$mainXML = JPATH_SITE.'/components/'.$component.'/metadata.xml',如果此xml不存在,则

  9. $options = $this->getTypeOptionsFromMVC($component),也即

  10. $path = JPATH_SITE.'/components/'.$component.'/views'

  11. $views = JFolder::folders($path); (libraries/joomla/filesystem/folder.php)

  12. 也即列出views下文件夹返回(注意这里文件夹下都有tmpl,显然是页面级,其菜单名称从其tmpl/default.xml获取)

  13. 拿com_contact举例:其下文件夹categories/, category/,   contact/,    featured/


你可能感兴趣的:(joomla安装,代码结构)