PHPCMS V9 二次开发实例–留言本

合集下载

PHPCMSV9二次开发教程

PHPCMSV9二次开发教程

PHPCMSV9二次开发教程一、环境搭建在开始二次开发之前,我们需要先搭建PHPCMSV9的开发环境。

首先需要确保服务器满足以下要求:1.PHP版本必须大于等于5.3,推荐使用PHP7以上的版本;2.MySQL数据库版本必须大于等于5.0;3. 服务器需要支持.htaccess文件;4.需要安装PDO扩展、GD库等必要的PHP扩展。

二、模块开发1. 创建一个新模块:在PHPCMS的根目录下,找到“phpsso\modules”目录,复制一份现有的模块文件夹作为新模块的基础文件夹。

修改新文件夹的名称,并进入该文件夹修改其中的文件名和文件内容,包括模板文件、数据表定义文件等。

2. 注册新模块:打开“phpsso\modules\example\config.inc.php”文件,将新模块的相关信息注册到该文件中,包括模块的名称、文件夹名称、访问地址等。

3.开发模块功能:在新模块的文件夹中,开发相应的功能模块,包括控制器、模型、视图等。

可以使用PHPCMS提供的API来调用系统的功能和数据。

4. 配置模块权限:在“phpsso\modules\example\config.inc.php”文件中,为新模块配置相应的权限,以控制用户对该模块的操作权限。

5.安装新模块:在后台管理界面中,找到“系统设置->模块管理”菜单,点击“添加新模块”按钮,输入新模块的名称和文件夹名称,点击“保存”按钮即可安装新模块。

三、插件开发除了模块开发,PHPCMSV9还支持插件开发,插件是一种用于扩展系统功能的方式,可以独立于模块之外进行开发和安装。

以下是一个简单的插件开发教程:1. 创建一个新插件:在PHPCMS的根目录下,找到“phpsso\plugins”目录,复制一份现有的插件文件夹作为新插件的基础文件夹。

修改新文件夹的名称,并进入该文件夹修改其中的文件名和文件内容,包括插件入口文件、配置文件等。

2. 注册新插件:打开“phpsso\plugins\example\config.inc.php”文件,将新插件的相关信息注册到该文件中,包括插件的名称、文件夹名称、入口文件等。

PHPCMS V9 二次开发实例–留言本

PHPCMS V9 二次开发实例–留言本

下面我们将通讲解一个留言本实例,来帮助你更好的掌握PHPCMS V9的二次开发流程。

并在开发过程中体验PHPCMS V9。

在此我们只做基本功能的演示,更多的功能开发,期待你的继续挖掘。

4.1需求分析本实例用PHPCMS V9基础功能开发设计一个留言本管理系统,要求如下:后台:可管理、回复、删除留言信息可控制留言是否前台显示可对留言系统配置设置选项,例如是否起用验证码,默认是否显示、是否允许游客留言等配置。

模块配置信息可多站点存储。

可批量管理所有未回复留言后台管理演示效果如下图所示:前台:根据后台模块配置选项,控制是否显示在线留言填写表单。

在线提交留言,根据后台配置选项,是否显示验证码,是否需管理员审核显示。

留言列表页,需根据后台配置每页条数进行分页。

前台演示效果如下图所示:4.2数据库和数据表的设计这里使用Mysql数据库来存储信息。

首先构建一个留言信息表 guestbook ,它有12个字段,即消息编号(gid),站点ID(siteid),标题(title),内容(content),回复内容(reply),回复状态(reply_status),会员ID(uid),会员姓名(username),审核状态(passed) ,留言时间(inputtime),回复人(replyer),回复时间(replytime)。

下面是创建该表的SQL代码:CREATE TABLE `phpcms_guestbook` (`gid` smallint(5) NOT NULL auto_increment,`title` char(80) NOT NULL,`content` text NOT NULL,`reply` text NOT NULL,`userid` mediumint(8) unsigned NOT NULL default '0',`username` char(20) NOT NULL,`gender` tinyint(1) unsigned NOT NULL default '0',`head` tinyint(3) unsigned NOT NULL default '0',`email` char(40) NOT NULL,`qq` char(15) NOT NULL,`homepage` char(25) NOT NULL,`hidden` tinyint(1) unsigned NOT NULL default '0',`passed` tinyint(1) unsigned NOT NULL default '0',`ip` char(15) NOT NULL,`addtime` int(10) unsigned NOT NULL default '0',`replyer` char(20) NOT NULL,`replytime` int(10) unsigned NOT NULL default '0',PRIMARY KEY (`gid`),KEY `hidden` (`hidden`,`gid`));4.3创建模块目录PHPCMS v9框架中的模块,位于phpcms/modules目录中每一个目录称之为一个模块,如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

PHPCMS开发实例_PHPCMS二次开发_模板

PHPCMS开发实例_PHPCMS二次开发_模板

PHPCMS开发实例_PHPCMS二次开发_模板PHPCMS是一款基于PHP语言开发的CMS系统(Content Management System),它提供了丰富的功能和灵活的扩展性,非常适合用于开发各类网站。

在开发实际项目时,我们可能需要进行PHPCMS的二次开发,对其模板进行定制。

在PHPCMS二次开发中,模板是一个非常重要的部分,它决定了网站的外观和交互效果。

下面我将简要介绍一些PHPCMS模板的开发技巧和实例。

首先,PHPCMS的模板使用的是Smarty模板引擎,因此我们需要熟悉Smarty的用法。

Smarty是一个功能强大且易于使用的模板引擎,它将PHP代码与HTML模板进行分离,提高了代码的可读性和可维护性。

另外,在PHPCMS的模板开发中,可以使用模板继承来提高代码的复用性。

通过定义一个基础模板和多个子模板,我们可以在子模板中重写和扩展基础模板的内容,从而实现不同页面的定制化。

下面我将举一个实际的PHPCMS模板开发实例来说明。

假设我们要开发一个新闻资讯网站,页面包括首页、新闻列表页和新闻详情页。

首先,我们可以创建一个基础模板base.html,定义网站的整体布局和公共部分,例如页眉、页脚等。

然后,我们可以创建子模板index.html,继承基础模板base.html,并在其中定义首页的独有内容,如轮播图、推荐文章等。

PHPCMS 使用指南及二次开发向导--- 内容发布与管理篇.ppt

