部署的地址
我的博客地址:http://www.weber.pub/
github 地址:https://github.com/baiyuming/byblog
文章的修改
文章的修改需要两步,第一步读取文章,第二步更新文章,更新完成后返回文章列表页
读取博客控制器
//编辑博客方法
public function edit($id=0){
$Article = M('Article');
$this->assign('data',$Article->find($id));
$this->display();
}
更新文章控制器
// 更新博客
public function update(){
$Article = M("Article");
$time = I('post.a_time')?strtotime(I('post.a_time')):time();
$data = array (
'a_id' => I('post.a_id'),
'a_title' => I('post.a_title'),
'a_keyword' => I('post.a_keyword'),
'a_remark' => I('post.a_remark'),
'a_content' => I('post.a_content'),
'a_time' => $time,
);
if($Article->save($data)) { // 根据条件保存修改的数据
$this->success('编辑成功!','listA');
}else{
$this->error('编辑失败!');
}
}
上面的方法中有对文章发表时间的判断,如果不填则默认是当前时间,如果填写就按照填写时间存入。
页面代码
这里仍然使用了markdown 编辑器。。。
<form class="col s12 pt-60" method="post" action="__URL__/update">
<input type="hidden" name="a_id" value="{$data.a_id}">
<div class="row">
<div class="col s9">
<div class="row">
<div class="input-field col s12">
<input id="title" name="a_title" type="text" class="validate" value="{$data.a_title}">
<label for="title">文章标题</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="remark" name="a_remark" type="text" class="validate" value="{$data.a_remark}">
<label for="remark">文章描述</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<p class="f-16 c-999">文章内容</p>
<textarea name="a_content" id="textarea" class="materialize-textarea">{$data.a_content}</textarea>
</div>
</div>
</div>
<div class="col s3">
<div class="row">
<div class="input-field col s12">
<input id="keyword" name="a_keyword" type="text" class="validate" value="{$data.a_keyword}">
<label for="keyword">标签(关键字)</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="a_time" name="a_time" type="text" class="validate" value="20{$data.a_time|date='y/m/d H:i',###}">
<label for="a_time">时间</label>
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action">更新文章
<i class="by bym-feiji right"></i>
</button>
</div>
</div>
</form>
文章的删除
删除功能就直接做在了列表页
控制器代码
public function del($id=0){
// 实例化Article对象
$Article = M("Article");
//根据id删除
$Article->where('a_id = '.$id)->delete();
if($Article) { // 根据条件保存修改的数据
$this->success('文章已删除!',"../../listA");
}else{
$this->error('删除失败!');
}
}
页面代码
<volist name="list" id="vo">
<tr>
<td class="f-18" width="75%">{$vo.a_title} <span class="f-12 c-999">20{$vo.a_time|date="y/m/d H:i",###}</span></td>
<td width="25%">
<a href="{:U('Admin/Blog/edit/id/'.$vo['a_id'])}" class="waves-effect waves-light btn mr-lg">编辑</a>
<a href="#modal{$vo.a_id}" class="modal-trigger waves-effect waves-light btn">删除</a>
<div id="modal{$vo.a_id}" class="modal">
<div class="modal-content">
<h4>确定删除</h4>
<p>{$vo.a_title} 这篇文章????</p>
</div>
<div class="modal-footer">
<a onclick="$('.modal').closeModal();" class="waves-effect waves-light btn ml-lg ">取消</a>
<a href="{:U('Admin/Blog/del/id/'.$vo['a_id'])}" class="waves-effect waves-light btn red">确定</a>
</div>
</div>
</td>
</tr>
</volist>
这里使用 模态框 让用户选择确定是否删除。。。
写在后面
这个简单的博客系统基本功能算是已经完善了,但是其中还有很多值得优化和修改的地方。。。比如有朋友建议的url优化等,在这里表示感谢,后续会继续优化,当然也会加入一些好玩的东西,其他的一些功能基本也就是增删改查,扩展起来应该不难。。。