刚刚接触phpcms,先从它的目录结构说起。

如下图所示,是phpcms的主目录结构:

其中api是接口目录,这个接口不是很明白。大概其是把别的内容加入进来,比如论坛啊什么的。

caches是缓存文件,存放的是缓存的信息,缓存能够提升网站的友好性,当第一次加载后,第二次就会很快的加载。

html目录,不晓得是什么意思。里面空空的。大概其是一些转化为html的文件存放在里面吧。

然后就是phpcms,这个是phpcms的核心目录,里面又有很多子目录,如下图所示:

languages是语言包,libs是一些核心类和函数,model目录里面是一些模型,moudules是模块,里面有一些控制器类,函数和模板,每个模块都对应着相应的控制器、函数和模板。plugin是插件目录。templates是模板信息。不过有点晕的是,不晓得与modules里的模板有什么区别。

分析完phpcms,接下来是phpsso_server目录,关于phpsso,我查了一下,PHPSSO是用PHP开发的单点登录系统。在接入PHPSSO的多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。PHPSSO可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制,是目前比较流行的企业业务整合的解决方案之一。它是一个独立的系统,里面的架构跟整个的phpcms差不多。

然后就是statics,这个目录存放的是一些美工的信息,css,js,images等。前台的后台的都存放在里面。

还有就是uplandfile目录,里面是一些上传的文件。

phpcms是一种mvc设计模式的内容管理系统。它的前台入口文件为index.php。

/**
* index.php PHPCMS 入口
*
* @copyright (C) 2005-2010 PHPCMS
* @license http://www.phpcms.cn/license/
* @lastmodify 2010-6-1
*/
//PHPCMS根目录 define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); include PHPCMS_PATH.'/phpcms/base.php'; pc_base::creat_app();

由index.php进入核心目录phpcms中。然后进入真正的PHPCMS框架入口文件base.php。

后台入口文件为admin.php。

<?php
header('location:index.php?m=admin');
?>

略微看了一下,只是一个跳转,跳转到index.php界面,同时多了一个参数,大概这个参数就是控制页面进入后台的。

phpcms用的是mvc架构,在模板中用的是一种自己的模板技术,类似于Smarty,可以将html与PHP代码分开。随便找一个模板看一下。

{template 'member', 'header'}
<script language="javascript" type="text/javascript" src="{JS_PATH}admin_common.js"></script>
<link href="{CSS_PATH}dialog.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="{JS_PATH}dialog.js"></script>
<div id="memberArea">
{template 'member', 'left'}
<div class="col-auto">
<div class="col-1 ">
<h6 class="title">收件箱</h6>
<div class="content">
<form name="myform" id="myform" action="{APP_PATH}index.php?m=message&c=index&a=delete" method="post" onsubmit="checkuid();return false;">
<table width="100%" cellspacing="0" class="table-list">
<thead>
<tr>
<th width="5%"><input type="checkbox" value="" id="check_box" onclick="selectall('messageid[]');"></th>
<th width="35%">标 题</th>
<th width="8%">回 复</th>
<th width="15%">发件人</th>
<th width="15%">发送时间</th>
</tr>
</thead>
<tbody>
{loop $infos $info}
<tr>
<td width="5%" align="center"><input type="checkbox" name="messageid[]" value="{$info['messageid']}"></td>
<td width="35%" align=""><a href="{APP_PATH}index.php?m=message&c=index&a=read&messageid={$info['messageid']}">{if $info['status']==1}<font color=red><b>{$info['subject']}</b></font>{else}{$info['subject']}{/if}</a></td>
<td width="8%" align="center">{if $info['status']!=2}{/if}{$info['reply_num']}</td>
<td width="15%" align="center">{$info['send_from_id']}</td>
<td width="15%" align="center">{date('Y-m-d H:i:s',$info['message_time'])} </a>
</tr>
{/loop} </tbody>
</table>
<div class="btn"><a href="#" onClick="javascript:$('input[type=checkbox]').attr('checked', true)">全选</a>/<a href="#" onClick="javascript:$('input[type=checkbox]').attr('checked', false)">取消</a>
<input name="submit" type="submit" class="button" value="删除选中" onClick="return confirm('确认要删除 『 选中 』 吗?')">&nbsp;&nbsp;</div> </form> <div id="pages">{$pages}</div>
</div>
<span class="o1"></span><span class="o2"></span><span class="o3"></span><span class="o4"></span>
</div> </div>
</div>
<script type="text/javascript">
function read(id, name) {
window.top.art.dialog({id:'sell_all'}).close();
window.top.art.dialog({title:'查看详情'+name+' ',id:'edit',iframe:'?m=message&c=index&a=read&messageid='+id,width:'700',height:'450'}, function(){var d = window.top.art.dialog({id:'see_all'}).data.iframe;var form = d.document.getElementById('dosubmit');form.click();return false;}, function(){window.top.art.dialog({id:'see_all'}).close()});
}
function checkuid() {
var ids='';
$("input[name='messageid[]']:checked").each(function(i, n){
ids += $(n).val() + ',';
});
if(ids=='') {
window.top.art.dialog({content:'请选择再执行操作',lock:true,width:'200',height:'50',time:1.5},function(){});
return false;
} else {
myform.submit();
}
} </script>
{template 'member', 'footer'}