PHPCMS 使用指南及二次开发向导--- 内容发布与管理篇.ppt
PHPCMS 使用指南及二次开发向导 --- 内容发布与管理篇
2019-11-27
感谢你的阅读
1
PHPCMS网络培训课程 --- 内容发布与管理篇
2
• 内容发布篇
1. 内容添加与修改 2. 内容的推送与批量移动 3. 内容相关更新
2019-11-27
感谢你的阅读
PHPCMS网络培训课程 --- 内容发布与管理篇
2019-11-27
感谢你的阅读
PHPCMS网络培训课程 --- 内容发布与管理篇
9
批量移动以后信息将进入 社会 栏目频道下,如下图所示:
说明: 批量移动是从一栏目移动至另一栏目,原栏目数据不再保留!而推送是标题和链接地址复制一份 至目标栏目,原栏目并没有发生改变!
2019-11-27
感谢你的阅读
PHPCMS网络培训课程 --- 内容发布与管理篇
10
三、相关更新操作
2019-11-27
感谢你的阅读
Thank you!
2019-11-27
感谢你的阅读
11
推送前首页效果
2019-11-27
感谢你的阅读
推送后首页头条效果
PHPCMS网络培训课程 --- 内容发布与管理篇
7
推送到推荐位,如下图所示:
勾选要推荐到的推荐位
2019-11-27
感谢你的阅读
推荐位管理
PHPCMS网络培训课程 --- 内容发布与管理篇
8
批量移动 实例:军事新闻 里二条信息批量移动至 社会 栏目,操作步骤,如下图所示:
3
一、发布与修改内容 下面我们以 一个实例来讲解V9内容的发布与管理,如下图所示: 实例:向 军事新闻 栏目添加内容。栏目模型默认为文章模型,该模型的字段,大家可以查看模型相关章节。

phpcmsv9 例子

phpcmsv9 例子

phpcmsv9 例子PHPcmsv9是一款流行的CMS(Content Management System)系统,它为用户提供了一个可定制、易于使用的平台,用于创建和管理网站的内容。

在本文中,我们将一步一步地回答有关PHPcmsv9的问题,并提供一些例子来说明其工作原理和功能。

一、什么是PHPcmsv9?PHPcmsv9是基于PHP开发的一款开源CMS系统。

它采用了模块化和面向对象的设计思想,具有高度灵活性和可扩展性。

PHPcmsv9提供了丰富的功能,包括内容管理、用户管理、模板管理、插件扩展等,使用户能够轻松创建和管理网站内容。

二、安装PHPcmsv9安装PHPcmsv9非常简单。

首先,下载最新版本的PHPcmsv9并解压缩到您的WEB服务器上的目录。

接下来,创建一个MySQL数据库并导入安装包中的SQL文件。

然后,根据提示,填写数据库配置信息和管理员账户信息。

最后,通过浏览器访问您的网站,即可进入安装向导并完成安装过程。

三、创建内容模型在PHPcmsv9中,内容模型是网站内容的组织方式。

您可以创建不同的内容模型来适应不同的业务需求。

比如,您可以创建一个"新闻"内容模型,其中包含标题、摘要、作者、发布时间等字段。

创建内容模型非常简单,只需在后台管理界面中点击"内容模型"菜单,然后点击"添加模型"按钮,并填写相应的信息即可。

四、发布内容在PHPcmsv9中,发布内容非常方便。

首先,在后台管理界面中点击"内容管理"菜单,然后选择要发布内容的模型。

接下来,点击"添加内容"按钮,并填写相应的字段值。

您可以通过富文本编辑器编辑内容,并上传图片、附件等。

最后,点击"保存"按钮即可将内容发布到网站上。

五、管理用户PHPcmsv9提供了强大的用户管理功能。

您可以在后台管理界面中创建、编辑和删除用户账户。

PHPCMS V9模型二次开发[高级]_2

PHPCMS V9模型二次开发[高级]_2

PHPCMS v9模型二次开发[高级]概述:PHPCMS v9模型二次开发主要分为底层模型开发,即代码级的模型开发;其次,是可视化的模型开发,即通过登录系统后台添加模型。

第一种模型开发对技术要求很高,但是,能实现很多PHPCMS v9没有实现或者不能实现的功能。

第二种模型开发完全隐藏了技术的实现,操作简单,使用方便,在没有特殊功能的时候,这个是首先。

我们今天先讲第二种,可视化的模型开发。

假如,现在我们有一个产品展示功能。

要显示的信息如下:*)产品名称*)产品价格*)出厂时间*)规格参数*)配件列表*)产品图片然后,PHPCMS v9提供的文章模型、图片模型、下载模型根本不能满足我们的这个需求。

此时,我们就会涉及到添加模型的操作。

1、登录系统后台,进入导航“内容”----》"管理模型"然后,在页面的右边找到“添加模型”,点击进入添加模型:模型名称必须填写,当我们在添加栏目的时候就可以选择以这个名称命名的模型了。

模型表键名也必须填写,这个将会在数据库里面有二张表对应,假设此时的表前缀是:v9_则对应的两张表名为:v9_products、v9_products_data2、点击确定创建好自定义的“产品模型”之后,点击“字段管理”点击“字段管理”之后,在弹出的页面里面进行字段的禁用、删除、添加等操作。

比如:添加产品名称、产品价格、产品规格、出厂时间等字段。

删除:阅读收费、允许评论、分页方式、相关文章等字段。

禁用:关键词、推荐位等字段。

删除字段与禁用字段都很方便快捷,现在来谈谈添加字段。

在点击“字段管理”进入页面后,左上角会有一个“添加字段”的功能。

点击“添加字段”进入页面。

如图:我们以添加一个是否显示产品的功能字段,那么在字段类型那里可以选择“选项”;由于,我们会经常使用这个字段进行查询,所以,我们在“作为主表字段”设置为是;字段名设置为isshows,这个地方的字段名对应表中的v9_products表中的字段,添加字段完成之后,可以在这个表中看得出来。

phpcmsv9二次开发手册

phpcmsv9二次开发手册

