PHPCMS二次开发_问答模块数据库设计

合集下载

PHP实战开发教程PHPCMS二次开发PHPSSO

PHP实战开发教程PHPCMS二次开发PHPSSO

管理PHPSSO中的用户账户信息
应用管理
管理已接入到PHPSSO中的各个应用。包括添加,删 除,设置通讯方式等。
积分兑换
管理已接入到PHPSSO中的各个应用之间的积分兑换 规则。
管理员管理
设置PHPSSO系统的管理员账号。 PHPSSO中的管理员账号分为两种类型: 超级管理员:允许使用PHPSSO中的所有管理功能; 普通管理员:允许管理会员,应用,通信及积分。
系统设置
包括对会员注册时的限制信息,以及与UCENTER PHPCMS2019 SP3的通讯配置。
更新缓存
用于更新当前已接入到PHPSSO中的应用缓存信息
Thank yo 感谢聆听
PHP实战开发教程PHPCMS二次开发PHPSSO
PHPSSO的优势——方便用户
用户使用应用系统时,能够一次登录,多次使用。用 户不再需要每次输入用户名称和用户密码,也不需要 牢记多套用户名称和用户密码。单点登录平台能够改 善用户使用应用系统的体验。
PHPSSO的优势——方便管理
系统管理员只需要维护一套统一的用户账号,斱便、 简单。相比之下,系统管理员以前需要管理很多套的 用户账号。每一个应用系统就有一套用户账号,不仅 给管理上带来不便,而且,也容易出现管理漏洞。
PHPSSO的优势——简化开发
在开发新的应用系统时,可以直接使用已经开发完成 的SSO系统完成用户认证服务,简化开发流程。单点 登录系统通过统一的认证平台实现单点登录。因此, 新的系统就无需额外开发一套独立的用户认证程序了 。
PHPSSO的优势——跨平台整合
我们可以通过PHPSSO的设置功能完成站点与Ucenter 等其他平台的用户信息整合工作,无需制作额外的接 口程序。

PHPCMS开发实例PHPCMS二次开发模板-精品文档

PHPCMS开发实例PHPCMS二次开发模板-精品文档

