westdc-zf1/application/admin/controllers/NewsController.php

269 lines
7.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class Admin_NewsController extends Zend_Controller_Action
{
function preDispatch()
{
$this->db=Zend_Registry::get('db');
$this->view->config = Zend_Registry::get('config');
$this->messenger=$this->_helper->getHelper('FlashMessenger');
$this->view->messages = $this->messenger->getMessages();
$this->_helper->layout->setLayout('administry');//新UI
}
function postDispatch()
{
$this->view->messages = $this->messenger->getMessages();
}
function indexAction()
{
}//indexAction 首页
function newslistAction(){
$sql = "select n.*,c.title as catlog from news_archives n left join news_catlog c on n.typeid=c.id";
$rs = $this->db->query($sql);
$rows = $rs->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($this->view->config->page->max);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}//newslistAction 新闻列表
function catlogAction()
{
$add = $this->_request->getParam('add');
$submit = $this->_request->getParam('submit');
$delete = $this->_request->getParam('delete');
$edit = $this->_request->getParam('edit');
if($add)
{
if(empty($submit))
$this->_helper->viewRenderer('catlogadd');
else{
$title = $this->_request->getParam('ctitle');
$keyword = $this->_request->getParam('keyword');
$description = $this->_request->getParam('description');
$sql="insert into news_catlog (title,keyword,description) values ('$title','$keyword','$description')";
if($this->db->exec($sql) > 0)
{
$this->messenger->addMessage('提示信息:栏目添加成功!');
$this->_redirect('/admin/news/catlog');
}
}
}//栏目添加
if($delete>0)
{
$sql = "delete from news_catlog where id='$delete'";
if($this->db->exec($sql)>0)
{
$this->messenger->addMessage('提示信息:栏目删除成功!');
$this->_redirect('/admin/news/catlog');
}
}//栏目删除
if($edit>0)
{
$title = $this->_request->getParam('ctitle');
$keyword = $this->_request->getParam('keyword');
$description = $this->_request->getParam('description');
$displayorder = $this->_request->getParam('displayorder');
$sql="update news_catlog set title='$title',keyword='$keyword',description='$description',displayorder='$displayorder' where id='$edit'";
if($this->db->exec($sql)>0)
{
$this->messenger->addMessage('提示信息:栏目编辑成功!');
$this->_redirect('/admin/news/catlog');
}
}//栏目编辑
else
{
$sql="select * from news_catlog order by displayorder desc";
$re=$this->db->query($sql);
$catlogs=$re->fetchAll();
$this->view->catlogs=$catlogs;
}//栏目列表
}//栏目管理
function newsaddAction()
{
$id = $this->_request->getParam('id');
if($id>0)
{
$sql = "select id,title,pubtime,typeid from news_archives where id=$id";
$rs = $this->db->query($sql);
$rows = $rs->fetch();
if($rows['pubtime']>time())
{
$title = "{$rows['title']}》将在".date('Y-m-d H:i',$rows['pubtime'])."发布";
}
else
{
$title = "{$rows['title']}》发布成功!";
}
$this->view->title = $title;
$this->view->infos = $rows;
$this->_helper->viewRenderer('newsaddok');
}
$sql="select * from news_catlog order by displayorder desc";
$re = $this->db->query($sql);
$types = $re->fetchAll();
$this->view->types=$types;
}//newsadd 新闻添加
function archivesaddAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$datavar = array(
'title','writer','source','image','body','typeid','pub','pubtimer','pubtime','description','keyword'
);
foreach($_POST as $k=>$v)
{
if(in_array($k,$datavar))
{
$$k=$v;
}
}
$msg=array();
if(empty($title)) $msg[]="标题不能为空";
if(strlen($title)>40) $msg[]="标题长度不能超过40个字符";
if(strlen($writer)>50) $msg[]="作者长度不能超过50个字符";
if(strlen($keyword)>200) $msg[] = "关键词长度不能超过200个字符现在输入了".strlen($keyword)."个字符";
if(strlen($description)>200) $msg[] = "内容描述不能超过200个字符现在输入了".strlen($description)."个字符";
if(empty($body)) $msg[]="请填写内容";
if($typeid==0) $msg[]="请选择栏目";
if(count($msg)>0)
{
echo '<div class="box box-error">发布失败:</div>
<div class="box box-error-msg">
<ol>';
foreach ($msg as $v)
{
echo '<li>'.$v.'</li>';
}
echo'</ol>
</div>
';
}
else
{
if(!empty($pubtimer))
{
$pubtime = strtotime($pubtime);
}
else
{
$pubtime = time();
}
$date=array(
'title' => $title,
'writer' => $writer,
'keyword' => $keyword,
'description'=> $description,
'image' => $image,
'writetime' => time(),
'pubtime' => $pubtime,
'source' => $source,
'typeid' => $typeid,
'pub' => $pub,
'body' => $body
);
$sql = "INSERT INTO news_archives (title,writer,keyword,description,image,writetime,pubtime,source,typeid,pub)
VALUES ('{$date['title']}',
'{$date['writer']}',
'{$date['keyword']}',
'{$date['description']}',
'{$date['image']}',
'{$date['writetime']}',
'{$date['pubtime']}',
'{$date['source']}',
'{$date['typeid']}',
'{$date['pub']}')
RETURNING id
";
try{
$sth = $this->db->prepare($sql);
if($sth->execute())
{
$temp = $sth->fetch(PDO::FETCH_ASSOC);
$sql = "INSERT INTO news_archivesaddon (id,body) values ('{$temp['id']}','{$date['body']}')";
if($this->db->exec($sql)>0)
{
echo '<div class="box box-success">发布成功!</div><script>
setTimeout("self.location=\'/admin/news/newsadd/id/'.$temp['id'].'\'",500);
</script>';
}
else
{
$sql = "delete from news_archives where id={$temp['id']}";
$this->db->exec($sql);
echo '<div class="box box-success">发布失败!写入附加表出错,请联系管理员</div>';
}
}
}catch(Exception $e){
echo '<div class="box box-error">文章发布失败:</div>
<div class="box box-error-msg">
<ol>
<li>'.$e->getMessage().'</li>
</ol>
</div>';
}
}
/*
<div class="box box-info">Info box sample</div>
<div class="box box-warning">Warning box sample</div>
<div class="box box-error">Error box sample</div>
<div class="box box-error-msg">
<ol>
<li>Credit card number entered is invalid</li>
<li>Credit card verification number must be a valid number</li>
</ol>
</div>
<div class="box box-success">Success box sample</div>
*/
}
}