PHPCMS V9 二次开发文档文件目录结构根目录| - api接口文件目录| - caches缓存文件目录| -configs系统配置文件目录| - caches_*系统缓存目录| - phpcms phpcms 框架主目录| - languages 框架语言包目录| - libs 框架主类库、主函数库目录| - model 框架数据库模型目录| - modules 框架模块目录| - templates 框架系统模板目录| - phpsso_server phpsso 主目录| - statics 系统附件包| -css系统css包| - images 系统图片包| - js 系统js 包| - uploadfile 网站附件目录| - admin.php 后台管理入口| - index.php 程序主入口| - crossdomain.xml FLASH 跨域传输文件| - robots.txt 搜索引擎蜘蛛限制配置文件| - favicon.ico 系统icon 图标PC标签使用说明在PHPCMS V9中我们正式开始需要PC标签做为数据的获取的方式。

PC标签是以下面的方式进行声明{pc:content action="lists" cache="3600" num ="20" page="$page"}{/pc}PC标签必须以{pc}开头,并以{/pc}结尾的代码片段。

当然不以{/pc}结尾并不会引起程序致命性的错误,导致程序无法继续运行。

以下为两种已知可能会出现的问题:1.当网页中出现两个PC标签时,可能会使得没有闭合的PC标签之后的PC标签数据和其混乱。

2.在后台可视化编辑时,可能出现网页结构错乱的问题。

PC标签分析:PC标签中{pc:}冒号之后跟随的为模块名。

如上面的例子中调用的是内容模型的PC标签。

actio n="list"这个形式所代表的是参数。

phpcmsv9不用插件打造留言板,而是用表单向导模块和dialog

phpcmsv9不用插件打造留言板,而是用表单向导模块和dialog

不用插件打造意见反馈(留言板),先给个图:表单向导+dialog一、表单向导1.登陆Phpcmsv9后台/index.php?m=admin2.模块》模块管理》表单向导》添加表单向导1)名称::意见反馈(请输入表单向导名称) 2)表名:message(请填写表名)3)简介:(这个可以不填)4)下三个可以不用改5)允许游客提交表单:要选是7)模板选择:这个你一定要提前做好模板,比如我的是show_box.html,这里要注意模板命名要以show_开头8)js调用使用的模板:这里不做介绍,可以不理它了。

3,下面,确定。

如果图功能如下:1)信息列表:用来查看留言信息,现在不用2)添加字段:主要用这个,我们要添加三个字段分别是留言标题(title),联系邮箱(email),留言内容(content)添加:字段---字段类型:----字段类型----字段别名----数据校验正则(这个的话看你自己的需求来用)其他的可以不写最后》提交三、模板找到phpcms\templates\default\formguide新建模板show_box.html<style>#postsite #Article .content{padding:40px;}.input-text{width:300px;padding:8px;margin:0; outline:none;border:1px solid #aaa;}.input-text:hover,.input-text:focus,.content #description:hover,.content#description:focus{border-color:#34a950}.content th{ font-size:14px;color:#444; text-align:left;height:50px;}.content th font{ color:#34a950}.content th.text{ text-indent:1em;}.content #description,.content#content{width:300px;height:80px;outline:none;padding:8px;line-height:1.6em;margin-top:5px;} .content .btn input{width:80px;height:36px;text-align:center;background:#34a950;color:#fff;border:0;margin-right:20px; cursor:pointer;}.content .btn input:hover{background:#168D33}.content .btn{margin-left:107px;overflow:hidden;margin-top:20px;}#showmessagebox{ text-align:center;margin-top:100px;}</style><script language="javascript" type="text/javascript" src="{JS_PATH}dialog.js"></script><div class="main" id="postsite"><div id="Article"><div class="content"><form method="post"action="?m=formguide&c=index&a=show&formid={$formid}&siteid=<?php echo$this->siteid;?>" name="myform" id="myform"><table class="table_form" width="100%" cellspacing="0"><tbody>{loop $forminfos_data $field $info}{if $info['formtype']=='omnipotent'}{loop $forminfos_data $_fm $_fm_value}{if $_fm_value['iscomnipotent']}{php $info['form'] =str_replace('{'.$_fm.'}',$_fm_value['form'],$info['form']);}{/if}{/loop}{/if}<tr><th width="25%" class="text">{$info['name']}{if $info['star']}<font>*</font>{/if}</th><td width="75%">{$info['form']} {$info['tips']}</td></tr>{/loop}</tbody></table><div class="btn"><input type="submit" name="dosubmit" id="dosubmit" value=" 提交">&nbsp;<input type="reset" value=" 重写"></div></form></div></div></div>再建两个提示的新模板Ok.html,<div class="showmessagebox" style="text-align:center;margin-top:100px;color:#444;"><h2>您已经提交,再次感谢谢您的支持!</h2><br/><a class="back" target="_blank" href="{APP_PATH}"style="margin-top:20px;font-size:12px;color:#666;">返回首页</a></div>'Success.html<div class="showmessagebox" style="text-align:center;margin-top:100px;color:#444;"><h2>提交成功,谢谢您的支持!</h2><br/><a class="back" target="_blank" href="{APP_PATH}"style="margin-top:20px;font-size:12px;color:#666;">返回首页</a></div>找到phpcms\modules\formguide下面的index.php找出提示showmessage()46行:改为$_GET['action'] ? exit : showmessage(L('form_expired'),APP_PATH.'index.php?m=formguide&c=index&a=ok');79行:改为showmessage(L('thanks'),APP_PA TH.'index.php?m=formguide&c=index&a=success');97行:改为$_GET['action'] ? exit : showmessage(L('had_participate'),APP_PATH.'index.php?m=formguide&c=index&a=ok');116行:后页面加上public function ok() {include template('formguide', 'ok');}public function success() {include template('formguide', 'success');}这就是对应的两个提示Dialog四.在首页(调用页)加上<head>与</head>之间Js代码<script language="javascript" type="text/javascript"src="{JS_PATH}dialog.js"></script>Css代码<link href="{CSS_PATH}dialog.css" rel="stylesheet" type="text/css" />(这是phpcmsv9自带的,不建议修改)<link href="{CSS_PATH}/mydialog.css" rel="stylesheet" type="text/css" />(自定义,用来重写它的样式,要放在dialog.css下面)要调用的地方<ahref="javascript:art.dialog({id:'message',iframe:'?m=formguide&c=index&a=show&formi d=16&siteid=1', title:'意见反馈', width:'540', height:'360',drag: false,fixed: true,opacity: .5, lock:true});void(0);"><span>意见反馈</span></a>如要了解更多dialog.js请打1872行有默认配置,参考来填定参数。

PHPCMS V9会员注册与二次开发

PHPCMS V9会员注册与二次开发

