EmWebAdmin 生成流程分析
继上一篇的简略的说明 EmWebAdmin 的地址以后下载,生成之后,这一篇讲一下该模板的生成流程
// 上一篇地址:
http://www.cnblogs.com/chenfulin5/p/6856379.html
EmWebAdmin
Makefile
1 all:
2 @chmod +x templates/bin/emWebAdmin
3 @templates/bin/emWebAdmin generate
4
5 clean:
6 @chmod +x templates/bin/emWebAdmin
7 @templates/bin/emWebAdmin clean
EmWebAdmin
templates/bin/emWebAdmin
// 如果在顶层目录执行 make all
// 则执行 templates/bin/emWebAdmin generate
10 contents=`ls custom/contents`
11 # 参数为生成
12 if [ $1 == 'generate' ]; then
13
14 # make output directory
15 if [ ! -d "output" ]; then
16 mkdir output 创建相应的目录
17 chmod 777 output
18 mkdir output/tpl
19 fi
21 # generate all php file
22 for content in $contents
# 以templates/gentelella/base.tpl 里面的内容为模板
# 替换里面的 ***** 内容为 custom/contents 文件夹内文件的名字
# 并重定向到 output 内,名字改为custonm/contents 文件夹内文件的名字,后缀改为 .php ,原为 .tpl
23 do
24 sed "s/\*\*\*\*\*\*\*\*/$content/g" templates/gentelella/base.tpl > output/`basename $content .tpl`.php
25 echo "generate `basename $content .tpl`.php over."
26
27 done
28
# 将 custom/common/ 里面的内容复制到 output 内
# 这里面主要包括 json配置文件目录,PHP接写json配置文件,并保存在Smarty变量中
# 自定义的 css 样式以及js 样式,登录界面以及登录处理
29 # copy custom/common .php file to output directory.
30 if [ -d "custom/common" ]; then
31 cp custom/common/* output/ -rf
32 fi
33
# 将 custom/contents 里面的模板文件拷贝到 output/tpl 用于最后生成相对应文件
34 # copy contents .php file to output/tpl directory.
35 if [ -d "custom/contents" ]; then
36 cp custom/contents/* output/tpl/ -rf
37 fi
38
# 将依赖库复制过去
39 # copy all dependents file(js, css, smarty lib) to output directory.
40 if [ -d "templates/dependents" ]; then
41 cp templates/dependents/* output/ -rf
42 fi
43
# 将另外一些模板文件复制过去
44 # copy theme templates to output/tpl directory.
45 if [ -d "templates/gentelella" ]; then
46 cp templates/gentelella/* output/tpl/ -rf
47 fi
48
# 这里面会复制一个很重要的 json 文件,在 templates/smarty/config 内
# 这个文件配置了想对应的调用文件以及你侧边栏会有相对应的菜单
49 # copy smarty template config, preprocess file to output/tpl directory.
50 if [ -d "templates/smarty" ]; then
51 cp templates/smarty/preprocess/* output/tpl/ -rf
52 cp templates/smarty/config output/ -rf
53 fi
54
55 exit 0
56 fi
EmWebAdmin 生成流程分析的更多相关文章
- CobaltStrike逆向学习系列(2):Stageless Beacon 生成流程分析
这是[信安成长计划]的第 2 篇文章 关注微信公众号 [信安成长计划] 0x00 目录 0x01 Patch Beacon 0x02 Patch Loader 0x03 文件对比 0x04 流程图 C ...
- u-boot 流程分析
u-boot 介绍: 对于计算机来说 , 从一开始上机通电是无法直接启动操作系统的 , 这中间需要一个引导过程 , 嵌入式Linux系统同样离不开引导程序 , 这个启动程序就叫启动加载程序(Boot ...
- Android7.0 Phone应用源码分析(二) phone来电流程分析
接上篇博文:Android7.0 Phone应用源码分析(一) phone拨号流程分析 今天我们再来分析下Android7.0 的phone的来电流程 1.1TelephonyFramework 当有 ...
- ofbiz进击 。 ofbiz 退货流程(包含获取可退货项流程分析 以及 取消退货项的过程分析)
根据订单获取可退货项流程分析 退货的时候,调用 services_return.xml 中的获取可进行退货的退货项 getReturnableItems ,该服务调用了Java类 org.ofbi ...
- Android7.0 Phone应用源码分析(一) phone拨号流程分析
1.1 dialer拨号 拨号盘点击拨号DialpadFragment的onClick方法会被调用 public void onClick(View view) { int resId = view. ...
- HDFS2.x之RPC流程分析
HDFS2.x之RPC流程分析 1 概述 Hadoop提供了一个统一的RPC机制来处理client-namenode, namenode-dataname,client-dataname之间的通信.R ...
- spark 启动job的流程分析
从WordCount開始分析 编写一个样例程序 编写一个从HDFS中读取并计算wordcount的样例程序: packageorg.apache.spark.examples importorg.ap ...
- 【转】linux文件系统之mount流程分析
本质上,Ext3 mount的过程实际上是inode被替代的过程. 例如,/dev/sdb块设备被mount到/mnt/alan目录.命令:mount -t ext3 /dev/sdb /mnt/al ...
- 前端JS模版库kino.razor - 原理流程分析 - 改进版轮子RazorJs
1.前言 从后台获取数据,在前端JS里面拼接字符串,不累吗?敢不敢找一款前端使使... 现在这种模板库比较多了,我用过的jquery-template .JsRender .听说过的一堆,还有各种MV ...
随机推荐
- Win10系统开启Linux Bash命令行
Win10系统开启Linux Bash命令行 导读 在Build2016上微软为了拉拢开发者发了个大招,那就是Win10一周年更新集成原生Linux Bash命令行功能,这将允许开发者或用户在Wind ...
- (转)Behavior Tree实践
http://www.cnblogs.com/mavaL/archive/2013/04/07/3001860.html
- /etc/ssh/sshd_config 配置(ssh连接)
# Package generated configuration file# See the sshd_config(5) manpage for details # What ports, IPs ...
- HYSBZ 1012 最大数maxnumber
思路:在单调队列不更新列首.由于查询区间大小不确定,所以不能保证下次是否还用到它 #include <cstdio> #include <cstring> #include & ...
- 用一段直径为1的原木制作截面是矩形的横梁,问梁的宽度x和高度y是怎样的比例时,才能使梁的强度最大?
解:根据经验,梁的强度与高度平方成正比,和宽度成反比,可以写成 q=y2x 又有x2+y2=1,得到 q=(1-x2)x=x-x3 而导数q'=1-3x2,当q'=0时,q有极值 q'=0时,x=1/ ...
- Wince6.0模拟器下载和使用方法
原文地址:http://www.oogps.com/post/Wince6.0.html下载地址:Wince6.0模拟器下载.rar 第一步:把软件下载解压后看到以下目录. 第二步:双击运行上图中的S ...
- TP5.0生成模块(home/admin)命令
TP5.0> 进入项目根目录(tp5/),执行以下命令: > php think make:controller 模块名/控制器名 //语法 > php think make:con ...
- 数据库-IO系统性能之衡量性能的几个指标
转自http://storage.it168.com/a2011/0323/1169/000001169755_all.shtml 作为一个数据库管理员,关注系统的性能是日常最重要的工作之一,而在所关 ...
- mybatis实战教程(mybatis in action)之三:实现数据的增删改查
前面已经讲到用接口的方式编程.如果不一致就会出错,这一章主要在上一讲基于接口编程的基础上完成如下事情:1. 用 mybatis 查询数据,包括列表2. 用 mybatis 增加数据3. 用 mybat ...
- SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...