diff --git a/application/admin/controller/Category.php b/application/admin/controller/Category.php index a784932b..10ebab7e 100644 --- a/application/admin/controller/Category.php +++ b/application/admin/controller/Category.php @@ -248,4 +248,42 @@ class Category extends Admin { return $this->error("设置失败!"); } } + + public function add_channel() { + if (IS_POST) { + $Channel = model('Channel'); + $data = $this->request->param(); + if ($data) { + $id = $Channel->save($data); + if ($id) { + $map['id'] = array('IN', $data['mid']); + $result = db('Category')->where($map)->setField('ismenu',$Channel->id); + return $this->success('生成成功',url('index')); + //记录行为 + action_log('update_channel', 'channel', $id, session('user_auth.uid')); + } else { + return $this->error('生成失败'); + } + } else { + $this->error($Channel->getError()); + } + } else { + $data = $this->request->param(); + $modelname = db('Model')->where( array('id' => $data['model_id']) )->field('id,name')->find(); + $data['url'] = $modelname['name'].'/list/'.$data['mid']; + $pid = input('pid', 0); + //获取父导航 + if (!empty($pid)) { + $parent = db('Channel')->where(array('id' => $pid))->field('title')->find(); + $this->assign('parent', $parent); + } + $pnav = db('Channel')->where(array('pid' => '0'))->select(); + $this->assign('pnav', $pnav); + $this->assign('pid', $pid); + $this->assign('info', $data); + $this->assign('data',null ); + $this->setMeta('生成导航'); + return $this->fetch('edit_channel'); + } + } } \ No newline at end of file diff --git a/application/admin/controller/Channel.php b/application/admin/controller/Channel.php index f9e1413e..29dd8cf5 100644 --- a/application/admin/controller/Channel.php +++ b/application/admin/controller/Channel.php @@ -140,6 +140,9 @@ class Channel extends Admin { $map = array('id' => array('in', $id)); if (db('Channel')->where($map)->delete()) { + //删除category中的ismenu字段记录 + $map = array('ismenu' => array('in', $id)); + db('Category')->where($map)->setField('ismenu',0); //记录行为 action_log('update_channel', 'channel', $id, session('user_auth.uid')); return $this->success('删除成功'); diff --git a/application/admin/view/category/edit_channel.html b/application/admin/view/category/edit_channel.html new file mode 100644 index 00000000..aa1a713e --- /dev/null +++ b/application/admin/view/category/edit_channel.html @@ -0,0 +1,114 @@ +{extend name="public/base"/} +{block name="body"} + +
+
+
+

+ 生成到导航 +

+
+
+
+
+
+ +
+ + (用于显示的文字) +
+
+
+ +
+ + (当前标识) +
+
+
+ +
+ + (用于调转的URL,支持带http://的URL或U函数参数格式) +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + (是否新窗口打开链接) +
+
+
+ +
+ + 输入图标英文 +
+
+
+ +
+ + (导航显示顺序) +
+
+
+ +
+ + (右上角的标志点颜色,支持各类css表示方式) +
+
+
+ +
+ + (右上角的标志点颜色,支持各类css表示方式) +
+
+
+ +
+ + (右上角的标志点文字,不要太长,没有自动隐藏) +
+
+ +
+
+ + + +
+
+
+
+
+{/block} \ No newline at end of file diff --git a/application/admin/view/category/index.html b/application/admin/view/category/index.html index 783a3d36..487c23b3 100644 --- a/application/admin/view/category/index.html +++ b/application/admin/view/category/index.html @@ -35,6 +35,7 @@ 排序 发布 状态 + 生成导航 操作 @@ -59,6 +60,13 @@ 禁用 {/if} + + {if $list['ismenu']} + 已生成 + {else/} + 未生成 + {/if} + 编辑 {if $list['status']} diff --git a/application/common.php b/application/common.php index 68b1b924..7a3165e3 100644 --- a/application/common.php +++ b/application/common.php @@ -988,6 +988,44 @@ function get_category_child($id) { return array_unique($ids); } +/** + * 栏目文章当前位置 + * @param integer $id 当前栏目ID + * @param string $ext 文章标题 + * @return here 当前栏目树 + * @author K先森 <77413254@qq.com> + **/ +function get_category_pos($id,$ext=''){ + $cat = db('Category'); + $here = '首页'; + $uplevels = $cat->field("id,title,pid,model_id")->where("id=$id")->find(); + if(empty($uplevels)){ + return '栏目不存在'; + } + if($uplevels['pid'] != 0) + $here .= get_category_uplevels($uplevels['pid']); + $modelid = $uplevels['model_id']; + $modelname = db('Model')->field("name")->where("id = $modelid")->find(); + $links = url('index/content/lists?model='.$modelname['name'],array('id'=>$uplevels['id'])); + $here .= ' >> '.$uplevels['title'].""; + if($ext != '') $here .= ' >> '.$ext; + return $here; +} +function get_category_uplevels($id){ + $cat = db('Category'); + $here = ''; + $uplevels = $cat->field("id,title,pid,model_id")->where("id=$id")->find(); + $modelid = $uplevels['model_id']; + $modelname = db('Model')->field("name")->where("id = $modelid")->find(); + $links = url('index/content/lists?model='.$modelname['name'],array('id'=>$uplevels['id'])); + $here .= ' >> '.$uplevels['title'].""; + if($uplevels['pid'] != 0){ + $here = get_category_uplevels($uplevels['pid']).$here; + } + return $here; +} + + function send_email($to, $subject, $message) { $config = array( 'protocol' => 'smtp', diff --git a/data/sql.sql b/data/sql.sql index 12e3de74..0aca17aa 100644 --- a/data/sql.sql +++ b/data/sql.sql @@ -337,6 +337,7 @@ CREATE TABLE `sent_category` ( `pid` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '上级分类ID', `model_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '绑定模型ID', `sort` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '排序(同级有效)', + `ismenu` int(100) UNSIGNED NOT NULL DEFAULT '0' COMMENT '生成导航返回的ID', `list_row` tinyint(3) UNSIGNED NOT NULL DEFAULT '10' COMMENT '列表每页行数', `meta_title` varchar(50) NOT NULL DEFAULT '' COMMENT 'SEO的网页标题', `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字', @@ -366,10 +367,10 @@ CREATE TABLE `sent_category` ( -- 转存表中的数据 `sent_category` -- -INSERT INTO `sent_category` (`id`, `name`, `title`, `pid`, `sort`, `list_row`, `meta_title`, `keywords`, `description`, `template_index`, `template_lists`, `template_detail`, `template_edit`, `model`, `model_sub`, `type`, `link_id`, `allow_publish`, `display`, `reply`, `check`, `reply_model`, `extend`, `create_time`, `update_time`, `status`, `icon`, `groups`) VALUES -(1, 'news', '新闻动态', 0, 0, 10, '', '', '', '', '', '', '', '', '2', '2,1', 0, 0, 1, 0, 0, '1', 'null', 1379474947, 1463561497, 1, 0, ''), -(2, 'company_news', '国内新闻', 1, 1, 10, '', '', '', '', '', '', '', '2,3', '2', '2,1,3', 0, 1, 1, 0, 1, '1', '', 1379475028, 1386839751, 1, 0, ''), -(3, '', '国外新闻', 1, 2, 10, '', '', '', '', '', '', '', '', '', '', 0, 1, 1, 0, 0, '', '', 0, 0, 1, 0, ''); +INSERT INTO `sent_category` (`id`, `name`, `title`, `pid`, `ismenu`, `sort`, `list_row`, `meta_title`, `keywords`, `description`, `template_index`, `template_lists`, `template_detail`, `template_edit`, `model`, `model_sub`, `type`, `link_id`, `allow_publish`, `display`, `reply`, `check`, `reply_model`, `extend`, `create_time`, `update_time`, `status`, `icon`, `groups`) VALUES +(1, 'news', '新闻动态', 0, 1, 0, 10, '', '', '', '', '', '', '', '', '2', '2,1', 0, 0, 1, 0, 0, '1', 'null', 1379474947, 1463561497, 1, 0, ''), +(2, 'company_news', '国内新闻', 1, 0, 1, 10, '', '', '', '', '', '', '', '2,3', '2', '2,1,3', 0, 1, 1, 0, 1, '1', '', 1379475028, 1386839751, 1, 0, ''), +(3, '', '国外新闻', 1, 0, 2, 10, '', '', '', '', '', '', '', '', '', '', 0, 1, 1, 0, 0, '', '', 0, 0, 1, 0, ''); -- --------------------------------------------------------