[PHPCMS V9二次开发]自定义字段模型-文本组∙浏览: 365∙更新: 2012-03-08 11:44举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

PHPCMS V9,我们在做作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

PHPCMS V9,我们在做类似于酒店房型等类型的时候,需要用到文本组字段模型,但PHPCMS并未提供该模型。

如下图所示效果:展示效果如下:步骤/方法1.打开phpcms\modules\content\fields目录,复制文件夹downfiles,并改名为textgroups。

2.打开phpcms\modules\content\fields\fields.inc.php文件,增加字段类型:'textgroups'=>'多文件上传',3.打开phpcms\modules\content\fields\textgroups目录(第一步复制的文件夹),修改以下文件:4.form.inc.phpfunction textgroups($field, $value, $fieldinfo) {extract(string2array($fieldinfo['setting']));$list_str = '';if($value) {$value = string2array(html_entity_decode($value,ENT_QUOTES));if(is_array($value)) {foreach($value as $_k=>$_v) {$list_str .= "<div id='textsgroups{$_k}'> <input type='text'name='{$field}_fx[]' value='{$_v[fx]}' style='width:100px;'class='input-text'> <input type='text' name='{$field}_fj[]'value='{$_v[fj]}' style='width:100px;' class='input-text'><input type='text' name='{$field}_cx[]' value='{$_v[cx]}'style='width:100px;' class='input-text'> <input type='text'name='{$field}_kd[]' value='{$_v[kd]}' style='width:100px;'class='input-text'> <input type='text' name='{$field}_vip[]'value='{$_v[vip]}' style='width:100px;' class='input-text'> <a href=\"javascript:remove_div('textsgroups{$_k}')\">".L('remove_ out')."</a></div>";}}}$string ='<script type=text/javascript>function add_textsfile(returnid) {var ids = parseInt(Math.random() * 10000);var str = "<li id=\'textsgroups"+ids+"\'> <input type=\'text\' name=\'"+returnid+"_fx[]\' value=\'\' style=\'width:100px;\'class=\'input-text\'> <input type=\'text\'name=\'"+returnid+"_fj[]\' value=\'\' style=\'width:100px;\'class=\'input-text\'> <input type=\'text\'name=\'"+returnid+"_cx[]\' value=\'\' style=\'width:100px;\'class=\'input-text\'> <input type=\'text\'name=\'"+returnid+"_kd[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <input type=\'text\'name=\'"+returnid+"_vip[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <ahref=\"javascript:remove_div(\'textsgroups"+ids+"\')\">Remove</a> </li>";$(\'#\'+returnid).append(str);}</script>';$string .= '<input name="info['.$field.']" type="hidden"value="1"><fieldset class="blue pad-10"><legend>'.L('mm_fxlist').'</legend><div id="tt"><input type="text" value="'.L('mm_fx').'" readonlystyle="width:100px;border:0;" class="input-text"><input type="text" value="'.L('mm_fj').'" readonlystyle="width:100px;border:0;" class="input-text"><input type="text" value="'.L('mm_cx').'" readonlystyle="width:100px;border:0;" class="input-text"><input type="text" value="'.L('mm_kd').'" readonlystyle="width:100px;border:0;" class="input-text"><input type="text" value="'.L('mm_lyj').'" readonlystyle="width:100px;border:0;" class="input-text"></div>';$string .= $list_str;$string .= '<ul id="'.$field.'" class="picList"></ul></fieldset><div class="bk10"></div>';$string .= $str."<input type=\"button\" class=\"button\"value=\"".L('mm_addfx')."\"onclick=\"add_textsfile('{$field}')\">";return $string;}5.修改input.inc.phpfunction textgroups($field, $value) {$hotel = $_POST[$field.'_fx'];$hotel_fj = $_POST[$field.'_fj'];$hotel_cx = $_POST[$field.'_cx'];$hotel_kd = $_POST[$field.'_kd'];$hotel_vip = $_POST[$field.'_vip'];$array = $temp = array();if(!empty($hotel)) {foreach($hotel as $key=>$hote) {$temp['fx'] = $hote;$temp['fj'] = $hotel_fj[$key];$temp['cx'] = $hotel_cx[$key];$temp['kd'] = $hotel_kd[$key];$temp['vip'] = $hotel_vip[$key];$array[$key] = $temp;}}$array = array2string($array);return $array;}6.修改的output.inc.phpfunction textgroups($field, $value) {return string2array($value);}7.更新后台缓存。

phpcmsv9二次开发模板制作常用代码

phpcmsv9二次开发模板制作常用代码

