友点企业网站管理系统(简称YouDianCMS系统)集电脑站、手机站、微信、APP、小程序于一体,共用空间,数据同步,是国内开源五站合一优秀企业建站解决方案。系统采用PHP开发,具有操作简单、功能强大、稳定性好、易扩展、安全性强、维护方便等特点,可帮您快速构建一个强大专业的企业网站。系统支持多语言、自定义模型、SEO优化、静态页、评论留言、购物车、在线支付、订单管理、会员、广告等企业网站基本功能。运行环境:PHP5.3/5.4/5.5/5.6/7.0/7.1/7.2/7.3 + MYSQL
Software architecture description
1.程序目录及文件说明
/App
|–Common 公共文件目录,一般放置项目的公共函数,common.php、tag.php 存储全局可以调用函数、类
|–Conf 会员后台模版目录 【此目录必须可读写,关闭可执行权限】
|–Admin
|–config.php 管理后台当前模板,默认为Default
|–Member
|–config.php 会员后台当前模板,默认为Default
|–Home
|–config.php 电脑网站当前模板,默认为Default,在[后台]->[模板管理]->[电脑站模板管理]->[模板选择] 可以设置当前的模板
|–Wap
|–config.php 电脑网站当前模板,默认为Default,在[后台]->[模板管理]->[电脑站模板管理]->[模板选择] 可以设置当前的模板
|–config.php 通用配置
|–core.php 核心配置
|–db.php 数据库配置
|–domain.php 子域名配置
|–html.php 静态配置
|–wxapp.php 微应用配置
|–Core 系统核心框架
|–Lang 系统语言包
|–cn 中文语言包
|–en 英文语言包
|–Lib 系统库文件
|–Action 控制器
|–Admin 管理后台控制器
|–Member 会员后台控制器
|–Home 电脑网站前台控制器,可以直接修改里面的源码,开发复杂的功能
|–Wap 手机网站前台控制器,可以直接修改里面的源码,开发复杂的功能
|–Behavior 行为类
|–Common 通用类
|–Model 模型
|–Widget 小部件
|–Tpl 模板目录,详见标签手册:http://tag.youdiancms.com/1_7.html
/Data 系统数据目录 【此目录必须可读写,关闭可执行权限】
|–html 静态HTML文件缓存目录,删除目录相当于清除系统HTML静态缓存
|–Home 电脑网站静态HTML文件缓存目录
|–Wap 手机网站静态HTML文件缓存目录
|–runtime 系统缓存目录(或称为系统运行时临时目录),删除目录相当于清除系统缓存
|–Cache 模板缓存目录,模板经过模板引擎解析后,会缓存到此目录,如果要看标签对应的php源码,可以看此目录的文件,可以辅助调试
|–Admin 管理后台模板缓存目录
|–Member 会员后台模板缓存目录
|–Home 电脑网站前台模板缓存目录
|–Wap 手机网站前台模板缓存目录
|–Data F函数缓存目录,主要存储系统的配置,如:基本设置、上传设置、水印设置等
|–Logs 系统运行日志文件,当此目录大于50M时,系统会自动清除所有日志文件
|–Temp 主要缓存数据库表字段信息
|–sql 数据库备份目录,备份的sql文件存储在此目录
|–zip 一键备份后的zip压缩包存储在此目录
|–app.debug 此文件存在表示开启了调试模式,删除表示关闭调试模式
|–install.lock 安装锁定文件,此文件存在表示系统已经安装,删除此文件可以重新安装系统
|–db###.sql 一键备份会产生此文件
|–index.html 目录安全文件[系统自动生成],某些主机开启了列出目录的权限,能看到目录下所有文件,比较危险,有这个文件可防止看到所有文件
/Install 安装程序目录,安装完成以后,此可以对此目录改名[推荐]或删除[不推荐]
/Public 系统级公共目录
|–ckeditor 编辑器
|–ckfinder 图片浏览器
|–effect flash特效及功能。如:flvplayer.swf用于播放mp4、slide.swf用于幻灯片特效
|–font 字体目录,主要用于文字水印的文字
|–Images 全局公共的图片
|–jquery jquery及其相关插件
|–My97DatePicker 日期选择插件
|–online 在线客服插件
|–tpl 全局模板
|–user 手机端会员后台模板
|–wx 微信应用模板
/Upload 上传目录,系统所有上传的图片、压缩包等,全部存放在此目录 【此目录必须可读写,关闭可执行权限】
/index.php 系统唯一入口文件
/httpd.ini 伪静态文件,主要用于IIS6.0 + ISAPI_Rewrite2;IIS6.0必须安装ISAPI_Rewrite才支持伪静态组件,Apache和IIS7.0以后默认支持伪静态
/.htaccess 用于Apache服务器、IIS6.0 + ISAPI_Rewrite3
/web.config 用于iis7.0以上版本,有些iis配置会与此文件冲突,请删除此文件重新配置
/sitemap.xml xml网站地图(在[后台]->[网站优化]->[网站地图]可以设置为自动生成),主要用于搜索引擎 【此文件必须可读写】
/sitemap.html html网站地图(在[后台]->[网站优化]->[网站地图]可以设置为自动生成),主要用于搜索引擎 【此文件必须可读写】
/sitemap.txt txt网站地图(在[后台]->[网站优化]->[网站地图]可以设置为自动生成),主要用于搜索引擎 【此文件必须可读写】
/robots.txt 搜索引擎机器人协议,可以设置哪些目录不允许被爬行
2.主要配置文件(放在App/Conf目录)说明
(1)config.php 全局配置
(2)core.php 核心配置
<?php return array ( 'URL_MODEL' => '1', //1:关闭伪静态;2: 启用伪静态 'URL_HTML_SUFFIX' => 'html',//伪静态后缀设置 'LANG_AUTO_DETECT' => '1', //1:启用多语言、0:启用单语言 'DEFAULT_LANG' => 'cn', //前台默认语言:cn:中文;en:英文 ); ?>(3)config.php 数据库配置,系统安装后,数据库参数会写入此文件
<?php return array ( 'DB_TYPE' => 'mysql', //数据库产品名称,由于本产品是使用mysql开发的,所以必须为mysql 'DB_HOST' => 'localhost', //数据库服务器地址,程序和数据库服务器位于同一台电脑请使用localhost,其它使用数据库服务器的ip地址或域名 'DB_NAME' => 'youdiancms65',//数据库名称 'DB_USER' => 'root', //访问数据库的账号 'DB_PWD' => 'wang', //访问数据库的密码 'DB_PORT' => '3306', //数据库服务器端口号 'DB_PREFIX' => 'youdian_', //数据库表的前缀 ); ?>(4)domain.php 手机网站域名配置
<?php return array ( 'APP_SUB_DOMAIN_RULES' => array ('m.xx.com' => array (0 => 'wap/',),), //m.xx.com为手机网站域名 ); ?>(5)html.php HTML静态文件缓存规则
<?php return array ( 'HTML_CACHE_ON' => false, //true:启用HTML静态缓存;false:关闭HTML静态缓存 'HTML_CACHE_RULES' => array ( //首页静态文件生成规则 'index:index' => array ( 0 => '{:group}/index_{0|get_language_mark}', 1 => '604800', //缓存时间(单位:秒),0表示永久 ), 'channel:index' => array ( //主页模板静态文件生成规则 0 => '{:group}/channel/{id}{jobid}{infoid}_{0|get_language_mark}_{0|get_para}', 1 => '1296000', //缓存时间(单位:秒),0表示永久 ), 'info:read' => array ( //阅读模板静态文件生成规则 0 => '{:group}/info/{id}_{0|get_para}', 1 => '0', //缓存时间(单位:秒),0表示永久 ), ), ); ?>(6)wxapp.php 微信应用配置,主要用于开发微信的一些应用
‘/^邮编([wW]+)$/’=>array( //输入文本正则匹配表达式
‘name’=>‘邮编查询’, //应用名称
‘type’=>‘3’, //类型:自己开发的填3
‘function’=>‘youbian’, //微应用处理函数,建议放在App/Common/common.php
‘description’=>“格式:邮编(6位邮政编码或地址)n举例:邮编北京、邮编410000”,
),
对应的函数如下:
function youbian($params){
import(’@.Common.YdWxMsg’);
s
t
r
=
u
r
l
e
n
c
o
d
e
(
str = urlencode(
str=urlencode(params[‘matches’][1]);
a
p
i
=
′
h
t
t
p
:
/
/
a
p
i
.
46644.
c
o
m
/
z
i
p
c
o
d
e
/
?
z
i
p
c
o
d
e
=
′
.
api = 'http://api.46644.com/zipcode/?zipcode='.
api=′http://api.46644.com/zipcode/?zipcode=′.str.’&appkey=1307ee261de8bbcf83830de89caae73f’;
// “518057:广东省 深圳市 南山区”
/*
{“error”: “0”,
“msg”: "浙江省杭州市西湖区 文一路80号浙江省省委党校图书馆(杂志)
浙江省杭州市西湖区 余杭塘路388号浙江医科大学图书馆(杂志)
浙江省杭州市西湖区 文二路125号浙江幼儿师范学校图书馆(杂志)
浙江省杭州市西湖区 教工路149号杭州市商业学院图书馆(杂志)
浙江省杭州市西湖区 花园南村
"} */
j
s
o
n
=
y
d
c
u
r
l
g
e
t
(
json = yd_curl_get(
json=ydcurlget(api);
d
a
t
a
=
j
s
o
n
d
e
c
o
d
e
(
data = json_decode (
data=jsondecode(json, true );
$msg = isset(
d
a
t
a
[
′
m
s
g
′
]
)
?
t
r
i
m
(
data['msg'] ) ? trim(
data[′msg′])?trim(data[‘msg’]) : ‘没有查询结果’;
r
e
p
l
y
=
Y
d
W
x
M
s
g
:
:
c
o
n
s
t
r
u
c
t
T
e
x
t
R
e
p
l
y
M
s
g
(
reply = YdWxMsg::constructTextReplyMsg(
reply=YdWxMsg::constructTextReplyMsg(params[‘fromUser’], $params[‘toUser’], $msg);
return $reply;