打zZ~瞌睡 Menu
liubing

今天去天津见了一汽大众客户,有点累,早点回家歇了。。

Joomla教程(一)—— 初识Joomla

使用Joomla做二次开发至今也有6年了,经历了Joomla1.5 > 2.x,到现在的3.x,大大小小的项目也开发过不少,但是由于工作原因,没有系统地整理过。觉得还是把平时积累的东西写一写,供喜欢Joomla的朋友们参考吧,也欢迎大家多交流。

简单地说,Joomla是一个CMS。但是这个CMS有相当完善的内核机制,把各种第三方开发的组件、模块和插件无缝得衔接在一起,如果举一个形象点的例子,那它更像是一个操作系统,可以安装各种不同的功能(当然功能强大的CMS理当如此,Drupal和Wordpress其实也如此)。丰富的第三方扩展,使得它处理更种功能变得游刃有余。如果你想搭建一个企业网站,甚至改改模板就可以满足你的需求;如果你想定制复杂的功能,标准的MVC架构也使开发变得相当简单。

先介绍一下Joomla的基本知识,初识一下Joomla吧。

1. 下载Joomla
我使用的版本:https://github.com/joomla/joomla-cms/releases/download/3.4.3/Joomla_3.4.3-Stable-Full_Package.zip
最新版本请至:http://www.joomla.org/download.html

2. 安装
安装步骤就不多说了,基本就是一路“下一步”。注意安装示范数据时安装“帮助测试示范数据”,便于跟我以后的文章有更好的对照。

3. 文件目录介绍

# 目录
administrator/   # 管理后台目录
bin/             # 该文件夹存放一些基于Joomla框架开发的一些实用的脚本
cache/           # 文件缓存目录
cli/             # 该文件夹存放一些终端使用的命令,用于操作当前的站点
components/      # Joomla组件目录
images/          # 网站内容使用的媒体文件目录,后台有对此文件夹进行管理的功能
includes/        # 运行Joomla需要包含的基础文件
language/        # 语言目录,多语言的翻译都存放在这里
layouts/         # 应该是控制布局的,没有注意过是哪个版本加上的,也没研究过,等有时间了研究一下再写
libraries/       # Joomla使用的库文件
logs/            # 日志目录,一些异常处理都会存放在这个文件夹里,例如后台登录时输入错误的用户名和密码
media/           # Joomla使用到的媒体文件,主要是页面渲染会用到的,存放的内容跟images目录有区别,而且后台是没有对其进行管理的功能的
modules/         # Joomla模块目录
plugins/         # Joomla插件目录
templates/       # Joomla站点模板目录
tmp/             # 临时目录,如安装组件或模块时残留的解压文件等

# 文件
configuration.php   # Joomla配置文件
htaccess.txt        # 帮助我们生成.htaccess
index.php           # Joomla单入口文件
LICENSE.txt         # 不多叙述
README.txt          # 不多叙述
robots.txt          # 搜索引擎爬行使用的文件
web.config.txt      # 据说是IIS使用的文件

 

4. 后台功能简介

System                        # 系统相关
|_ Control panel              # 控制面板
|_ Global Configration        # 配置管理(对configuration.php文件的管理)
|_ Global Check-in            # 没找到很对应的中文翻译,功能介绍请往下看
|_ Clear Cache                # 清除缓存
|_ Purge Expired Cache        # 清除过期的缓存
|_ System information         # 系统信息
Users                         # 用户相关
|_ User Manager               # 用户管理
|_ Groups                     # 用户组管理
|_ Access Levels              # 权限管理
|_ User Notes                 # 用户备注
|_ User Note Categories       # 备注分组(用到的不多,不会多讲)
|_ Mass Mail Users            # 批量发送邮件管理
Menus                         # 菜单相关
|_ Menu Manager               # 菜单管理(跟下边的菜单列表容易混淆,以后讲菜单的时候会讲解)
|_ Menus                      # 菜单列表
Content                       # 内容相关
|_ Article Manager            # 文章管理
|_ Category Manager           # 分类管理
|_ Featured Articles          # 推荐文章
|_ Media Manager              # 媒体管理(对images文件夹的管理)
Components                    # Joomla启用的组件列表
Extensions                    # 扩展相关
|_ Extension Manager          # 扩展管理(包括扩展组件、模块、插件、语言等的安装/卸载、启/禁用等)
|_ Module Manager             # 模块管理
|_ Plugin Manager             # 插件管理
|_ Template Manager           # 模板管理
|_ Language Manager           # 语言管理
Help                          # 帮助

 