{pc:json url=“test_url" cache="86400"} {loop $data $key $val} <a href="{$val[url]}">{$val['title']}</a> {/loop} {/pc}
PC标签——XML工具箱
{pc:xml}……{/pc}
参数 url cache return 默认值 null 0 data 说明 要读取的JSON数据来源 缓存时间,对读取的数据进行数据缓存,单位为秒。不设 置该值表示不需要进行缓存 返回数组名。默认值为data
PC标签——评论模块
PC标签——投票模块
PC标签——公告模块
PC标签——专题模块
PC标签——会员模块
PC标签——友情链接模块
PC标签——工具箱
PC标签——JSON工具箱
{pc:json}……{/pc}
参数 url cache return 默认值 null 0 data 说明 要读取的JSON数据来源 缓存时间,对读取的数据进行数据缓存,单位为秒。不设 置该值表示不需要进行缓存 返回数组名。默认值为data
dbsource null return data
{pc:get sql="SELECT * FROM pre_forum_thread" cache="3600" page="$page" dbsource="discuz" return="data"} <ul> {loop $data $key $val} <li><A href="">{$val[subject]}</A></li> {/loop} </ul> {if $pages}<div class=page>{$pages}</div>{/if} {/pc}

CMS之数据库设计

CMS之数据库设计

CMS之数据库设计在建立一个CMS(内容管理系统)时,数据库设计是一个非常重要的步骤。

数据库设计需要考虑如何有效地存储和管理各种内容,以便实现系统的高性能和可扩展性。

以下是一个关于CMS数据库设计的详细讨论。

首先,我们需要确定CMS系统中的几个主要实体,例如用户,文章,页面,评论等。

每个实体都应该有一个唯一的标识,如用户ID,文章ID 等。

对于用户实体,可以存储用户的基本信息,如用户名,密码,电子邮件等。

此外,还可以存储用户的角色和权限信息,以实现不同用户角色的访问控制。

除了这些核心实体外,还可以根据实际需求添加其他实体,如图片,文件等。

这些实体可以使用外键关联到其他实体,以实现相关内容的管理。

接下来,我们需要考虑如何设计数据库表之间的关系。

关系可以通过主键和外键来建立。

每个表应该有一个主键字段,以唯一标识每条记录。

对于一对一关系,可以将一个表的主键作为另一个表的外键。

对于一对多关系,可以在多的一方的表中添加一个外键字段,以关联到另一个表的主键字段。

对于多对多关系,可以使用中间表来建立两个表之间的关系。

为了提高查询性能,可以对一些常用的查询进行优化。

例如,可以为用户表中的用户名字段创建索引,以便快速查询用户信息。

此外,还可以使用分页查询来提高查询性能,以避免一次性加载大量数据。

数据库设计还需要考虑数据的一致性和完整性。

可以使用约束来限制数据的取值范围,例如,可以设置用户名字段的唯一约束,以确保每个用户名都是唯一的。

此外,还可以使用触发器来实现复杂的业务逻辑,例如,当插入一条评论时,可以自动更新文章的评论数。

最后,数据库设计还需要定期进行维护和优化。

例如,可以定期清理无效数据,优化查询语句,并监控数据库性能。

此外,还可以定期备份数据库,以防止数据丢失。

综上所述,CMS数据库设计是一个复杂且关键的任务。

通过合理设计和优化,可以实现高性能和可扩展的CMS系统。

数据库设计应该考虑实体之间的关系,查询性能,数据一致性和完整性等方面。

PHPCMS开发实例_PHPCMS二次开发_目录与入口程序

PHPCMS开发实例_PHPCMS二次开发_目录与入口程序

PHPCMS
model
lib language cache caches_* configs api
目录结构——api
接口文件目录
目录结构——cache
配置&缓存文件目录
configs:系统配置文件目录 caches_*:系统缓存目录
目录结构——phpcms
phpcms主目录
language:语言包存储目录 lib :底层框架存储目录 model:数据表对象定义存储目录 modules:功能模块存储目录 templates:模板文件存储目录
北风网PHPCMS二次开发
剖析PHPCMS
目录与入口程序
讲师:胖龙(北风网版权所有)
favicon.ico
robots.txt
crossdomain.xm l index.php
ห้องสมุดไป่ตู้PHPCMS V9 的目录结构
admin.php uploadfile js statics images css phpsso_server templates Phpcms modules
欢迎访问我们的官方网站
目录结构——phpsso_server
phpsso主目录
目录结构——statics
phpcms主目录
css:系统样式定义文件存储目录
images:系统图片存储目录 js:系统JS包存储目录
目录结构——uploadfile
网站上传文件存储目录
目录结构——根目录文件
admin.php:管理平台入口程序 index.php:系统入口程序 crossdomain.xml:FLASH跨域传输配置文件 robots.txt:搜索引擎蜘蛛限制配置文件 favicon.ico:系统图标

cms二次开发概念

cms二次开发概念

CMS二次开发是指在现有的CMS软件上进行定制修改和功能扩展,以达到满足特定需求的目的。

一般来说,CMS二次开发不会改变原有系统的内核,而是通过修改和增加功能模块来实现个性化需求。

以phpcms为例,phpcms是国内领先的网站内容管理系统,同时也是一个开源的PHP开发框架。

它采用模块化开发,支持多种分类方式,使用它可方便实现个性化网站的设计、开发与维护。

它支持众多的程序组合,可轻松实现网站平台迁移,并可广泛满足各种规模的网站需求,可靠性高,是一款具备文章、下载、图片、分类信息、影视、商城、采集、财务等众多功能的强大、易用、可扩展的优秀网站管理软件。

Phpcms由内容模型、会员、问吧、专题、财务、订单、广告、邮件订阅、短消息、自定义表单、全站搜索等20多个功能模块组成,内置新闻、图片、下载、信息、产品5大内容模型。

Phpcms 采用模块化开发,支持自定义内容模型和会员模型,并且可以自定义字段。

这为二次开发提供了很大便利。

进行CMS二次开发时,可以根据实际需求选择相应的开发方式和技能进行开发。

如果只是修改模板,需要了解CMS的标签语法和相关技术的基础知识;如果涉及到程序开发等问题,那么还需要深入了解CMS的文件结构、文件作用,并且对PHP面向对象有一定层次的了解。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

二次开发-2

二次开发-2

自增
YES No No No No No No
说明
自增的留言信息ID 分类ID 用户名 留言类型(留言、回复) 留言/回复内容 留言/回复时间 站点ID

你还可以根据自己的需求,再增加一些比如QQ,email, 什么的,你可以继续增加
PHPCMS 二次开发全新课程 小波主讲

数据库表的设计
根据上面的字段,类型,长度,我们就可以做出.SQL语句来了
GBK 版本的,就更改下 CHARSET 就可以了

CHARSET=gbk;
新建一个 guestbook.txt 文件复制上面的内容,然后,另存为 guestbook.sql
PHPCMS 二次开发全新课程 小波主讲

• • • •
模块功能的实现 二
需求也分析了,主要数据表也建设了,接下来,我们需要建设文件与文件夹 进入wwwroot \phpcms\modules 进入站点根目录下 phpcms 框架目录下的 modules 模块目录下 新建文件夹 guestbook 进入后台,模块管理,我们可以看到,有个无法安装,名字为空,且模块目录为 guestbook 的模块
PHPCMS 二次开发全新课程
教员:小波 论坛账号:0793jay
PHPCMS 二次开发全新课程 小波主讲
• 什么 是 模块,什么是插件 • 如何安装模块 • 如何设计模块 • 模块功能的实现 • 模块需要界面的方法与使用
PHPCMS 二次开发全新课程 小波主讲
什么是模块?什么是插件?
无法安装,是因为缺失安装文件及一些安装必要的配置文件。下一篇,我们详细讲解每个文件。 此方法是适合 开发者, 自己使用的,一般就不需要安装及卸载程序了,直接就操作数据库了,但先,我们因为需要讲的详细,就把每个步骤都讲解 清楚,介绍清楚。这样,你开发的功能,也能给其他的用户共享使用了

phpcms二次开发

phpcms二次开发

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

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

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

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

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

phpcms v9 仿站与二次开发收藏集

phpcms v9 仿站与二次开发收藏集

phpcms v9问题博客分类:php内容管理系统phpcms 登录总是提示“验证码输入错误”,分明没有输错的解决修改"/caches/configs/system.php"当中session_storage => 'mysql'为session_storage => 'files'并且流量器中的域名要和system.php中的一致此模块未安装或者已被禁用原因模块 > 模块管理 > 模块管理 >中对应的模块没有安装解决在module表中添加相关记录前台页面报:栏目不存在解决扩展 > 扩展 > 更新全站缓存 >添加module在module,menu表中也要添加修改后台左侧导航phpcms\modules\admin\templates\left.tpl.phpphpcms\modules\admin\class\admin.class.php admin_menuphpcms\modules\admin\templates\index.tpl.php位置:扩展 > 扩展 > 菜单管理 >说明:一、本功能用于后台各功能菜单的设置操作。

二、为系统分配权限调用,所有系统用到的功能方法,都需要添加到菜单管理里。

一、添加菜单添加菜单分为全新添加和在已有菜单处添加子菜单。

二种方法仅在上级菜单默认值处有异,其它相同。

全新添加:添加功能菜单时,首先选择上级菜单目录。

填写中英文对应菜单名称,所在模块名,及对应文件和处理方法名。

如有参数,请于下填写参数信息。

如下图所示如选择显示菜单,则在导航处显示,反之不显。

以上图为例,选择不显示,图示如下二、菜单管理菜单管理仅涉及编辑,修改、排序等操作在此不再详述。

∙∙大小: 10.1 KB∙∙大小: 14.8 KB∙∙大小: 5.9 KB∙∙大小: 1.6 KBphpcms v9模板制作教程(四)发布时间:2012-05-20 20:12:38 来源:天行子点击:12phpcms v9模板制作教程(四)在学下节课之前我先讲些学前需要知道的知识1、养成书写规范的DIV标签搜索引擎优化(seo)中,对代码的优化也是一个很关键的步骤。

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"这个形式所代表的是参数。

用PHP实现在线问答社区系统的构建与优化

用PHP实现在线问答社区系统的构建与优化

用PHP实现在线问答社区系统的构建与优化在当今互联网时代,问答社区系统已经成为人们获取信息、分享知识、交流经验的重要平台。

为了满足用户需求,构建一个高效稳定的在线问答社区系统至关重要。

本文将介绍如何利用PHP语言来构建和优化在线问答社区系统,以提升用户体验和系统性能。

1. 构建问答社区系统1.1 确定需求和功能在构建问答社区系统之前,首先需要明确系统的需求和功能。

用户应该能够注册账号、发布问题、回答问题、点赞、评论等。

管理员应该具有管理用户、管理内容、审核问题等权限。

确定清晰的需求和功能列表是系统设计的基础。

1.2 数据库设计数据库设计是问答社区系统的核心之一。

需要设计用户表、问题表、回答表、评论表等,保证数据结构合理规范。

使用MySQL等数据库管理系统,建立索引、外键等约束,提高数据查询效率。

1.3 界面设计界面设计直接影响用户体验。

应该设计简洁清晰的界面,包括首页展示、问题详情页、个人中心等页面。

采用HTML、CSS、JavaScript 等前端技术,实现响应式布局和友好交互效果。

1.4 后端开发利用PHP语言结合框架(如Laravel、CodeIgniter)进行后端开发。

实现用户注册登录、问题发布回答、权限管理等功能。

采用MVC 架构,提高代码复用性和可维护性。

1.5 安全性考虑安全性是在线问答社区系统不可忽视的重要因素。

应该对用户输入进行过滤和验证,防止SQL注入、XSS攻击等安全漏洞。

使用HTTPS 协议传输数据,保护用户隐私信息。

2. 优化问答社区系统2.1 性能优化性能优化是提升系统响应速度和稳定性的关键。

可以通过缓存技术(如Redis)、数据库索引优化、代码优化等手段来提高系统性能。

合理使用CDN加速静态资源加载,减轻服务器压力。

2.2 用户体验优化用户体验是评判一个问答社区系统好坏的重要标准。

应该注重页面加载速度、交互流畅性和信息展示清晰度。

设计友好的操作界面,提供搜索功能和推荐算法,增强用户粘性。

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数据库设计

PHPCMS数据库设计

PHPCMS数据模型详解----bane12@ 1.管理员phpcms_admin2.管理员权根phpcms_admin_role3.管理员权限phpcms_admin_role_priv4.广告phpcms_ads10flashurl varchar(100)NO|flash地址11wmode varchar(20)NO|是否透明12text text NO|文本内容13code text NO|代码内容14fromdate int(10)unsigned NO MUL0|广告开始日期15todate int(10)unsigned NO0|广告结束日期16username char(20)NO MUL|客户帐号17addtime int(10)unsigned NO0|添加日期18views int(10)unsigned NO0|浏览次数19clicks mediumint(8)unsigned NO0|点击次数20passed tinyint(1)unsigned NO0|是否通过21status tinyint(1)unsigned NO1|广告状态5.广告位phpcms_ads_place6.广告统计phpcms_ads_stat7.公告phpcms_announce8.地区phpcms_area9.问吧问题phpcms_ask12anonymity tinyint(1)unsigned NO0|匿名13hits mediumint(8)unsigned NO0|点击数14ischeck tinyint(1)unsigned NO0|是否已经检查过期15searchid mediumint(8)unsigned NO0|全站搜索ID10.问吧角色phpcms_ask_actor11.问吧积分phpcms_ask_credit12.问吧回复phpcms_ask_posts12username char(20)NO|用户名13solvetime int(10)unsigned NO0|解决时间14votecount smallint(5)unsigned NO0|投票数13.问吧投票统计phpcms_ask_vote14.附件phpcms_attachment15.作者phpcms_author4gender tinyint(1)unsigned NO0|性别5birthday date NO0000-00-00|生日6email varchar(40)NO|Email7qq varchar(15)NO|QQ8msn varchar(40)NO|MSN9homepage varchar(100)NO|主页10telephone varchar(20)NO|电话11address varchar(100)NO|地址12postcode varchar(6)NO|邮编13photo varchar(100)NO|照片14introduce mediumtext NO|介绍15updatetime int(10)unsigned NO0|更新时间16listorder tinyint(3)unsigned NO0|排序17elite tinyint(1)unsigned NO0|推荐18disabled tinyint(1)unsigned NO0|是否禁用16.碎片phpcms_block17.下载模型phpcms_c_down9stars varchar(20)NO★★★☆☆|评分等级10filesize varchar(20)NO未知|文件大小11downurl varchar(255)NO|12downurls text NO|下载列表13groupids_view tinyint(1)unsigned NO0|下载权限14readpoint smallint(5)unsigned NO0|阅读所需点数18.信息模型phpcms_c_info19.文章模型phpcms_c_news20.图片模型phpcms_c_picture21.产品模型phpcms_c_product22.缓存统计phpcms_cache_count23.栏目phpcms_category19setting mediumtext NO|设置20listorder smallint(5)unsigned NO0|排序21ismenu tinyint(1)unsigned NO1|在导航显示24.评论phpcms_comment25.内容模型phpcms_content19islink tinyint(1)unsigned NO0|外部链接20prefix char(20)NO|26.内容模型统计phpcms_content_count27.内容模型推荐位phpcms_content_position28.内容模型TAG phpcms_content_tag29.来源phpcms_copyfrom30.数据源phpcms_datasource5dbpw varchar(50)NO|数据库密码6dbname varchar(20)NO|数据库名称7dbcharset varchar(10)NO|数据库字符集8tablename varchar(30)NO|表名9fields varchar(255)NO|字段名称10status tinyint(1)unsigned NO0|状态31.顶一下phpcms_digg32.顶一下记录phpcms_digg_log33.编辑器数据恢复保存phpcms_editor_data34.错误报告phpcms_error_report35.表单向导phpcms_formguide36.表单向导字段phpcms_formguide_fields15issystem tinyint(1)unsigned NO0|是否必填16isbackground tinyint(1)unsigned NO0|是否在后台列表显示17isunique tinyint(1)unsigned NO0|是否唯一18issearch tinyint(1)unsigned NO0|是否19isselect tinyint(1)unsigned NO0|20islist tinyint(1)unsigned NO0|21isshow tinyint(1)unsigned NO0|22listorder mediumint(8)unsigned NO0|23disabled tinyint(1)unsigned NO1|37.友情链接phpcms_guestbook38.浏览次数统计phpcms_hits39.IP禁止phpcms_ipbanned40.关联链接phpcms_keylink41.关键字phpcms_keyword42.友情链接phpcms_link43.操作日志phpcms_log44.邮件订阅phpcms_mail45.邮件地址phpcms_mail_email46.邮件类型phpcms_mail_email_type47.会员phpcms_member48.会员缓存phpcms_member_cache49.会员详细信息phpcms_member_detail4msn varchar(20)NO|MSN 5telephone varchar(20)NO|电话6address varchar(100)NO|地址7qq varchar(15)NO|QQ 8birthday datetime NO|生日9postcode varchar(15)NO|邮编10mobile varchar(15)NO|手机50.会员组phpcms_member_group51.扩展会员组phpcms_member_group_extend52.会员权限phpcms_member_group_priv53.会员基本信息phpcms_member_info54.菜单phpcms_menu15userid mediumint(8)unsigned NO MUL0|用户ID 16keyid char(30)NO MUL|Keyid55.短消息phpcms_message56.模型phpcms_model57.模型字段phpcms_model_field58.模块phpcms_module7author varchar(50)NO|作者8site varchar(100)NO|版权网站地址9email varchar(50)NO|Email10description mediumtext NO|描述11license mediumtext NO|授权说明12faq mediumtext NO|帮助13tagtypes mediumtext NO|标签类型14setting mediumtext NO|模块配置15listorder tinyint(3)unsigned NO0|排序16disabled tinyint(1)unsigned NO0|是否禁用17publishdate date NO0000-00-00|发布时间18installdate date NO0000-00-00|安装时间19updatedate date NO0000-00-00|更新时间59.心情指数phpcms_mood60.心情指数统计phpcms_mood_data2contentid mediumint(8)unsigned NO MUL0|内容id3total mediumint(8)unsigned NO0|投票总数4n1smallint(5)unsigned NO0|投票总数1 5n2smallint(5)unsigned NO0|投票总数2 6n3smallint(5)unsigned NO0|投票总数3 7n4smallint(5)unsigned NO0|投票总数4 8n5smallint(5)unsigned NO0|投票总数5 9n6smallint(5)unsigned NO0|投票总数6 10n7smallint(5)unsigned NO0|投票总数7 11n8smallint(5)unsigned NO0|投票总数8 12n9smallint(5)unsigned NO0|投票总数9 13n10smallint(5)unsigned NO0|投票总数10 14n11smallint(5)unsigned NO0|投票总数11 15n12smallint(5)unsigned NO0|投票总数12 16n13smallint(5)unsigned NO0|投票总数13 17n14smallint(5)unsigned NO0|投票总数14 18n15smallint(5)unsigned NO0|投票总数15 19updatetime int(10)unsigned NO0|61.订单记录phpcms_order18userid mediumint(8)unsigned NO MUL0|用户ID19username char(20)NO|用户名20ip char(15)NO|IP21time int(10)unsigned NO0|下单时间22date date NO0000-00-00|下单日期23status tinyint(1)unsigned NO MUL0|订单状态62.配送地址phpcms_order_deliver63.订单状态phpcms_order_log64.支付卡phpcms_pay_card6inputerid mediumint(8)unsigned NO0|生成点卡用户ID7inputer char(20)NO|生成点卡用户名8mtime datetime NO0000-00-0000:00:00|生成时间9regtime datetime YES0000-00-0000:00:00|使用时间10endtime int(10)unsigned NO0|11regip char(15)NO0.0.0.0|生成点卡地址12point smallint(5)unsigned NO0|点数13amount smallint(5)unsigned NO0|金钱14status tinyint(3)unsigned NO0|使用状态65.交易记录phpcms_pay_exchange66.支付类型phpcms_pay_payment11author varchar(100)NO|作者12website varchar(100)NO|网址13version varchar(20)NO|版本号67.点卡类型phpcms_pay_pointcard_type68.财务统计phpcms_pay_stat69.汇款记录phpcms_pay_user_account70.推荐位phpcms_position71.工作流方案phpcms_process72.工作流ID状态phpcms_process_status73.角色phpcms_role74.全站搜索phpcms_search75.全站搜索类型phpcms_search_type76.Session phpcms_session77.个人空间phpcms_space78.个人空间接口phpcms_space_api79.专题phpcms_special2typeid smallint(5)unsigned NO MUL0|类型ID 3title varchar(80)NO|专题标题4style varchar(5)NO|样式5thumb varchar(100)NO|缩略图6banner varchar(100)NO|横幅图片7filename varchar(50)NO|专题英文名8description mediumtext NO|描述9url varchar(100)NO|链接地址10template varchar(30)NO|当前模板11userid mediumint(8)unsigned NO0|用户ID 12username varchar(20)NO|用户名13createtime int(10)unsigned NO0|生成时间14listorder smallint(5)unsigned NO0|排序15elite tinyint(1)unsigned NO0|推荐16disabled tinyint(1)unsigned NO0|是否禁用80.专题文章phpcms_special_content81.稿件状态phpcms_status82.操作限制phpcms_times83.分类phpcms_type3name char(30)NO|名称4style char(5)NO|样式5typedir char(20)NO|分类目录6description char(255)NO|描述7thumb char(100)NO|分类图片8url char(100)NO|链接地址9template char(50)NO|模板10listorder smallint(5)unsigned NO0|排序84.URL规则phpcms_urlrule85.投票数据phpcms_vote_data86.投票选项phpcms_vote_option87.投票主题phpcms_vote_subject2subject char(255)NO|主题3ismultiple tinyint(1)unsigned NO0|是否多选选择4ischeckbox tinyint(1)unsigned NO0|是否多选5credit smallint(5)unsigned NO0|积分6addtime int(10)unsigned NO0|添加时间7fromdate date NO MUL0000-00-00|开始时间8todate date NO MUL0000-00-00|结束时间9interval tinyint(3)unsigned NO0|投票时间间隔10enabled tinyint(1)unsigned NO MUL1|是否启用11template char(20)NO|当前模板12parentid mediumint(8)unsigned NO0|父ID13description text NO|描述14userinfo char(255)NO|用户资料15listorder smallint(5)unsigned NO0|排序16enablecheckcode tinyint(1)unsigned NO0|验证码开启?17allowguest tinyint(1)unsigned NO1|允许游客投票18groupidsvote char(100)NO|允许参与投票的会员组19groupidsview char(100)NO|允许查看结果的会员组20maxval tinyint(2)unsigned NO0|最大值21minval tinyint(1)unsigned NO1|最小值22userid mediumint(8)unsigned NO0|用户ID23allowview tinyint(1)unsigned NO1|允许查看24optionnumber tinyint(3)unsigned NO0|选项数25votenumber mediumint(8)unsigned NO0|投票数88.投票用户选项phpcms_vote_useroption89.审核方案phpcms_workflow。

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包| – uploadfile 网站附件目录| – admin.php 后台管理入口| – index.php 程序主入口| – crossdomain.xml FLASH跨域传输文件| – robots.txt 搜索引擎蜘蛛限制配置文件| – favicon.ico 系统icon图标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二次开发技巧如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过“MY_*.php”的形式进行二次开发。

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 目录下创建文件夹并放入你的控制器类就可以了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
title:标题 key:搜索关键字 status:状态(1:启用,2:禁用)
问答系统数据表——v9_question
用于存储问题的基本信息
v9_question
id:编号 title:标题 content:内容 uid:发布人 addtime:发布时间 credit:悬赏积分
typeid:分类
answernum:答案数量 bestid:最佳答号
credit:积分
问答系统数据表——v9_qalog
用于存储问答系统的日志
v9_qalog
id:编号 qid:涉及问题编号
aid:涉及答案编号
uid:用户编号 credit:积分变更
type:操作类型1:提问,2:回答,3:修改问题,4:最佳答案,5: 删除
addtime:创建时间 desc:说明
问答系统数据表
v9_question • 问题记录表 v9_answer • 答案记录表 v9_qacredit • 用户积分记录表 v9_qalog • 问答系统日志记录表 v9_qatype • 问题分类记录表
问答系统数据表——v9_qatype
用于存储问题分类设置 v9_qatype id:编号
北风网PHPCMS二次开发
在线问答系统
数据库设计
讲师:胖龙(北风网版权所有)
数据库设计的重要性
数据库是整个软件应用的根基,是软件设计的起点, 它起着决定性的质变作用,因此我们必须对数据库设 计高度重视起来,培养设计良好数据库的习惯,是一 个优秀的软件设计人员所必须具备的基本素质条件。 一个不良的数据库设计,必然会造成很多问题,轻则 增减字段,重则系统无法运行。
欢迎访问我们的官方网站
问答系统数据表——v9_answer
用于存储答案的基本信息
v9_question
id:编号 qid:问题编号
content:答案内容
uid:发布人 addquestion:追加提问 addtime:发布时间
isbest:是否为最佳答案
问答系统数据表——v9_qacredit
用于存储用户参与答题模块获取的积分
相关文档
最新文档