1.下载安装phpcms

下载完后解压将install_packages上传到服务器并重命名为phpcms_test:

更改目录文件系统权限:

chmod -R 777 phpcms_test

配置nginx访问:

server {
root C:/Users/liudaoqiang/project_test/phpcms_test/;
index index.html index.php;
server_name dev.phpcms_test.com;
# set $yii_bootstrap "index.html";
set $yii_bootstrap "index.php";

charset utf-8;

location / {
index $yii_bootstrap;
try_files $uri $uri/ $yii_bootstrap?$args;
if (!-e $request_filename) {
rewrite (.*) /index.php/$1;
}
}

location ~ ^/(protected|framework|nbproject|themes/\w+/views) {
deny all;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}

location ~ .*\.(js|css)?$ {
expires 7d;
}

#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(.*)$;

#let yii catch the calls to unexising PHP files
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}

#fastcgi_next_upstream error timeout invalid_header http_500 http_503 http_404;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;

#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;

}

location ~ /\.ht {
deny all;
}
}

配置hosts文件:

127.0.0.1     dev.phpcms_test.com

启动php-fpm及nginx:

start nginx

nginx -s reload

访问http://dev.phpcms_test.com/install/install.php进入安装程序:

登录后台管理系统:

进入前台首页:

2.phpcms模板标签

pc标签:

{pc:content action="lists" catid="25" num="20" page="$_GET[page]" return="data"}

<ul>

{loop $data $n $r}

<li><a href="{$r[url]}">{$r[title]}</a></li>

{/loop}

</ul>

{/pc}

json工具标签:

{pc:json url="http://www.phpcms.cn/12.php" cache="86400"}

<ul>

{loop $data $key $val}

<li><a href="{$val[url]}">{$val['title']}</a></li>

{/loop}

</ul>

{/pc}

xml工具标签:

{pc:xml  url="http://www.phpcms.cn/12.php" cache="86400"}

<ul>

{loop $data $key $val}

<li><a href="{$val[url]}">{$val['title']}</a></li>

{/loop}

</ul>

{/pc}

get标签:

{pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}

<ul>

{loop $data $key $val}

{$val[username]}<br />

{/loop}

</ul>

{$pages}

{/pc}

例:评论模块获取评论列表并展示:

{pc:comment action="lists" commentid="$commentid"}

<ul>

{loop $data $key $val}

<li> {$val[url]}于{format::date($val[creat_at], 1)}发布,他支持{direction($v[direction])}<br>{$val[content]}</li>

{/loop}

</ul>

{/pc}

例:获取会员模块的收藏文章列表:

{pc:member action="favoritelist" userid="$userid" order="id DESC"  num="10"}

<ul class="title-list">

{loop $data $k $v}
                 <li>·<a href="{$v['url']}" target="_blank">{$v['title']}</a><span><em>{format::date($v['adddate'], 1)}</em> </span></li>
                {/loop}

</ur>

{/pc}

3.phpcms的二次开发

phpcms的目录结构:

phpcms的ur访问:

系统类库与函数库调用:

public static function load_sys_class($classname, $path = '', $initialize = 1) {
   return self::_load_class($classname, $path, $initialize);
 }
public static function load_sys_func($func) {
   return self::_load_func($func);
 }
例如:
$http = pc_base::load_sys_class('http'); //实例化http类
pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作
pc_base::load_sys_func('mail'); 调用mail函数包
入口文件:
<?php
 define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
 include PHPCMS_PATH.'/phpcms/base.php';
 pc_base::creat_app();
 ?>
命名规范:
类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php。
函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php。
类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php。
数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。
 
配置文件调用:
public static function load_config($file, $key = '', $default = '', $reload = false) {
                    static $configs = array();
                    if (!$reload && isset($configs[$file])) {
                       if (empty($key)) {
                         return $configs[$file];
                       } elseif (isset($configs[$file][$key])) {
                         return $configs[$file][$key];
                       } else {
                         return $default;
                       }
                    }
                   $path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';
                   if (file_exists($path)) {
                     $configs[$file] = include $path;
                   }
                   if (empty($key)) {
                     return $configs[$file];
                   } elseif (isset($configs[$file][$key])) {
                     return $configs[$file][$key];
                   } else {
                     return $default;
                   }
                 }
例如:
$upload_url = pc_base::load_config('system','upload_url');
开发技巧:
例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php"
 