5. 重要概念:Check in
在Joomla中,为防止不同的人对相同内容同时操作而引起的冲突,在编辑内容(如菜单、文章、模块等)时,Joomla都会将其锁定。保存或取消之后才会将其解锁(如果查看编辑页面,会发现有一个cancel按钮,推荐使用此按钮退出编辑,否则编辑锁不会解除)。但也有例外情况,比如编辑人员没有使用取消编辑功能,而是使用了后退,或者由于某些原因编辑时被中断了,编辑锁不会解除。Check in就是解除编辑锁的功能。System > Global Check-in就是对网站内所有加锁的内容进行管理的。

本节内容非常简单,实际操作下来应该比较轻松,今天写到这儿先,待后续吧!

项目正式上线前需要检查的内容

以前项目上线之后总是有小问题的反馈,总结之后发现是上线前检查的不全面,所以根据以往的项目经验,总结了项目上线前需要检查的内容列表。

当然根据项目不同,可能各个检查点的侧重点不同,具体项目可能还需要细化。

CHECKLIST

CMS中前端与程序开发之间的合作方式

由于项目开发流程的约定,之前的项目合作方式一直是:

  1. 设计师将设计稿交由客户确认
  2. 前端将确认页面的PSD切成HTML页面,交由客户确认
  3. 确认的页面交由后台进入开发

考虑到开发时间和成本的关系,HTML没有放到版本控制软件进行跟踪。也由于每一步都交由相应人员确认,看似没有问题的流程其实是存在隐患的:那就是项目不时会进行小的调整和修改。前端页面开发人员在进行了小的HTML结构调整之后,要进行记录,口头转述给后台开发,以免有所遗漏。后台开发人员也很认真,每次都进行相应的记录。但是项目改动频繁或有大量琐碎的修改的时候,耗费的时间、人力和沟通成本无疑是相当可观的。

改进1:前端开发的HTML页面一样要归并到版本控制里,但是为了让前端开发有一个干净的文件目录,所以单独新建一个目录放HTML页面,避免前端开发也更新到CMS中的文件。这样每一次修改都有所追踪,也方便后台人员跟踪修改,节约了时间成本。只是还有另外一点不足:因为前端页面和CMS的模版在不同的文件夹内,所以css和js都需要后台人员手动合并。

改进2:在CMS的模版文件夹内建立css/images/js目录的软链接,链接至HTML文件夹内的目录,这样前端开发人员提交的修改,后台开发只需更新,就可应用为最新的样式,只需要按照修改记录更改HTML结构的改动就可以了。另外虽然有版本控制,但是我还是建议后台开发不要直接修改前端的css/js文件,如果有修改的话或者反馈到前端人员修改,或者引用另外的文件,以覆盖的方式重写样式和功能,尽量减少工作内容的耦合性,提高代码的可维护性。

php 5.3.3 中 php-fpm 的重启、终止操作命令

php 5.3.3 源码中已经内嵌了 php-fpm,不用象以前的php版本一样专门打补丁了,只需要在configure的时候添加编译参数即可。

关于php-fpm的编译参数有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。

但是,php 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:

master进程可以理解以下信号

  • INT, TERM 立刻终止
  • QUIT 平滑终止
  • USR1 重新打开日志文件
  • USR2 平滑重载所有worker进程并重新载入配置和二进制模块
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`   # php-fpm 关闭
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`  # php-fpm 重启
ps aux | grep -c php-fpm                             # 查看php-fpm进程数

Wake up!

以前的博客站由于服务器到期前没有及时备份,导致所有数据丢失,再者最近忙于工作,中国的ICP也很麻烦,导致小站“沉睡”了两年多的时间。

现在想想还是再写点东西吧,不然每天早到公司一个多小时就浪费了,明显感觉越来越懒了,得督促自己一下!