phpcmsv9二次开发模板制作常用代码phpcms v9二次开发模板制作常用代码001:调用最新文章,带所在版块{pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url as curl,a.id FROM `v9_news` a, `v9_category` b WHERE a.catid =b.catid ORDER BY `a`.`id` DESC "num="15" cache="300"}{loop $data $r}<h6><font class="cate"><a href="{$r[curl]}">[{$r[catname]}]</a></font><aclass="gray" href="{$r[turl]}" title="{$r[title]}"> {str_cut($r['title'],26)}</a></h6>{/loop}{/pc}====<font class="cate"><a href="{$r[curl]}">[{$r[catname]}]</a></font>所在版块的调用1.截取调用标题长度{str_cut($v[title],36,'')}{str_cut($v['title'],34)} 超出用 ... 代替{str_cut($v['title'],34, '')}超出用代替{str_cut($v['title'],34,'')}超出不用任何字符代替2.格式化时间调用格式化时间 2011-05-06 11:22:33{date('Y-m-d H:i:s',$r[inputtime])}<span class="rt">{date('m-d',$v['inputtime'])}</span>3.多栏目调用&多推荐位调用调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;从第三条开始,连续调用7篇文章。

基于PHPCMS V9的留言板系统开发

基于PHPCMS V9的留言板系统开发

二、 系统的设计与开发
1、 需求分析
留言板系统的开发主要包含两部分, 一部分是后台的设计
· 56 · 办公自动化杂志
ቤተ መጻሕፍቲ ባይዱ
2015 年 8 月 1 日 Mobile Office Network · Security 总第 308 期
time; 留言审核的状态, 可以命名为 passed; 留言的回复人 、 回复 时间和回复内容, 可以分别命名为 replyer、 replytime、 reply; 记录 留言是否被回复标识, 可以命名为 reply_status; 字段的长度及 其类型可以根据网站的大小, 留言板使用人数来确定。
2015 年 8 月 1 日 总第 308 期 Mobile Office Network · Security
基于 PHPCMS V9 的留言板系统开发
苏红丽
(辽宁金融职业学院 信息技术系
摘 要 关键词
沈阳
110122)
PHPCMS V9 是比较流行的 PHP 开发框架, 已经应用到政府、 教育、 商业各个领域。千篇一律的网站并不能满足个性化的 Phpcms 二次开发 留言板 文献标识码 B 文章编号 150629-7043
3、 创建模块目录
创建好数据表后进行模块的创建, 每一个独立的内容都可 以称之一个模块, 像在线支付、 邮件订阅、 短消息等。而这些模 块在 PHPCMS v9 框架中的模块中, 存储在 phpcms/modules 目录
2、 数据库设计
留言板信息的存储不是放在文件中,而是放在数据库中 的, PHPCMS V9 默认状态下是用 Mysql 数据库来存储信息。本 模块只是存储留言信息, 所以就将信息存在 phpcms 数据库中, 不再进行数据库的建立。留言信息的表名称为 GBook, 留言信 息表要包含与留言相关的信息,包括与网站配置相关的站点 ID, 可以命名为 siteid; 记录留言信息的消息编号, 可以命名为 gid; 留言信息的标题, 可以命名为 title; 记录信息的具体内容, 可以命名为 content; 留言的会员 id, 可以命名为 uid; 留言的会 员姓名, 可以命名为 username; 留言的时间, 可以命名为 input-

PHPCMS_v9 使用指南及二次开发向导

PHPCMS_v9 使用指南及二次开发向导
模块与控制器
模块: phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块。即url访问 中的m。
访问content模块示例:/index.php?m=content 控制器: phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。 类名成就是文件名+.php,例如一个名为abc的控制器,那么他的命名为abc.php即可。 控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。 如果您创建了一个abc.php在test模块下,那么我们在浏览器里面输入URL: /index.php?m=test&c=abc
• PHPCMS V9 介绍 • PHPCMS V9 后台功能 • PHPCMS V9 结构设计 • PHPCMS V9 核心文件说明 • PHPCMS V9 二次开发 • PHPCMS V9 模板与标签
PHPCMS 使用指南及二次开发向导
根目录 | – api 结构文件目录 | – caches 缓存文件目录 | | – configs 系统配置文件目录 – caches_* 系统缓存目录
PHPCMS 使用指南及二次开发向导
• PHPCMS V9 介绍 • PHPCMS V9 后台功能 • PHPCMS V9 结构设计 • PHPCMS V9 核心文件说明 • PHPCMS V9 二次开发 • PHPCMS V9 模板与标签
PHPCMS 使用指南及二次开发向导
• PHPCMS V9 介绍 • PHPCMS V9 后台功能 • PHPCMS V9 结构设计 • PHPCMS V9 核心文件说明 • PHPCMS V9 二次开发 • PHPCMS V9 模板与标签

PHPCMS V9二次开发之首页、频道、列表等调用浏览量和评论

PHPCMS V9二次开发之首页、频道、列表等调用浏览量和评论

PHPCMS V9二次开发之首页、频道、列表等调用浏览量和评论。

Phpcms V9 内容页加上此代码可统计到点击量今日:<spanid="todaydowns"></span>,本周:<span id="weekdowns"></span>,本月:<span id="monthdowns"></span>内容页统计代码:<script language="JavaScript"src="{APP_PATH}api.php?op=count&id={$id}&modelid={$modelid}"></script >其它:一、首页获取数据方法{pc:content action=”lists” catid=”$r[catid]” num=”5″ order=”id DESC” return=”info”}{php $categorys =getcache(‘category_content_’.$siteid,’commons’);}<ul>{loop $info $v}{php $category = $categorys[$v[catid]];}{php $modelid = $category['modelid'];}{php $db = pc_base::load_model(‘hits_model’); $_r =$db->get_one(array(‘hitsid’=>’c-’.$modelid.’-’.$v[id])); $views = $_r[views]; }{php $comment_tag = pc_base::load_app_class(“comment_tag”, “comment”); $comment_total =$comment_tag->count(array(‘commentid’=>’content_’.$v[catid].’-’.$v[id].’-’.$modelid));}<li>·<a href=”{$v['url']}” target=”_blank”title=”{$v['title']}”{title_style($v[style])}>{str_cut($v['title'], 40)}</a> 点击:{$views} 评论:{if$comment_total}{$comment_total}{else}0{/if}</li>{/loop}</ul>{/pc}二、频道页获取数据方法{pc:content action=”lists” catid=”$v[catid]” num=”5″ order=”id DESC”}{loop $data $v}{php $db = pc_base::load_model(‘hits_model’); $_r =$db->get_one(array(‘hitsid’=>’c-’.$modelid.’-’.$v[id])); $views = $_r[views]; }{php $comment_tag = pc_base::load_app_class(“comment_tag”, “comment”); $comment_total =$comment_tag->count(array(‘commentid’=>’content_’.$v[catid].’-’.$v[id].’-’.$modelid));}<li><a href=”{$v[url]}”target=”_blank”{title_style($v[style])}>{$v[title]}</a>点击: {$views}评论数:{if $comment_total}{$comment_total}{else}0{/if}</li>{/loop}{/pc}三、列表取得数据方法{pc:content action=”lists” catid=”$catid” num=”25″ order=”id DESC” page=”$page” moreinfo=”1″}{loop $data $r}{php $db = pc_base::load_model(‘hits_model’); $_r =$db->get_one(array(‘hitsid’=>’c-’.$modelid.’-’.$r[id])); $views = $_r[views]; }{php $comment_tag = pc_base::load_app_class(“comment_tag”, “comment”); $comment_total =$comment_tag->count(array(‘commentid’=>’content_’.$catid.’-’.$r [id].’-’.$modelid));}<li><span class=”rt”>{date(‘Y-m-dH:i:s’,$r[inputtime])}</span>·<a href=”{$r[url]}”target=”_blank”{title_style($r[style])}>{$r[title]}</a> 点击:{$views} 评论数:{if$comment_total}{$comment_total}{else}0{/if}</li>{/loop}{$pages}{/pc}四、推荐位获取数据方法{pc:content action=”position” posid=”2″ order=”listorder DESC” num=”4″}{php $categorys =getcache(‘category_content_’.$siteid,’commons’);}{loop $data $r}{php $category = $categorys[$r[catid]];}{php $modelid = $category['modelid'];}{php $db = pc_base::load_model(‘hits_model’); $_r =$db->get_one(array(‘hitsid’=>’c-’.$modelid.’-’.$r[id])); $views = $_r[views]; }{php $comment_tag = pc_base::load_app_cla ss(“comment_tag”, “comment”); $comment_total =$comment_tag->count(array(‘commentid’=>’content_’.$r[catid].’-’.$r[id].’-’.$modelid));}<h4><a href=”{$r[url]}”title=”{$r[title]}”>{str_cut($r[title],36,”)}</a> 点击:{$views} 评论:{if $comment_total}{$comment_total}{else}0{/if}</h4><p>{if $n==1}<img src=”{thumb($r[thumb],90,60)}” width=”90″ height=”60″/>{/if}{str_cut($r[description],112)}</p><div><hr /></div>{/loop}{/pc}本文由 收集整理。

phpcms v9二次开发及使用中各类问题结集合解决方案

phpcms v9二次开发及使用中各类问题结集合解决方案

phpcms v9二次开发及使用中各类问题结集合解决方案安装使用1、栏目所属模型的修改、合并、删除?修改栏目所属模型前,先清空该栏目的内容。

合并?呵呵,自己动手批量转移内容不就得了,注意:必须是相同模型的栏目才可以转移。

删除:后台-内容管理-栏目管理,重新统计栏目数据更新栏目缓存2、后台登陆不上,提示用户名不能为空试试清除cache文件夹下的error_log.php3、首页登录直接跳到会员中心,改成其它在根目录下找到如下位置phpcms\modules\member\index.php,修改569行代码为1.$forward = isset($_POST['forward']) && !empty($_POST['forward']) ?urldecode($_POST['forward']) : 'index.php';4、后台锁屏模版样式phpcms\modules\admin\templates\index.tpl.php 36行左右5、整合Ucenter6、网站域名迁移7、首页登录框的实现8、更换了网站地址,会员无法登陆换地址,需要修改 caches\configs\system.php 文件\phpsso_server\caches\configs\system.php 文件也要改9、数据库用户名和密码修改,数据库连接文件在哪里\caches\configs\database.php10、不想开户缩略图功能不要选择自动截取第一张做为缩略图就行了.在模型字段,缩略图中设置11、发布了栏目,首页的导航栏不显示12、火车头采集时,加入[page]分页符时,不分页问题火车头一般都有接口,所有参数都要在接口上指定才行。

比如你在后台内容编辑器中设置了默认为手动分页。

那么,并不意味着火车头在发布时,也会帮你手动分页的。

PHPCMS二次开发教程——模块设计(实例附数据库设计)

PHPCMS二次开发教程——模块设计(实例附数据库设计)

PHPCMS二次开发流程(实例)如下图是官方文档给出的phpcms二次开发的流程:本文以创建一个答题模块为实例,进行逐一讲解。

创建数据库和数据表:本模块是在phpcms v9框架上开发的,但不使用phpcms数据库,例如这里我新建一个数据库,名为:yixin,所有表默认前缀yx_。

新建表:yx_user表yx_user栏目名称字段名类型可否为空说明用户编号userid int N 主键、AI 用户名username varchar(20) N用户密码password varchar(32) N用户昵称nickname varchar(20) Ndatetime N注册时间regtime注册ip regip varchar(15) N上次登录时间lasttime datetime N 默认为:0000-00-0000:00:00上次登录ip lastip varchar(15) N 默认:0 登录次数loginnum smallint N 默认:1 用户邮箱email varchar(32) N用户组类型groupid tinyint N用户状态status tinyint N 默认:1 用户答对题数rightnum smallint N 默认:0 用户真实姓名realname varchar(50) Y 默认:0CREATE TABLE`yx_user`(`userid`INT(11)NOT NULL AUTO_INCREMENT,`username`VARCHAR(20)NOT NULL,`password`VARCHAR(32)NOT NULL,`nickname`VARCHAR(20)NOT NULL,`regtime`DATETIME NOT NULL,`regip`VARCHAR(15)NOT NULL,`lasttime`DATETIME NOT NULL DEFAULT'0000-00-00 00:00:00',`lastip`VARCHAR(15)NOT NULL DEFAULT'0',`loginnum`SMALLINT(6)NOT NULL DEFAULT'1',`email`VARCHAR(32)NOT NULL,`groupid`TINYINT(4)NOT NULL,`status`TINYINT(4)NOT NULL DEFAULT'1',`realname`VARCHAR(50)NOT NULL DEFAULT'0',`rightnum`SMALLINT(6)NOT NULL DEFAULT'0',PRIMARY KEY(`userid`))ENGINE=MYISAM;新建表:yx_question表yx_question栏目名称字段名类型可否为空说明题目编号questionid int N 主键、AI题目内容content mediumtext N题集setid int N 默认为:0正确选项answer0 varchar(50) N错误选项1 answer1 varchar(50) N错误选项2 answer2 varchar(50) N错误选项3 answer3 varchar(50) N答案说明description varchar(50) Y 默认:0添加日期addtime datetime N出题人userid int N与yx_user表的userid关联审核人adminid int N 默认为:0,与yx_admin表的adminid关联审核时间verifytime datetime N题目状态status tinyint N 默认为:0CREATE TABLE`yx_question`(`questionid`INT(11)NOT NULL AUTO_INCREMENT,`content`MEDIUMTEXT NOT NULL,`setid`INT(11)NOT NULL DEFAULT'0',`answer`VARCHAR(50)NOT NULL,`answer1`VARCHAR(50)NOT NULL,`answer2`VARCHAR(50)NOT NULL,`answer3`VARCHAR(50)NOT NULL,`description`VARCHAR(50)NOT NULL DEFAULT'0',`addtime`DATETIME NOT NULL,`userid`INT(11)NOT NULL,`adminid`INT(11)NOT NULL DEFAULT'0',`verifytime`DATETIME NOT NULL DEFAULT'0000-00-00 00:00:00',`status`TINYINT(4)NOT NULL DEFAULT'0',PRIMARY KEY(`questionid`))ENGINE=MYISAM新建表:yx_question_set表yx_question_set栏目名称字段名类型可否为空说明题集编号setid int N 主键、AI 题集名称setname varchar(50) N题集描述description text N题集状态enabled tinyint(1) N 0:不可用;1:可用题集题数questionnum smallint N 默认:0CREATE TABLE`yx_question_set`(`setid`INT(11)NOT NULL AUTO_INCREMENT,`setname`VARCHAR(50)NOT NULL,`description`TEXT NOT NULL,`enabled`TINYINT(1)NOT NULL DEFAULT'0',`questionnum`SMALLINT(6)NOT NULL DEFAULT'0',PRIMARY KEY(`setid`))ENGINE=MYISAM新建表:yx_user_select_set表yx_user_select_set栏目名称字段名类型可否为空说明编号id int N 主键、AI 用户编号userid int N题集编号setid int NCREATE TABLE`yx_user_select_set`(`id`INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `userid`INT NOT NULL,`setid`INT NOT NULL)ENGINE=MYISAM;新建表:yx_user_answer_record表yx_user_answer_record栏目名称字段名类型可否为空说明记录编号id int N 主键、AI问题编号questionid int N 与yx_question表的questionid关联答题结果check tinyint N 0:错误;1:正确答题人userid int N 与yx_user表的userid关联答题时间answertime datetime NCREATE TABLE`yx_user_answer_record`(`id`INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`questionid`INT NOT NULL,`check`TINYINT NOT NULL,`userid`INT NOT NULL,`answertime`DATETIME NOT NULL)ENGINE=MYISAM;新建表:yx_admin表yx_admin栏目名称字段名类型可否为空说明管理员编号adminid int N 主键、AI管理员名adminname varchar(20) N管理员密码password varchar(32) N管理员类型roleid smallint N 默认:0上次登录时间lasttime datetime N 默认:0000-00-0000:00:00 上次登录ip lastip varchar(15) N 默认:0管理员邮箱email varchar(40) N 默认:0管理员真实姓名realname varchar(50) NCREATE TABLE`yx_admin`(`adminid`INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `adminname`VARCHAR(20)NOT NULL,`password`VARCHAR(32)NOT NULL,`roleid`SMALLINT NOT NULL DEFAULT'0',`lasttime`DATETIME NOT NULL DEFAULT'0000-00-00',`lastip`VARCHAR(15)NOT NULL DEFAULT'0',`email`VARCHAR(40)NOT NULL DEFAULT'0',`realname`VARCHAR(50)NOT NULL)ENGINE=MYISAM;新建表:yx_admin_role表yx_admin_role栏目名称字段名类型可否为空说明类型编号roleid smallint N 主键、AI 类型名称rolename varchar(50) N类型描述description text N类型状态enabled tinyint(1) N 0:不可用;1:可用CREATE TABLE`yx_admin_role`(`roleid`INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`rolename`VARCHAR(50)NOT NULL,`description`TEXT NOT NULL,`enabled`TINYINT(1)NOT NULL)ENGINE=MYISAM;创建模块目录:PHPCMS v9框架中的模块,位于phpcms/modules目录中每一个目录称之为一个模块,如果要创建一个模块,只要在phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

Phpcmsv9开发留言板

Phpcmsv9开发留言板

Phpcmsv9开发留⾔板功能⽐较简单,写写为了记住这个过程。

新建⼀张数据表xx_gbook,有以下字段Id int(4) ⾃增长⾮空Name varchar(255) utf-8Phone int(20)Address varchar(255) utf-8Content text(500) utf-8Inputtime int(12)⼀、创建模块存放⽬录在/phpcms/modules/下创建⼀个⽂件夹gbook⽤来存放模块,gbook⽂件下包含三个⽂件夹,classes(模块类库包)、functions(模块函数类包)、templates(模版包,⼀般是后台模版)。

⼆、创建模块控制器类(注意:类名称与控制器⽂件名必须相同)、数据库模型类在gbook⽂件夹下新建⽂件gbook.php,前台不⽤权限控制,后台类要有权限控制,所以后台新建类要加载并继承admin,写法 pc_base::load_app_class('admin','admin',0); class gbook extends admin(){} 另外控制器的⽅法名不要和该类中的⽅法名⼀样数据库模型类,在/phpcms/model/⽬录下新建gbook_model.class.php⽂件⽤来加载xx_gbook 表。

附上我写的⼀个⼩例⼦Gbook_model.class.php <?php defined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_sys_class('model','',0); //加载公⽤模型类class gbook_model extends model{ //创建新的数据模型类public function __construct(){$this->db_config = pc_base::load_config('database'); //数据库连接$this->db_setting = 'default'; //连接设置$this->table_name = 'gbook'; //数据表名parent::__construct();}}?>Gbook.php<?php defined('IN_PHPCMS') or exit('No permission resources.'); //判断是不是有控制器pc_base::load_app_class('admin','admin',0); //加载admin类class gbook extends admin{ //创建新类并继承admin的属性public function __construct(){$this->db_gbook =pc_base::load_model('gbook_model'); //加载数据库模型类}//默认列表显⽰留⾔public function init(){//分页设置$page = isset($_GET['page']) &&intval($_GET['page']) ? intval($_GET['page']) : 1;//分页条数$pageSize = 20;//查询语句$gbookList = $this->db_gbook->listinfo(array(),'inputtimeDESC',$page,$pageSize);//模版显⽰include $this-> admin_tpl("gbook_list");}//删除留⾔public function del(){//删除语句if ($this->db_gbook->delete(array('id'=>$_GET['id']))) {echo 1;}else{echo '';}}}?>Gbook_list.tpl.php <?php defined('IN_ADMIN') or exit('No permission resources.'); include $this->admin_tpl('header','admin');?> <div class="pad-10"> <div class="explain-col"> <?php echo "管理⼈员根据浏览者的留⾔,提取相关的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下面我们将通讲解一个留言本实例,来帮助你更好的掌握PHPCMS V9的二次开发流程。

并在开发过程中体验PHPCMS V9。

在此我们只做基本功能的演示,更多的功能开发,期待你的继续挖掘。

4.1需求分析本实例用PHPCMS V9基础功能开发设计一个留言本管理系统,要求如下: 后台:可管理、回复、删除留言信息可控制留言是否前台显示可对留言系统配置设置选项,例如是否起用验证码,默认是否显示、是否允许游客留言等配置。

模块配置信息可多站点存储。

可批量管理所有未回复留言后台管理演示效果如下图所示:前台:根据后台模块配置选项,控制是否显示在线留言填写表单。

在线提交留言,根据后台配置选项,是否显示验证码,是否需管理员审核显示。

留言列表页,需根据后台配置每页条数进行分页。

前台演示效果如下图所示:4.2数据库和数据表的设计这里使用Mysql数据库来存储信息。

首先构建一个留言信息表 guestbook , 它有12个字段,即消息编号(gid),站点ID(siteid),标题(title),内容(content),回复内容(reply),回复状态(reply_status),会员ID(uid),会员姓名(username),审核状态(passed) ,留言时间(inputtime),回复人(replyer),回复时间(replytime)。

下面是创建该表的SQL代码:CREATE TABLE `phpcms_guestbook` (`gid` smallint(5) NOT NULL auto_increment,`title` char(80) NOT NULL,`content` text NOT NULL,`reply` text NOT NULL,`userid` mediumint(8) unsigned NOT NULL default '0',`username` char(20) NOT NULL,`gender` tinyint(1) unsigned NOT NULL default '0',`head` tinyint(3) unsigned NOT NULL default '0',`email` char(40) NOT NULL,`qq` char(15) NOT NULL,`homepage` char(25) NOT NULL,`hidden` tinyint(1) unsigned NOT NULL default '0',`passed` tinyint(1) unsigned NOT NULL default '0',`ip` char(15) NOT NULL,`addtime` int(10) unsigned NOT NULL default '0',`replyer` char(20) NOT NULL,`replytime` int(10) unsigned NOT NULL default '0',PRIMARY KEY (`gid`),KEY `hidden` (`hidden`,`gid`));4.3创建模块目录PHPCMS v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块,如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

当前我们要开发一个叫做guestbook的留言本模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为guestbook。

如下图所示:guestbook 模块的标准结构通常是这样的,如下图所示:其中classes 为模块类库包functions 为模块函数库包templates 为模块模板包 这里通常放置含有权限控制的控制器模板,也就是后台模板。

如果您的模块有单独的前台模版,你需要在phpcms/templates/default下创建一个您的模块同名目录来放置前台模板,“default”为你的风格包名称,我们默认适用default。

4.4创建数据模型类文件建好数据表,创建完模块文件夹以后,接下来进行留言本数据模型的创建。

数据库模型位于:phpcms/model/ 目录下。

数据模型文件的命名规则建议为数据表名称+'_model.class.php'如果在我们的创建的模块中我要使用一个数据表“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php',程序结构如下图:<?phpdefined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_sys_class('model', '', 0);class test_model extends model {public function __construct() {$this->db_config = pc_base::load_config('database');$this->db_setting = 'default';$this->table_name = 'test';parent::__construct();}}?>在实例中,只需要把加粗字换成当前数据表名即可。

在本例中guestbook_model.class.php数据模型文件为留言本信息表数据模型,结构如下:<?phpdefined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_sys_class('model', '', 0);class guestbook_model extends model {function __construct() {$this->db_config = pc_base::load_config('database');$this->db_setting = 'default';$this->table_name = 'guestbook';parent::__construct();}}说明:任何自定义模块的数据模型类,均继承于model.class.php 数据模型基类。

在此基类中PHPCMS 系统已经把最常用的数据库操作方法进行了封装。

二次开发者不必关于如何操作数据库,只需要根据需要用到的,已定义操作方法的要求,传递参数即可。

系统会自动对数据进行处理,并返回定义结果。

4.5开发模块控制器和函数在上面的创建模块中我们已经创建好了一个名为“guestbook”的留言本模块,接下来我们继续为这个模块添加两个控制器类。

PHPCMS V9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。

类名也就是文件名+.php,例如一个名为guestbook的控制器,那么他的命名为guestbook.php即可。

控制器类默认继承系统的函数库,可以直接使用。

需要注意的是:控制器类的类名称与控制器文件名必须相同。

本留言本模块有以下二个控制器控制器名称 默认调用控制函数 说明index.php init() 前台页面控制器guestbook.php init() 后台管理控制器下面将对二个控制做分别一个详细介绍。

4.5.1前台index.php控制器开发前台控制器主要涉及前台留言显示、在线留言的提交处理等功能函数,以下为全部源代码,接下来我们将对每个功能块,做个详细介绍,代码如下图所示:<?phpdefined('IN_PHPCMS') or exit('No permission resources.');class index {function __construct() {$this->guestbook_db = pc_base::load_model('guestbook_model');$this->_username = param::get_cookie('_username');$this->_userid = param::get_cookie('_userid');//定义站点ID常量,选择模版使用$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : $this->get_siteid();define("SITEID",$siteid);//读取配置,设置分页条数$setting = new_html_special_chars(getcache('guestbook', 'commons'));$this->set = $setting[SITEID];}public function init() {//读取配置,设置分页条数$setting = new_html_special_chars(getcache('guestbook', 'commons'));$set = $setting[SITEID];$pagesize = $setting[SITEID]['pagesize'];$where = array('passed'=>1,'siteid'=>SITEID);$page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;$infos = $this->guestbook_db->listinfo($where, 'gid DESC',$page, $pages = $pagesize);$infos = new_html_special_chars($infos);$pages = $this->guestbook_db->pages;pc_base::load_sys_class('form', '', 0);include template('guestbook', 'index');}/*** 在线留言*/public function ly() {if(isset($_POST['dosubmit'])){if(isset($_POST['code'])){$code = isset($_POST['code']) && trim($_POST['code']) ?trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER);if ($_SESSION['code'] != strtolower($code)) {showmessage(L('code_error'), HTTP_REFERER);}}$set = $this->set;$link_db = pc_base::load_model(guestbook_model);$_POST['ly']['addtime'] = SYS_TIME;$_POST['ly']['userid'] = $this->_userid;$_POST['ly']['username'] = $this->_username;$_POST['ly']['siteid'] = SITEID;$_POST['ly']['passed'] = $set['check_pass'];$link_db->insert($_POST['ly']);showmessage(L('add_success'), "?m=guestbook&c=index&siteid=$siteid");} else {echo $siteid.'adsf';exit;$setting = getcache('guestbook', 'commons');pc_base::load_sys_class('form', '', 0);$SEO = seo(SITEID, '', L('application_links'), '', '');include template('guestbook', 'ly');}}}?>接下来将对本控制程序的每一段代码后对其进行分析和解释。

相关文档
最新文档