2月22日,晴天-雾霾。“ 桂花香馅裹胡桃,江米如珠井水淘。见说马家滴粉好,试灯风里卖元宵。”
十、后台编写-续-3
1、编写News模块的index方法 ,以及增删改退等方法。
<?php
class NewsAction extends Action {
/**
* 显示添加新闻主页面
*/
function index(){
header("Content-Type:text/html; charset=utf-8");
$this->assign('title','添加新闻');
$this->assign('username',session('username'));
if($id = (int)$_GET['id']){
$news=M('News');
$news_item=$news->where("id=$id")->find();
$this->assign('news_item',$news_item);
$this->assign('btn_ok_text','完成修改');
$this->assign('btn_ok_act','update');
}else{
$this->assign('btn_ok_act','add');
$this->assign('btn_ok_text','添加文章');
}
$this->display();
}
/**
* @函数 add
* @功能 新闻添加完成,写入数据库
*/
function add(){
header("Content-Type:text/html; charset=utf-8");
$News = D('News');
if($News->create()){
$News->message=$_POST['editorValue'];
$News->author=session('username');
//将文章写入数据库
if($News->add()){
$this->success('新闻添加成功,返回上级页面',U('Index/index'));
}else{
$this->error('新闻添加失败,返回上级页面');
}
}else{
$this->error($News->getError());
}
}
/**
* @函数 quit
* @功能 登出账户,跳转至登录页面。并清除Session
*/
function quit(){
session(null);//清空所有session信息
redirect(U('/Login/index'),0, '重新登录');
}
/**
* @函数 delete
* @功能 删除文章
*/
function delete(){
$news=M('news');
if($news->delete($_GET['id'])){
$this->success('文章删除成功');
}else{
$this->error($news->getLastSql());
}
}
/**
* @函数 edit
* @功能 编辑文章
*/
function edit(){
header("Content-Type:text/html; charset=utf-8");
if($_GET['id']){
redirect(U('/News/index/id/'.$_GET['id']),0, '编辑文章');
}
}
/**
* @函数 update
* @功能 更新修改后的文章到数据库
*/
public function update(){
header("Content-Type:text/html; charset=utf-8");
$news=M('news');
$data = array('subject'=>$_POST['subject'],'message'=>$_POST['editorValue'],'createtime'=>time(),'lastmodifytime'=>time());
$id=$_POST['id'];
$news->where('id='.$id)->setField($data); // 根据条件保存修改的数据
$this->success('新闻修改成功,返回上级页面',U('Index/index'));
}
}
2、编写News模块的视图,\admin\Tpl\News\index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{$title}</title>
<link rel="stylesheet" href="__PUBLIC__/Css/admin/reset.css" type="text/css" media="screen" />
<link rel="stylesheet" href="__PUBLIC__/Css/admin/style.css" type="text/css" media="screen" />
<link rel="stylesheet" href="__PUBLIC__/Css/admin/invalid.css" type="text/css" media="screen" />
<link rel="stylesheet" href="__ROOT__/ueditor/themes/default/ueditor.css"/>
<script type="text/javascript" src="__PUBLIC__/Js/admin/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/admin/simpla.jquery.configuration.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/admin/facebox.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/admin/jquery.wysiwyg.js"></script>
<script type="text/javascript" src="__ROOT__/ueditor/editor_config.js"></script>
<script type="text/javascript" src="__ROOT__/ueditor/editor_all.js"></script>
</head>
<body>
<div id="body-wrapper">
<div id="sidebar">
<div id="sidebar-wrapper">
<h1 id="sidebar-title"><a href="#">Eurasia</a></h1>
<img id="logo" src="__PUBLIC__/Images/admin/logo.png" alt="Eurasia logo" />
<div id="profile-links">
您好,<a href="#" title="当前用户:{$username}">{$username}</a> |
<a href="__URL__/quit" title="退出">退出</a>
</div>
<ul id="main-nav">
<!-- 类型为nav-top-itrm current 表示选中时的样式 -->
<li> <a href="#" class="nav-top-item">滚动新闻</a>
<ul>
<li><a href="#">社会</a></li>
<li><a href="#">财经</a></li>
<li><a href="#">娱乐</a></li>
<li><a href="#">体育</a></li>
</ul>
</li>
<li> <a href="#" class="nav-top-item ">财经</a>
<ul>
<li><a href="#">公司</a></li>
<li><a href="#">产业</a></li>
<li><a href="#">金融</a></li>
<li><a href="#">中国创客</a></li>
</ul>
</li>
<li> <a href="#" class="nav-top-item">美食</a>
<ul>
<li><a href="#">食谱</a></li>
<li><a href="#">探店</a></li>
<li><a href="#">佳饮</a></li>
<li><a href="#">美食圈</a></li>
</ul>
</li>
<li> <a href="#" class="nav-top-item">音乐</a>
<ul>
<li><a href="#">新声榜</a></li>
<li><a href="#">音乐人物</a></li>
<li><a href="#">视频音乐</a></li>
<li><a href="#">音乐评论</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="main-content">
<noscript>
<!-- Show a notification if the user has disabled javascript -->
<div class="notification error png_bg">
<div> 您好,您的浏览器不支持JavaScript,请打开JavaScript功能 <a href="http://browsehappy.com/" title="Upgrade to a better browser">upgrade</a> your browser or <a href="http://www.google.com/support/bin/answer.py?answer=23852" title="Enable Javascript in your browser">enable</a> Javascript to navigate the interface properly.
Download From
</div>
</div>
</noscript>
<h2>编写新闻</h2>
<br></br>
<!-- 实例化百度编辑器 -->
<form action="__URL__/{$btn_ok_act}" method="post">
<p class="subtit">文章标题</p>
<div>
<select id="selType">
<option value="0">请选择</option>
<option value="1">原创</option>
<option value="2">转载</option>
<option value="4">翻译</option>
</select>
<input type="text" id="txtTitle" name="subject" style="width:560px; height:20px; float:left;" maxlength="100" value="{$news_item.subject}"/>
</div>
<p class="subtit">文章内容</p>
<div id="myEditor">
<script type="text/javascript">
var editor = new baidu.editor.ui.Editor({
initialContent: '{$news_item.message}'
});
editor.render("myEditor");
</script>
</div>
<input type="hidden" value="{$news_item.id}" name="id"/>
<input type="submit" value="{$btn_ok_text}"/>
</form>
<div class="clear"></div>
<div id="footer">
<small>
© Copyright 2016 Eurasia old Zhang | Powered by 醉捞明月 | <a href="#">Top</a>
</small>
</div>
</div>
</div>
</body>
</html>
使用
UEditor插件,
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点, 文档链接:http://fex.baidu.com/ueditor/, 效果如图:
3、编写News模块的model,\admin\Lib\Model\NewsModel.class.php
<?php
class NewsModel extends Model{
//标题自动验证
protected $_validate=array(
array('subject', 'require', '新闻标题必须非空'),
array('subject', 'callback_checklen', '标题内容过长', 0, 'callback'),
array('message', 'require', '新闻内容必须非空'),
);
//字段长度验证回调函数(ThinkPHP会自动帮我们传递参数)
function callback_checklen($data){
if(strlen($data)>200){
return false;
}
return true;
}
//自动完成,在create时自动执行
//array('填充字段','填充内容','填充条件','附加规则');
//填充字段
protected $_auto=array(
array('createtime','time',1,'function'),
array('lastmodifytime','time',1,'function'),
);
}
?>
4、后台主页的最后效果,可对每条新闻进行修改和删除
4、完整源代码下载地址:http://download.csdn.net/detail/zwszws/9439360
本文详细介绍了如何在后台管理新闻模块,包括添加、编辑、删除新闻的操作流程,并使用了UEditor插件实现富文本编辑功能。同时,还提供了后台主页的最终效果展示。
2105

被折叠的 条评论
为什么被折叠?



