zoukankan      html  css  js  c++  java
  • PHPCMS 使用图示和PHPCMS二次开发教程(转)

    PHPCMS V9 核心文件说明

    模块与控制器

    模块:

    phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块。即url访问中的m。

    访问content模块示例:http://www.yourname.com/index.php?m=content

    控制器:

    phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。类名成就是文件名+.php,例如一个名为abc的控制器,那么他的命名为abc.php即可。控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。如果您创建了一个abc.php在test模块下,那么我们在浏览器里面输入URL:http://www.yourname.com/index.php?m=test&c=abc

    二次开发技巧

    如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过“MY_*.php”的形式进行二次开发。

    例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php"

    <?php class MY_index extends index{ function __construct() {parent::__construct(); } ……your code }

    这样当您通过url访问index控制器的时候,系统会默认指向MY_index.php 并且原文件的方法将被继承,可以直接使用。

    系统配置文件

    文件路径:根目录/caches/configs

    • database.php 数据库配置文件
    • system.php 系统配置文件
    • route.php 路由配置文件

    调用方法

    如调用系统配置中的web_path:

    pc_base::load_config('system', web_path ');

    CMS入口文件:

    PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。

    入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行的。

    文件路径:根目录/index.php

    <?php define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); include PHPCMS_PATH.'/phpcms/base.php'; pc_base::creat_app(); ?>

    这段代码首先加载了 phpcms 框架的引导文件 base.php,然后它根据指定的配置文件建立了一个 Web 应用实例并运行。

    Phpcms v9后台内容管理

    Phpcms v9后台文章发布

    PHPCMS V9 结构设计

    根目录
    |–api  结构文件目录
    |–caches 缓存文件目录
       |– configs 系统配置文件目录
       |– caches_* 系统缓存目录
    |–phpcms  phpcms框架主目录
       |– languages 框架语言包目录
       |– libs 框架主类库、主函数库目录
       |– model 框架数据库模型目录
       |– modules 框架模块目录
       |– templates 框架系统模板目录
    |–phpsso_server  phpsso主目录
    |–statics  系统附件包
       | – css 系统css包
       | – images 系统图片包
       | – js 系统js包
    |–index.php  程序主入口

    PHPCMS框架入口文件:

    文件路径:根目录/phpcms/base.php 代码片段如下:

    <?php define('IN_PHPCMS', true); define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR); define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR); …… ?>

    该文件为框架入口文件,包含实例化系统/模块类方法,调用系统/模块方法,系统常用常量等。如:

    pc_base::load_model(‘*_model’) 加载数据库模型 pc_base::load_sys_class(‘classname’) 实例化系统类 pc_base::load_app_class(‘classname’,’admin’) 实例化模块类 pc_base::load_sys_func (‘funcfile’) 调用系统函数库

    全局函数文件:

    文件路径:根目录/phpcms/libs/functions/global.func.php 代码片段如下:

    <?php function new_addslashes($string){ if(!is_array($string)) returnaddslashes($string); foreach($string as $key => $val) $string[$key] = new_addslashes($val); return $string; } …… ?>

    该文件中的函数,为全系统基础函数,可以在系统中直接调用。

    二次开发技巧:

    如果需要增加自己的全局函数,可根据需要增加到/phpcms/libs/functions/global.func.php/extention.func.php中,不会影响升级

    数据模型基类:

    文件路径:根目录/phpcms/libs/classes/model.class.php 代码片段如下:

    <?php pc_base::load_sys_class('db_factory', '', 0); class model { //数据库配置 protected $db_config = ''; //数据库连接 protected $db = ''; //调用数据库的配置项 protected $db_setting = 'default'; //数据表名 protected $table_name = ''; //表前缀 public $db_tablepre = ''; …… ?>

    加载数据模型后,可以的数据库该类中方法进行数据库操作。

    表单调用类:

    文件路径:根目录/phpcms/libs/classes/form.class.php。 代码片段如下:

    <?php class form { //编辑器调用 public static function editor($textareaid = 'content', $toolbar = 'basic', $module = '', $catid = '', $color = '', $allowupload = 0,$allowbrowser = 1,$alowuploadexts = '',$height = 200,$disabled_page = 0) { } //图片上传调用 public static function images($name, $id = '', $value = '', $moudle='',$catid='', $size = 50, $class = '', $ext = '', $alowexts = '',$thumb_setting = array(),$watermark_setting = 0 ) { } …… ?>

    通过实例化该类可以,调用在程序中调用编辑器、表单上传、日期选择、栏目结构等表单。 实例化方法:pc_base::load_sys_class('form', '', 0);

    模板解析缓存类:

    文件路径:根目录/phpcms/libs/classes/template_cache.class.php 。 代码片段如下:

    <?php final class template_cache { public function template_compile($module, $template, $style = ‘default’)  { $tplfile = $_tpl = PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html'; …… ?>

    该类作用为解析模板,解析模板及更新模板缓存

    创建模块控制器类

    为test模块增加一个名为myest的控制器 文件路径:根目录/phpcms/modules/test/mytest.php。 代码片段如下:

    <?php  defined('IN_PHPCMS') or exit('No permission resources.');  classmytest {  function __construct() {  }  public function init() {  $var = 'hello world!';  echo $myvar;      }  public function mylist() {  $var = 'hello world!this is a example!';  echo $myvar;  }  } ?>

    常用操作列表(1)

    1.调用数据库模型

    $this->db = pc_base::load_model('test_model');

    其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法

    2.加载系统类

    $http = pc_base::load_sys_class('http'); //实例化http类 pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作3.加载系统函

    3.加载系统函数库

    pc_base::load_sys_func('mail'); //调用mail函数包

    4. 加载模块类

    $test = pc_base::load_sys_class(‘classname‘,’test’); //实例化test模块下 classname类

    5.加载模块函数库

    pc_base::load_sys_func(‘global‘,’test’); //调用test模块的global函数包

    常用操作列表(2)

    6.加载前台模板

    include template('test', 'mytest', 'default');

    7.加载后台模板

    include $this->admin_tpl('mytest_admin_list');

    8.权限控制

    后台控制控制器需要加载admin模块下的admin类,并继承该类

    <?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin','admin',0); class mytest_admin extends admin { //这个控制器需要登录后台才可以访问 } ?>

    PHPCMS V9 模板与标签

    • PC标签
    • 评论模块
    • 会员模块
    • 友情链接模块
    • 投票模块
    • 公告模块
    • 专题模块
    • 内容模块
    • 工具箱
    • json工具箱
    • xml工具箱
    • get标签
    • 碎片工具箱
  • 相关阅读:
    java.lang.NoSuchMethodError
    asm相关内容想下载(包括 jar 包)
    Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
    The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    交通测速方式
    卡口和电子警察的区别
    Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable
    在window上安装mysql
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/5617236.html
Copyright © 2011-2022 走看看