这是一个消息message页面的代码,里面会有一些{}括起来的内容,它就是phpcms自带的模板技术。可以将php页面的信息渲染到界面中去。

略看了一下模板目录中的内容,如下所示:

有一种模块化的感觉,有评论模块、有内容模块、有链接模块、有消息模块、有查询模块等等。

大概其,采用的是mvc架构,还是比较清晰的。对于二次来发来说,搞清目录结构还是很重要的。还要研究研究代码。

文章转自:http://www.cnblogs.com/jiqing9006/archive/2012/07/24/2606553.html

(三)phpcms之文件目录的更多相关文章

  1. Phpcms所有系统变量列表 Phpcms V9 文件目录结构

    Phpcms所有系统变量列表 用户变量: view plaincopy to clipboardprint? $_userid    用户id   $_username 用户名   $_areaid  ...

  2. PHPCMS详细文件目录结构

    PHPCMS详细文件目录结构 根目录 |  –  api  接口文件目录 |  –  caches 缓存文件目录 |  – configs 系统配置文件目录 |  – caches_* 系统缓存目录 ...

  3. Linux学习--第三天--linux文件目录、ls、mkdir、mv、rm、touch、cat、tac、more、less、head、tail、ln、chmod、chown、chgrp、umask

    文件目录 目录名 备注 bin 下面的命令所有人都可以运行 sbin 只有root才能运行,s代表super /mnt,/media,/misc 都是挂载目录,但一般只用mnt /opt 第三方软件安 ...

  4. PHPCMS V9完全开发介绍

    PHPCMS V9 文件目录结构: 根目录 | – api 接口文件目录 | – caches 缓存文件目录 | – configs 系统配置文件目录 | – caches_* 系统缓存目录 | – ...

  5. paip.最好的脚本语言node js 环境搭建连接mysql

    paip.最好的脚本语言node js 环境搭建连接mysql #====下载node...走十一个exe..容易的.. 1 #0----Hello world   .js 2 #---------模 ...

  6. Node.js的模块载入方式与机制

    Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始 ...

  7. SharePoint2010主题和样式揭秘

    转:http://www.cnblogs.com/Ryu666/archive/2011/07/28/2119652.html 好久好久没写技术博客了,差点以为技术已经离我远去.但鱼离不开水,我怎能把 ...

  8. Delphi XE7下 Intraweb 发布为ASP.NET应用程序

    一.XE7下Intraweb开发这里就不说了,重点是在开发Intraweb时与ISAPI不同之处要选择 IW library,编译成DLL文件. 二.网站的配置 1.这是站点的物理路径,c:\site ...

  9. 【IOS实例小计】UIImageView

    预备知识: UIImage 是一个专门存储图片数据的对象,默认兼容的图片格式是 PNG,可以通过文件.Quartz image对象或 image Data数据得到一个图片对象. UIImage相关功能 ...

随机推荐

  1. ACM HDU 1021 Fibonacci Again

    #include<iostream> using namespace std; int main() { int n; while(cin>>n) { if((n+1)%4== ...

  2. ACM hdu 1008 Elavator

    Elevator其实是一道水题,思路也很简单,但不知道怎么也不能AC,后来看了别人的再比较自己的以后找到错误. 在判断奇偶数之后的语句时,我用了if()  else if(),这是不能AC的原因,这种 ...

  3. HTML5 程序设计笔记(一)

    HTML5 概述 1.html5 发展史 1993年html首次以因特网草案形式发布. 20世纪90年代,html大幅发展,从2.0版,到3.2版和4.0版.最后到1999年的4.01版. 伴随htm ...

  4. 理解ThreadLocal背后的概念

    介绍 我之前在任何场合都没有使用过thread local,因此没有注意到它,直到最近用到它的时候. 前提信息 线程可以理解为一个单独的进程,它有自己的调用栈.在java中每一个线程都有一个调用栈或者 ...

  5. Python 统计代码行

    正在学习 Python, 做了个统计代码行的功能, 参考了网上很多前辈的帖子,添加了感觉还是比较实用的功能, 只是windows下测试了,而且代码文件编码形式是 utf-8的. 如果使用其它编码形式的 ...

  6. ServletContext与application的关系

    ServletContext 就是application 生命周期是从servletContext创建到服务器关闭 其实servletContext和application 是一样的,就相当于一个类创 ...

  7. OGNL学习-静态方法调用

    <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 1.小写 & ...

  8. PHP 如何安全的使用 MySQL ?

    大多数 PHP 程序员对 MySQL 肯定不陌生,至于各种 MySQL 函数的用法在开发手册和 w3school 这类网站上也有很多介绍.但是,你所用的写法真的安全吗?面对越来越猖獗的黑客攻击,SQL ...

  9. 减少 WAF 漏报的 8 种方法 !

    近十年来,WAF 已经逐渐发展成熟,被软件行业接受并成为无数企业保护应用的不二选择.很多大型企业甚至相继亲自设计或通过并购涉足其中,在这个硕大的市场里逐鹿竞争,同时也推动了应用层防火墙的技术演进. 与 ...

  10. 如何利用服务器下发的Cookie实现基于此Cookie的会话保持

    Cookie是一种在客户端保持HTTP状态信息的常用技术,基于Cookie的会话保持常常出现在很多AX的部署案例中,尤其是涉及电子交易的系统部署中.此类系统往往要求负载均衡设备按照服务器下发的Cook ...