qa-ifish7/web/Application/Admin/Controller/PageController.class.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);
}
}
}