136 lines
4.9 KiB
PHP
136 lines
4.9 KiB
PHP
<?php
|
|
namespace Admin\Controller;
|
|
use Think\Controller;
|
|
class PageController extends AdminController{
|
|
public function __construct(){
|
|
parent::__construct();
|
|
$this->table=D("page");
|
|
$where["type"]="page";
|
|
if($this->admin_lang){
|
|
$where["lang"]=$this->admin_lang;
|
|
}
|
|
$this->pagetemplate=M("template")->where($where)->order("template_id desc")->select();
|
|
}
|
|
//单页信息
|
|
public function page(){
|
|
if($this->admin_lang){
|
|
$where["lang"]=$this->admin_lang;
|
|
}
|
|
$data=$this->table->where($where)->order('page_id desc')->select();
|
|
$this->assign("data",$data);
|
|
$this->display();
|
|
}
|
|
public function page_add(){
|
|
if(IS_POST){
|
|
$data=$this->table->create();
|
|
if (!$data){//验证
|
|
$this->error($this->table->getError());
|
|
}
|
|
$data[page_id]=$this->table->add();
|
|
D("UserLog")->add("add",$this->table->getTableName(),$data[page_id]);
|
|
if($data[pagemod]==1){
|
|
$this->table->makePageTemplateFile($data[page_id]);
|
|
}
|
|
if($data[path_type]=="static"){
|
|
\Admin\Model\UpdateModel::pageHtml($data[page_id],$data["classpath"]);
|
|
}
|
|
$this->success($data);
|
|
}else{
|
|
$this->pubid=make_pubid();
|
|
$this->display();
|
|
}
|
|
}
|
|
public function page_editor(){
|
|
if(IS_POST){
|
|
$data=$this->table->create();
|
|
if (!$data){//验证
|
|
$this->error($this->table->getError());
|
|
}
|
|
//
|
|
//记录历吏版本
|
|
if($data[pagemod]==1){
|
|
$this->setHistory($data[page_id]);
|
|
}
|
|
$this->table->save($data);
|
|
if($data[pagemod]==1){
|
|
$this->table->makePageTemplateFile($data[page_id]);
|
|
}else{
|
|
//如果不是页面式,删除模板文件
|
|
$this->table->deletePageTemplateFile($data[page_id]);
|
|
}
|
|
if($data[path_type]=="static"){
|
|
\Admin\Model\UpdateModel::pageHtml($data[page_id],$data["classpath"]);
|
|
}
|
|
D("UserLog")->add("update",$this->table->getTableName(),$data[page_id]);
|
|
$this->success($data);
|
|
|
|
}else{
|
|
$page_id=I("get.page_id",0,"int");
|
|
$r=$this->table->find($page_id);
|
|
$this->pagemod=$_GET[pagemod]?$_GET[pagemod]:$r[pagemod];
|
|
$this->assign("r",$r);
|
|
$this->display();
|
|
}
|
|
}
|
|
//删除页面
|
|
public function page_delete(){
|
|
$page_id=I("page_id",0,'intval');
|
|
$this->table->delete($page_id);
|
|
//删除历吏记录
|
|
M("page_history")->where(array("page_id"=>$page_id))->delete();
|
|
//删除文件
|
|
$this->table->deletePageTemplateFile($page_id);
|
|
//
|
|
D("UserLog")->add("delete",$this->table->getTableName(),$page_id);
|
|
$this->success("删除成功");
|
|
}
|
|
//单页模板
|
|
public function page_template(){
|
|
$where["type"]="page";
|
|
$where["type"]="page";
|
|
if($this->admin_lang){
|
|
$where["lang"]=$this->admin_lang;
|
|
}
|
|
$data=M("template")->where($where)->order('sort asc,template_id desc')->select();
|
|
$this->assign("data",$data);
|
|
$this->display();
|
|
}
|
|
public function page_template_add(){
|
|
$this->display();
|
|
}
|
|
public function page_template_editor(){
|
|
$template_id=I("get.template_id",0,"int");
|
|
$r=M("template")->find($template_id);
|
|
$this->assign("r",$r);
|
|
$this->display();
|
|
}
|
|
//记录历吏修改
|
|
private function setHistory($page_id){
|
|
//老的模板内容(未修改前的)
|
|
$old_template=M("page")->where(array("page_id"=>$page_id))->getField("pagetext");
|
|
//获取post过来的新的模板内容
|
|
$new_template=I("post.pagetext");
|
|
//如果没有老的,或者没有新的则不做版本标记
|
|
if(!$old_template||!$new_template){
|
|
return;
|
|
}
|
|
//如果老的模板内容和新的模板内容一样也不做版本标记
|
|
if($old_template==$new_template){
|
|
return;
|
|
}
|
|
//
|
|
$data["page_id"]=$page_id;
|
|
$data["addtime"]=time();
|
|
$data["userid"]=$_SESSION['user_id'];
|
|
$data["username"]=$_SESSION['user_name'];
|
|
$data["content"]=$old_template;
|
|
M("page_history")->add($data);
|
|
//查询备份的模板数据是否大于设置的值,多余的删除
|
|
$maxBake=C("MAX_TEMPLATE_BAKE");
|
|
$count=M("page_history")->where(array("page_id"=>$page_id))->count();
|
|
if($count>$maxBake){
|
|
$min_id=M("page_history")->where(array("page_id"=>$page_id))->min("id");
|
|
M("page_history")->delete($min_id);
|
|
}
|
|
}
|
|
} |