十六、文章模块界面处理
文章表
CREATE TABLE `tp_article` (
`id` smallint(5) PRIMARY KEY AUTO_INCREMENT COMMENT '文章id',
`title` varchar(30) NOT NULL COMMENT '标题',
`keywords` varchar(60) NOT NULL COMMENT '关键词',
`description` varchar(150) NOT NULL COMMENT '描述',
`author` varchar(10) NOT NULL COMMENT '作者',
`email` varchar(20) NOT NULL COMMENT '电子邮箱',
`link_url` varchar(100) NOT NULL COMMENT '外链',
`thumb` varchar(100) NOT NULL COMMENT '缩略图',
`content` longtext NOT NULL COMMENT '内容',
`show_top` tinyint(1) NOT NULL DEFAULT '0' COMMENT '置顶 1:是 0:否',
`show_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '显示 1:是 0:否',
`cate_id` smallint(6) NOT NULL COMMENT '所属栏目',
`addtime` int(10) NOT NULL COMMENT '发布时间'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
文章添加页面
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
UE.getEditor('content', { initialFrameWidth: 770, initialFrameHeight: 400,
模板输出字符串替换
'tpl_replace_string' => [ '{__PLUS__}' => '/static/admin/plus', ]
十七、文章添加及编辑功能
文章添加
public function add()
{
$cate=new Catetree();
if(request()->isPost()){
$data=input('post.');
$data['addtime']=time();
// $data['article_url']; http://
if($data['link_url'] && stripos($data['link_url'],'http://') === false){
$data['link_url']='http://'.$data['link_url'];
}
//处理图片上传
if($_FILES['thumb']['tmp_name']){
$file = request()->file('thumb');
// 上传到本地服务器
$data['thumb'] = \think\facade\Filesystem::putFile( 'topic', $file);
}
//验证
$validate = validate('article');
if(!$validate->check($data)){
$this->error($validate->getError());
}
$add=Db::table('tp_article')->insert($data);
if($add){
$this->success('添加文章成功!','lst');
}else{
$this->error('添加文章失败!');
}
return;
}
$cateRes = Db::table('tp_cate')->select();
$cateRes=$cate->catetree($cateRes);
View::assign([
'cateRes'=>$cateRes,
]);
return view();
}
文章列表页面
onClick="javascript:window.location.href = 'add.html'"> Add
// $data['brand_url']; http://
if($data['link_url'] && stripos($data['link_url'],'http://') === false){
$data['link_url']='http://'.$data['link_url'];
if($_FILES['thumb']['tmp_name']){
$oldarticles=Db::table('tp_article')->field('thumb')->find($data['id']);
$oldarticleImg=IMG_UPLOADS. $oldarticles['thumb'];
if(file_exists($oldarticleImg)){
$file = request()->file('thumb');
$data['thumb'] = \think\facade\Filesystem::putFile( 'topic', $file);
$validate = validate('article');
$this->error($validate->getError());
$save=Db::table('tp_article')->update($data);
$this->success('修改品牌成功!','lst');
$arts=DB::table('tp_article')->find($id);
$cateRes=DB::table('tp_cate')->order('sort DESC')->select();
$cateRes=$cate->catetree($cateRes);
$arts=Db::table('tp_article')->field('thumb')->find($id);
$thumbSrc=IMG_UPLOADS.$arts['thumb'];
$del=Db::table('tp_article')->delete($id);
$this->success('删除品牌成功!','lst');
$article=Db::table('tp_article');
foreach ($sonids as $k => $v) {
$artRes=$article->field('id,thumb')->where(array('cate_id'=>$v))->select();
foreach ($artRes as $k1 => $v1) {
$thumbSrc=IMG_UPLOADS.$v1['thumb'];
"imagePathFormat": "/ueditor/{yyyy}{mm}{dd}/{time}{rand:6}"
二十、图片列表展示
定义上传图片路径
define('UEDITOR', __DIR__ . '/ueditor');
define('HTTP_UEDITOR','/ueditor');
define('DEL_UEDITOR',__DIR__ . '');
图片资源处理函数(应用公共文件)
function my_scandir($dir=UEDITOR){
$files=array();
$dir_list=scandir($dir);
foreach ($dir_list as $file) {
if($file != '.' && $file != '..'){
if(is_dir($dir.'/'.$file)){
$files[$file]=my_scandir($dir.'/'.$file);
}else{
$files[]=$dir.'/'.$file;
}
}
}
return $files;
}
ueditor图片管理
public function imglist(){
$_files=my_scandir();
$files=array();
foreach ($_files as $k => $v) {
if(is_array($v)){
foreach ($v as $k1 => $v1) {
$v1=str_replace(UEDITOR, HTTP_UEDITOR, $v1);
$files[]=$v1;
}
}else{
$v=str_replace(UEDITOR, HTTP_UEDITOR, $v);
$files[]=$v;
}
}
View::assign([
'imgRes'=>$files,
]);
return view();
}
ajax异步删除图片
public function delimg(){
$imgsrc=input('imgsrc');
$imgsrc=DEL_UEDITOR.$imgsrc;
if(file_exists($imgsrc)){
if(@unlink($imgsrc)){
echo 1;
}else{
echo 2;
}
}else{
echo 3;
}
}
二十一、友情链接功能完成
CREATE TABLE `tp_link` (
`id` smallint(6) PRIMARY KEY AUTO_INCREMENT COMMENT '友情链接id',
`title` varchar(30) NOT NULL COMMENT '标题',
`link_url` varchar(60) NOT NULL COMMENT '链接地址',
`logo` varchar(100) NOT NULL COMMENT 'logo',
`description` varchar(255) NOT NULL COMMENT '链接描述',
`type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '链接类型 1:文字 2:图片',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '启用状态1:启用 0:禁用'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
添加页面
列表页面
onClick="javascript:window.location.href = 'add.html'"> Add
namespace app\admin\controller;
class Link extends BaseController
$linkRes=Db::table('tp_link')->order('id DESC')->paginate(6);
if($data['link_url'] && stripos($data['link_url'],'http://') === false){
$data['link_url']='http://'.$data['link_url'];
if($_FILES['logo']['tmp_name']){
$file = request()->file('logo');
$data['logo'] = \think\facade\Filesystem::putFile( 'topic', $file);
// $validate = validate('link');
// if(!$validate->check($data)){
// $this->error($validate->getError());
$add=Db::table('tp_link')->insert($data);
$this->success('添加链接成功!','lst');
if($data['link_url'] && stripos($data['link_url'],'http://') === false){
$data['link_url']='http://'.$data['link_url'];
if($_FILES['logo']['tmp_name']){
$oldlinks=Db::table('tp_link')->field('logo')->find($data['id']);
$oldlinkImg=IMG_UPLOADS.$oldlinks['logo'];
$file = request()->file('logo');
$data['logo'] = \think\facade\Filesystem::putFile( 'topic', $file);
// $validate = validate('link');
// if(!$validate->check($data)){
// $this->error($validate->getError());
$save=db('link')->update($data);
$this->success('修改链接成功!','lst');
$links=Db::table('tp_link')->find($id);
$linkObj=Db::table('tp_link');
$links=$linkObj->field('logo')->find($id);
$linkImg=IMG_UPLOADS.$links['logo'];