www.legu.cc/application/Portal/Controller/AdminTermController.class.php
2021-09-06 11:50:33 +08:00

162 lines
5.1 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2014 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: Tuolaji <479923197@qq.com>
// +----------------------------------------------------------------------
namespace Portal\Controller;
use Common\Controller\AdminbaseController;
class AdminTermController extends AdminbaseController {
protected $terms_model;
protected $taxonomys=array("article"=>"文章","picture"=>"图片");
function _initialize() {
parent::_initialize();
$this->terms_model = D("Portal/Terms");
$this->assign("taxonomys",$this->taxonomys);
}
// 后台文章分类列表
public function index(){
$result = $this->terms_model->order(array("listorder"=>"asc"))->select();
$tree = new \Tree();
$tree->icon = array('&nbsp;&nbsp;&nbsp;│ ', '&nbsp;&nbsp;&nbsp;├─ ', '&nbsp;&nbsp;&nbsp;└─ ');
$tree->nbsp = '&nbsp;&nbsp;&nbsp;';
foreach ($result as $r) {
$r['str_manage'] = '<a href="' . U("AdminTerm/add", array("parent" => $r['term_id'])) . '">'.L('ADD_SUB_CATEGORY').'</a> | <a href="' . U("AdminTerm/edit", array("id" => $r['term_id'])) . '">'.L('EDIT').'</a> | <a class="js-ajax-delete" href="' . U("AdminTerm/delete", array("id" => $r['term_id'])) . '">'.L('DELETE').'</a> ';
$url=U('portal/list/index',array('id'=>$r['term_id']));
$r['url'] = $url;
$r['taxonomys'] = $this->taxonomys[$r['taxonomy']];
$r['id']=$r['term_id'];
$r['parentid']=$r['parent'];
$array[] = $r;
}
$tree->init($array);
$str = "<tr>
<td><input name='listorders[\$id]' type='text' size='3' value='\$listorder' class='input input-order'></td>
<td>\$id</td>
<td>\$spacer <a href='\$url' target='_blank'>\$name</a></td>
<td>\$taxonomys</td>
<td>\$str_manage</td>
</tr>";
$taxonomys = $tree->get_tree(0, $str);
$this->assign("taxonomys", $taxonomys);
$this->display();
}
// 文章分类添加
public function add(){
$parentid = I("get.parent",0,'intval');
$tree = new \Tree();
$tree->icon = array('&nbsp;&nbsp;&nbsp;│ ', '&nbsp;&nbsp;&nbsp;├─ ', '&nbsp;&nbsp;&nbsp;└─ ');
$tree->nbsp = '&nbsp;&nbsp;&nbsp;';
$terms = $this->terms_model->order(array("path"=>"asc"))->select();
$new_terms=array();
foreach ($terms as $r) {
$r['id']=$r['term_id'];
$r['parentid']=$r['parent'];
$r['selected']= (!empty($parentid) && $r['term_id']==$parentid)? "selected":"";
$new_terms[] = $r;
}
$tree->init($new_terms);
$tree_tpl="<option value='\$id' \$selected>\$spacer\$name</option>";
$tree=$tree->get_tree(0,$tree_tpl);
$this->assign("terms_tree",$tree);
$this->assign("parent",$parentid);
$this->display();
}
// 文章分类添加提交
public function add_post(){
if (IS_POST) {
if ($this->terms_model->create()!==false) {
if ($this->terms_model->add()!==false) {
F('all_terms',null);
$this->success("添加成功!",U("AdminTerm/index"));
} else {
$this->error("添加失败!");
}
} else {
$this->error($this->terms_model->getError());
}
}
}
// 文章分类编辑
public function edit(){
$id = I("get.id",0,'intval');
$data=$this->terms_model->where(array("term_id" => $id))->find();
$tree = new \Tree();
$tree->icon = array('&nbsp;&nbsp;&nbsp;│ ', '&nbsp;&nbsp;&nbsp;├─ ', '&nbsp;&nbsp;&nbsp;└─ ');
$tree->nbsp = '&nbsp;&nbsp;&nbsp;';
$terms = $this->terms_model->where(array("term_id" => array("NEQ",$id), "path"=>array("notlike","%-$id-%")))->order(array("path"=>"asc"))->select();
$new_terms=array();
foreach ($terms as $r) {
$r['id']=$r['term_id'];
$r['parentid']=$r['parent'];
$r['selected']=$data['parent']==$r['term_id']?"selected":"";
$new_terms[] = $r;
}
$tree->init($new_terms);
$tree_tpl="<option value='\$id' \$selected>\$spacer\$name</option>";
$tree=$tree->get_tree(0,$tree_tpl);
$this->assign("terms_tree",$tree);
$this->assign("data",$data);
$this->display();
}
// 文章分类编辑提交
public function edit_post(){
if (IS_POST) {
if ($this->terms_model->create()!==false) {
if ($this->terms_model->save()!==false) {
F('all_terms',null);
$this->success("修改成功!");
} else {
$this->error("修改失败!");
}
} else {
$this->error($this->terms_model->getError());
}
}
}
// 文章分类排序
public function listorders() {
$status = parent::_listorders($this->terms_model);
if ($status) {
$this->success("排序更新成功!");
} else {
$this->error("排序更新失败!");
}
}
// 删除文章分类
public function delete() {
$id = I("get.id",0,'intval');
$count = $this->terms_model->where(array("parent" => $id))->count();
if ($count > 0) {
$this->error("该菜单下还有子类,无法删除!");
}
if ($this->terms_model->delete($id)!==false) {
$this->success("删除成功!");
} else {
$this->error("删除失败!");
}
}
}