第六天 ThinkPHP手把手快速拼接网站(六)

来源:互联网 发布:js map remove 编辑:程序博客网 时间:2024/04/29 09:40

         2月22日,晴天-雾霾。“ 桂花香馅裹胡桃,江米如珠井水淘。见说马家滴粉好,试灯风里卖元宵。”

    十、后台编写-续-3

        1、写News模块的index方法  ,以及增删改退等方法。

<?phpclass 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

<?phpclass 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


0 0