文档章节

joomla安装,代码结构

messud4312
 messud4312
发布于 2015/04/13 21:39
字数 1048
阅读 212
收藏 0

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>下

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

--》

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

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


菜单项类型

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

弹出的内容

总的来说就是取各模块的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/


© 著作权归作者所有

messud4312
粉丝 6
博文 153
码字总数 115258
作品 0
海淀
后端工程师
私信 提问
joomlaQQ登录微博登录

joomla QQ登录 微信登录等第三方登录 在joomla网站上集成QQ,微信,支付宝,人人,明道,短信,微博登录现在已经成为可能。只需要安装ZMAX程序人开发的ZMAX第三方登录组件,一键就可以让你的...

张敏樱木花道
2015/04/09
591
0
PHP写的joomla,这个CMS还有必要重新编写吗?有必要重构吗?

想请教大家一些问题,希望能回复回答一下,谢谢。 1.你是如何看待用PHP写的JOOMLA,这个CMS的呢? 2.评价下Joomla吧,比如这个CMS跟Drupal相比如何?跟用JAVA写的JEECMS比如何? 3.JOOMLA的代...

李昌德
2012/04/23
618
9
细谈Joomla建站之旅----我的启示录

欢迎来到Joomla建站之旅。 介绍一个自由免费的优秀建站软件Joomla,以及怎样自行管理用Joomla所构建的网站。当然顺带着我们也会在网站的规划和建设上给读者一些非常给力的建议。 为了方便大家...

crossmix
2016/02/12
1K
1
公司,可能要被强迫使用CMS,比如Joomla,要不要跟上面说抛弃CMS是必然结果

刚刚主管发了个Joomla的代码过来让我找个好看的后台安装。 之前除了以前认识dedecms,phpcms之类简单的cms之外,很少接触Joomla这种庞大的东西,可能我刚接触Joomla,有点害怕。 连个模板都要...

吴冠中
2012/03/15
3.5K
10
免费建站系统,Joomla 4 即将出现......

Joomla项目很高兴地宣布推出第十款Joomla 4.0 Alpha进行测试。 这个版本是什么? Alpha版本有两个主要目标: 为开发人员提供测试扩展的基础,并在最终版本发布前报告任何问题 允许用户发现J...

六艺网络专注于Joomla
07/08
3.1K
4

没有更多内容

加载失败,请刷新页面

加载更多

MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
33分钟前
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
43分钟前
5
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
51分钟前
7
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0
从AnnotationTransactionAspect开始rushSpring事务

0. Spring 事务 with LTW 0.1. Spring 事务 With LTW的原因: Pure Proxy-base mode有缺陷,其失效原因分析及使用方法及运行机制(LoadTimeWeaverBeanDefinitionParser和 AspectJWeavingEnable......

Aruforce
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部