PHPCMS的使用的更多相关文章

  1. phpcms二次开发中无法获取SESSION的值

    今天在在phpcms开发留言板用到验证码,提交数据,后台无法$_SESSION['code']无法获取验证码值,也无法打印var_dump($_SESSION)值,我们只需要在文件头部添加如下代码: ...

  2. 12月5日PHPCMS替换主页

    cms替换主页的步骤 1.先做好静态页面: 2.在D:\wamp\www\phpcms\install_package\phpcms\templates文件夹下建新的文件夹tianqiwangluo( ...

  3. 12月4日PHPCMS模板

    cms的样式有很多种,我们学习的是phpcms,这些cms都是大同小异,学会了一种就可以使用其它的cms. PHPCMS是一款网站管理软件.该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性 ...

  4. phpcms 添加memcache支持

    1,修改caches/configs/cache.php <?php return array ( 'file1' => array ( 'type' => 'file', 'deb ...

  5. phpcms调取数据库的两种机制

    在phpcms中,模板调取后台的数据有两种机制: 1.在控制器中定义数据,在模板中直接调用. 2.标签机制.即在模块的classes/tag.class中定义标签类,然后在模板中用标签调用 两种调用机 ...

  6. phpcms 表单提交发送邮件

    修改 phpcms\modules\formguide index.php 找到 foreach ($mails as $m) { sendmail($m, L('tips'), $this-> ...

  7. PHPCMS v9 安全防范教程

    一.目录权限设置很重要:可以有效防范黑客上传木马文件.如果通过 chmod 644 * -R 的话,php文件就没有权限访问了.如果通过chmod 755 * -R 的话,php文件的权限就高了. 所 ...

  8. phpcms 整合 discuz!

    第一步,进入discuz后台,点击UCenter菜单,然后点击应用管理,接着点击右侧的添加新应用按钮 然后填写应用相关信息: 1.应用类型选择“其他” 2.应该名称填写“phpcms” //此处可以自 ...

  9. phpcms V9 整合 Discuz! X2 教程

    整合原理: UCenter 作服务端:phpsso 与 Discuz! 分别作 UCenter 的客户端应用:phpsso 与 Discuz! 通过 UCenter 发生交互. phpcms 通过 p ...

  10. phpcms文章点击量统计方法

    phpcms用户广大,很好用,很傻瓜.设计思路也很好,对cms的常见功能都有设计,可以作为自己开发的参考. 最近看了下phpcms的源码关于文章点击量统计的这块,自己记录下. 默认文章点击量显示的位置 ...

随机推荐

  1. PHP操作Redis常用技巧总结

    一.Redis连接与认证 //连接参数:ip.端口.连接超时时间,连接成功返回true,否则返回false $ret = $redis->connect('127.0.0.1', 6379, 3 ...

  2. Python:Day21

    序列化 我们把对象(变量)从内存中变成可存储或可传输的过程称之为序列化 json模块

  3. Python:Day13

    id() 查看内存地址 和while循环一样,在for循环中也可以使用break和continue,两者效果一样. repr

  4. 001_Python2 的中文编码处理

    最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息. 很快,我就遇到了异常: UnicodeEncodeError: ...

  5. ActiveMQ安装配置及使用 转发 https://www.cnblogs.com/hushaojun/p/6016709.html

    ActiveMQ安装配置及使用 ActiveMQ介绍 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JM ...

  6. JSON.stringify()和JSON.parse()的作用

    (1)JSON.stringify() 从一个对象中解析出字符串 JSON.stringify({“a”:”1”,”b”:”2”}) 结果是:”{“a”:”1”,”b”:”2”}” (2)JSON.p ...

  7. AI 积分图

    积分图(Integral Image),可以用于快速计算矩形特征.积分图每个位置(x, y)的值,等于原图对应位置的左上角所有像素点的值之和.因为“积分”在离散情况下就是求和,所以这也是积分图的命名由 ...

  8. Java中的hashCode() 和 equals()的若干问题解答

    一.hashCode()的作用 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int ...

  9. C#调用迅雷下载,调用迅雷影音播放

    方法很多种,这里介绍一种,通过命令行参数调用. try { ]; Process.Start(thunderPath, "http://www.baidu.com/abc.exe" ...

  10. 实战Asp.Net Core:部署应用

    1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的.接下来,我们就来说说,如何部署 ...