• 继上一篇的简略的说明 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 生成流程分析的更多相关文章

  1. CobaltStrike逆向学习系列(2):Stageless Beacon 生成流程分析

    这是[信安成长计划]的第 2 篇文章 关注微信公众号 [信安成长计划] 0x00 目录 0x01 Patch Beacon 0x02 Patch Loader 0x03 文件对比 0x04 流程图 C ...

  2. u-boot 流程分析

    u-boot 介绍: 对于计算机来说 , 从一开始上机通电是无法直接启动操作系统的 , 这中间需要一个引导过程 , 嵌入式Linux系统同样离不开引导程序 ,  这个启动程序就叫启动加载程序(Boot ...

  3. Android7.0 Phone应用源码分析(二) phone来电流程分析

    接上篇博文:Android7.0 Phone应用源码分析(一) phone拨号流程分析 今天我们再来分析下Android7.0 的phone的来电流程 1.1TelephonyFramework 当有 ...

  4. ofbiz进击 。 ofbiz 退货流程(包含获取可退货项流程分析 以及 取消退货项的过程分析)

    根据订单获取可退货项流程分析 退货的时候,调用 services_return.xml 中的获取可进行退货的退货项  getReturnableItems  ,该服务调用了Java类 org.ofbi ...

  5. Android7.0 Phone应用源码分析(一) phone拨号流程分析

    1.1 dialer拨号 拨号盘点击拨号DialpadFragment的onClick方法会被调用 public void onClick(View view) { int resId = view. ...

  6. HDFS2.x之RPC流程分析

    HDFS2.x之RPC流程分析 1 概述 Hadoop提供了一个统一的RPC机制来处理client-namenode, namenode-dataname,client-dataname之间的通信.R ...

  7. spark 启动job的流程分析

    从WordCount開始分析 编写一个样例程序 编写一个从HDFS中读取并计算wordcount的样例程序: packageorg.apache.spark.examples importorg.ap ...

  8. 【转】linux文件系统之mount流程分析

    本质上,Ext3 mount的过程实际上是inode被替代的过程. 例如,/dev/sdb块设备被mount到/mnt/alan目录.命令:mount -t ext3 /dev/sdb /mnt/al ...

  9. 前端JS模版库kino.razor - 原理流程分析 - 改进版轮子RazorJs

    1.前言 从后台获取数据,在前端JS里面拼接字符串,不累吗?敢不敢找一款前端使使... 现在这种模板库比较多了,我用过的jquery-template .JsRender .听说过的一堆,还有各种MV ...

随机推荐

  1. 用C#读取图片的EXIF信息的方法

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  2. exosip/osip 杂项

    exosip 对比osip osip2和eXosip2协议 exosip 和 pjsip 简介 如果要实现嵌入式设备上的SIP电话或者其它,PJSIP是我所见的Coding和Design最为优秀的了, ...

  3. Java中equals和==的解析

    java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(== ...

  4. [转载]手工安全测试方法&修改建议

    转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...

  5. 解压zip,解决中文乱码

    Project p = new Project();        Expand e = new Expand();        e.setProject(p);        e.setSrc(f ...

  6. Unity Game Starter Kit for Windows Store and Windows Phone Store games

    原地址:http://digitalerr0r.wordpress.com/2013/09/30/unity-game-starter-kit-for-windows-store-and-window ...

  7. QtGui.QSplitter

    A QtGui.QSplitter lets the user control the size of child widgets by dragging the boundary between t ...

  8. 【bat】通过for循环复制一张图片100次

    代码如下: @echo off set "F=1" cd C:\Users\Thinkpad\Desktop\img for /L %%F IN (1,1,100) DO COPY ...

  9. 【APP接口开发】常用HTTP响应头状态码详解

    1.200 OK,客户端请求城成功 2.400 Bad Request ,客服端请求语法错误,服务器无法理解和处理 3.401 unauthorized,请求未通过认证 4.403 permissio ...

  10. JavaScript的9个陷阱

    来自Nine Javascript Gotchas, 以下是JavaScript容易犯错的九个陷阱.虽然不是什么很高深的技术问题,但注意一下,会使您的编程轻松些,即所谓make life easier ...