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

         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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值