lst.html代码跳转
{volist name="cateRes" id="cate" empty="$empty"}
<a href="{:url('cate/edit',array('cateid'=>$cate['id']))}" class="btn btn-primary btn-sm shiny">
<i class="fa fa-edit"></i> 编辑
</a>
{/volist}
Cate.php 控制器代码
//edit编辑栏目
public function edit(){
//获取要编辑的栏目
$cateRes = model('cate')->catetree();
$cateid = Request::param('cateid');
$cates = Db::table('tp_cate')->where('id',$cateid)->find();
//halt($cates);
//模型id
//$modelIds = Db::table('tp_cate')->column('model_id');
$this->assign(array(
'cateRes'=>$cateRes,
'cates'=>$cates,
));
return view();
}
model层Cate.php方法(栏目的上下层级)
public function catetree()
{
$cateRes = $this->order('sort desc')->select();
return $this->sort($cateRes);
}
public function sort($cateRes, $pid = 0, $level = 0)
{
static $arr = array();
foreach ($cateRes as $k => $v) {
//第一次寻找顶级栏目 默认pid顶级为0 已赋默认值
if ($v['pid'] == $pid) {
$v['level'] = $level;
$arr[] = $v;
//递归
$this->sort($cateRes, $v['id'], $level + 1);
}
}
//halt($arr);
return $arr;
}
前端代码 edit.html:
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>ThinkPHP5.0</title>
<meta name="description" content="Dashboard">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--Basic Styles-->
<link href="/../static/admin/style/bootstrap.css" rel="stylesheet">
<link href="/../static/admin/style/font-awesome.css" rel="stylesheet">
<link href="/../static/admin/style/weather-icons.css" rel="stylesheet">
<!--Beyond styles-->
<link id="beyond-link" href="/../static/admin/style/beyond.css" rel="stylesheet" type="text/css">
<link href="/../static/admin/style/demo.css" rel="stylesheet">
<link href="/../static/admin/style/typicons.css" rel="stylesheet">
<link href="/../static/admin/style/animate.css" rel="stylesheet">
<!-- <link href="/../static/admin/plus/uploadify/uploadify.css" rel="stylesheet"> -->
<script src="/../static/admin/style/jquery_002.js" ></script>
<script src="/../static/admin/plus/uploadify/jquery.uploadify.min.js" ></script>
<!--百度编辑器 -->
<script src="/../static/admin/plus/ueditor/ueditor.config.js" ></script>
<script src="/../static/admin/plus/ueditor/ueditor.all.min.js" ></script>
<script src="/../static/admin/plus/ueditor/lang/zh-cn/zh-cn.js" ></script>
<script type="text/javascript">
$(function () {
$("#file_upload").uploadify({
//指定swf文件
swf : '/../static/admin/plus/uploadify/uploadify.swf',
//后台处理的页面
uploader : "{:url('cate/upimg')}",
progressData : 'speed',
//按钮显示的文字
buttonText : '上传图片',
//按钮设计样式 引用
buttonClass : 'btn btn-azure',
//显示的高度和宽度,默认 height 30;width 120
//'height': 15,
//'width': 80,
//上传文件的类型 默认为所有文件 'All Files' ; '*.*'
//在浏览窗口底部的文件类型下拉菜单中显示的文本
//fileTypeDesc: 'Image Files',
//允许上传的文件后缀
//'fileTypeExts': '*.gif; *.jpg; *.png',
//设置发送数据的name值 跟数据对应
fileObjName : "img",
//回调匿名函数
onUploadSuccess : function (file,data,response) {
$("input[name='img']").val(data);
var cateimgsrc= "/../static/admin/uploads/cateimg/"+data;
var cateimg = "<img height='100' src='"+cateimgsrc+"'>";
$("#cateimg").html(cateimg);
}
});
$("#file_upload-button").removeAttr('style')
});
</script>
</head>
<body>
<!-- 头部 -->
{include file="common/header"}
<!-- /头部 -->
<div class="main-container container-fluid">
<div class="page-container">
<!-- Page Sidebar -->
<div class="page-sidebar" id="sidebar">
<!-- Page Sidebar Header-->
<div class="sidebar-header-wrapper">
<input class="searchinput" type="text">
<i class="searchicon fa fa-search"></i>
<div class="searchhelper">Search Reports, Charts, Emails or Notifications</div>
</div>
<!-- /Page Sidebar Header -->
<!-- Sidebar Menu -->
{include file="common/left"}
<!-- /Sidebar Menu -->
</div>
<!-- /Page Sidebar -->
<!-- Page Content -->
<div class="page-content">
<!-- Page Breadcrumb -->
<div class="page-breadcrumbs">
<ul class="breadcrumb">
<li>
<a href="{:url('index/index')}">系统设置</a>
</li>
<li>
<a href="{:url('cate/lst')}">栏目管理</a>
</li>
<li class="active">添加栏目</li>
</ul>
</div>
<!-- /Page Breadcrumb -->
<!-- Page Body -->
<div class="page-body">
<div class="row">
<div class="col-lg-12 col-sm-12 col-xs-12">
<form class="form-horizontal" role="form" action="" method="post">
<div class="widget-body">
<div class="widget-main ">
<div class="tabbable">
<ul class="nav nav-tabs tabs-flat" id="myTab11">
<li class="active">
<a data-toggle="tab" href="#home11">
基本信息
</a>
</li>
<li>
<a data-toggle="tab" href="#profile11">
SEO信息
</a>
</li>
<li >
<a data-toggle="tab" href="#profile112">
栏目内容
</a>
</li>
</ul>
<div class="tab-content tabs-flat">
<div id="home11" class="tab-pane in active">
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">所属模型</label>
<div class="col-sm-6">
<select name="model_id">
<option value="1">文章模型</option>
<option value="2">电影模型</option>
</select>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">上级栏目</label>
<div class="col-sm-6">
<select name="pid">
<option value="0">顶级栏目</option>
{volist name="cateRes" id="cate"}
<!--如何显示上级栏目 循环的所有栏目的pid与当前栏目id相同的话 就让我们选择它 就是当前的上级栏目
容易混淆 请注意这个地方的 $cates['pid']控制器传过来的属性,$cate['id']所有循环id -->
<option value="{$cate.id}" {if condition="$cates['pid'] eq $cate['id']" } selected="selected" {/if} >
<?php echo str_repeat('-',$cate['level']*14);?>{$cate.cate_name}</option>
{/volist}
</select>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">栏目名称</label>
<div class="col-sm-6">
<input class="form-control" value="{$cates.cate_name}" placeholder="" name="cate_name" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">隐藏栏目</label>
<div class="col-xs-4">
<label>
<input value="0" name="status" {if condition="$cate.status neq 1"} checked="checked" {/if} class="checkbox-slider colored-blue" type="checkbox">
<span class="text"></span>
</label>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">栏目图片</label>
<div class="col-sm-6">
<input id="file_upload" class="checkbox-slider colored-blue" type="file">
<span class="text"> </span>
<div id="cateimg" style="padding:5px;"> </div>
<input name="img" type="hidden" value="" />
<div id="cateimg" style="padding:5px;{if condition="$cates['img'] eq ''" } display: none {/if}">
{if condition="$cates['img'] neq ''"}
<img height="100" src="/../static/admin/uploads/cateimg/{$cates['img']}">
{/if}
</div>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">栏目属性</label>
<div class="col-xs-6">
<label>
<div class="radio" style="float: left;padding-left: 10px;">
<label>
<input name="cate_attr" value="1"{if condition="$cates['cate_attr'] eq 1"} checked="checked" {/if} type="radio" >
<span class="text">列表页栏目(可以发布文章) </span>
</label>
</div>
<div class="radio" style="float: left;padding-left: 10px;">
<label>
<input name="cate_attr" value="2" {if condition="$cates['cate_attr'] eq 2"} checked="checked" {/if} type="radio" >
<span class="text">封面频道栏目 </span>
</label>
</div>
<div class="radio" style="float: left;padding-left: 10px;">
<label>
<input name="cate_attr" value="3" {if condition="$cates['cate_attr'] eq 3"} checked="checked" {/if} type="radio" >
<span class="text">外链栏目 </span>
</label>
</div>
</label>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">列表页模板</label>
<div class="col-sm-6">
<input class="form-control" placeholder="" value="{$cates.list_tmp}" name="list_tmp" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">频道页模板</label>
<div class="col-sm-6">
<input class="form-control" placeholder="" value="{$cates.index_tmp}" name="index_tmp" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">内容页模板</label>
<div class="col-sm-6">
<input class="form-control" placeholder="" value="{$cates.article_tmp}" name="article_tmp" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">外链地址</label>
<div class="col-sm-6">
<input class="form-control" placeholder="" value="{$cates.link}" name="link" type="text">
</div>
<p class="help-block col-sm-4 red">* 请以"http://"开头</p>
</div>
SEO信息
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">栏目标题</label>
<div class="col-sm-6">
<input class="form-control" value="{$cates.title}" placeholder="" name="title" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">关键词</label>
<div class="col-sm-6">
<input class="form-control" value="{$cates.keywords}" placeholder="" name="keywords" required="" type="text">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">栏目描述</label>
<div class="col-sm-6">
<textarea class="form-control" name="desc" >{$cates.desc}</textarea>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
栏目内容
<div class="col-lg-12 col-sm-12 col-xs-12">
<div class="widget flat radius-bordered">
<div class="widget-body">
<div class="widget-main no-padding">
<textarea id="content" name="content" > {$cates.content}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="profile11" class="tab-pane">
<p>3Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid.</p>
</div>
<div id="profile112" class="tab-pane">
<p>3n coffee squid.</p>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">保存信息</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /Page Body -->
</div>
<!-- /Page Content -->
</div>
</div>
<!--Basic Scripts-->
<script src="/../static/admin/style/bootstrap.js"></script>
<!--Beyond Scripts-->
<script src="/../static/admin/style/beyond.js"></script>
<script type="text/javascript">
//实例化编辑器
//建议使用工程的方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,
//直接调用UE.getEditor('editor')就能拿到相关实例
UE.getEditor('content',
{toolbars:[[
'fullscreen', 'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload', 'insertimage', 'emotion', 'scrawl', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
'print', 'preview', 'searchreplace', 'drafts', 'help'
]],initialFrameWidth:1500,initialFrameHeight:400,});
</script>
</body></html>