import v1.1.0_beta1 | 2009-08-21
This commit is contained in:
98
modules/news/controllers/EditController.php
Normal file
98
modules/news/controllers/EditController.php
Normal file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2005-2009 Keyboard Monkeys Ltd. http://www.kb-m.com
|
||||
* @license http://creativecommons.org/licenses/BSD/ BSD License
|
||||
* @author Keyboard Monkey Ltd
|
||||
* @since CommunityID 0.9
|
||||
* @package CommunityID
|
||||
* @packager Keyboard Monkeys
|
||||
*/
|
||||
|
||||
class News_EditController extends CommunityID_Controller_Action
|
||||
{
|
||||
protected $_numCols = 2;
|
||||
|
||||
public function indexAction()
|
||||
{
|
||||
$appSession = Zend_Registry::get('appSession');
|
||||
if (isset($appSession->articleForm)) {
|
||||
$this->view->articleForm = $appSession->articleForm;
|
||||
unset($appSession->articleForm);
|
||||
} else {
|
||||
$this->view->articleForm = new News_Form_Article();
|
||||
$news = new News_Model_News();
|
||||
if ($this->_getParam('id') && ($article = $news->getRowInstance($this->_getParam('id')))) {
|
||||
$this->view->articleForm->populate(array(
|
||||
'title' => $article->title,
|
||||
'date' => $article->date,
|
||||
'excerpt' => $article->excerpt,
|
||||
'content' => $article->content,
|
||||
));
|
||||
$this->view->articleId = $article->id;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_helper->actionStack('index', 'login', 'users');
|
||||
}
|
||||
|
||||
public function addAction()
|
||||
{
|
||||
$this->_forward('index');
|
||||
}
|
||||
|
||||
public function saveAction()
|
||||
{
|
||||
$form = new News_Form_Article();
|
||||
$formData = $this->_request->getPost();
|
||||
$form->populate($formData);
|
||||
|
||||
if (!$form->isValid($formData)) {
|
||||
$appSession = Zend_Registry::get('appSession');
|
||||
$appSession->articleForm = $form;
|
||||
$this->_forward('index');
|
||||
return;
|
||||
}
|
||||
|
||||
$news = new News_Model_News();
|
||||
if ($this->_getParam('id')) {
|
||||
if (!$article = $news->getRowInstance($this->_getParam('id'))) {
|
||||
$this->_helper->FlashMessenger->addMessage('Article doesn\'t exist.');
|
||||
$this->_redirect('/news');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
$article = $news->createRow();
|
||||
}
|
||||
|
||||
|
||||
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
|
||||
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
$purifier = new HTMLPurifier($config);
|
||||
$cleanHtml = $purifier->purify($form->getValue('content'));
|
||||
|
||||
$article->title = $form->getValue('title');
|
||||
$article->date = $form->getValue('date');
|
||||
$article->excerpt = $form->getValue('excerpt');
|
||||
$article->content = $cleanHtml;
|
||||
$article->save();
|
||||
|
||||
$this->_helper->FlashMessenger->addMessage('The article has been saved.');
|
||||
|
||||
$this->_redirect('/news');
|
||||
}
|
||||
|
||||
public function deleteAction()
|
||||
{
|
||||
$news = new News_Model_News();
|
||||
if (!$article = $news->getRowInstance($this->_getParam('id'))) {
|
||||
$this->_helper->FlashMessenger->addMessage('The article doesn\'t exist.');
|
||||
} else {
|
||||
$article->delete();
|
||||
$this->_helper->FlashMessenger->addMessage('The article has been deleted.');
|
||||
}
|
||||
|
||||
$this->_redirect('/news');
|
||||
}
|
||||
}
|
23
modules/news/controllers/IndexController.php
Normal file
23
modules/news/controllers/IndexController.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2005-2009 Keyboard Monkeys Ltd. http://www.kb-m.com
|
||||
* @license http://creativecommons.org/licenses/BSD/ BSD License
|
||||
* @author Keyboard Monkey Ltd
|
||||
* @since CommunityID 0.9
|
||||
* @package CommunityID
|
||||
* @packager Keyboard Monkeys
|
||||
*/
|
||||
|
||||
class News_IndexController extends CommunityID_Controller_Action
|
||||
{
|
||||
public function indexAction()
|
||||
{
|
||||
$news = new News_Model_News();
|
||||
|
||||
$this->view->paginator = $news->getArticlesPaginator(News_Model_News::RECORDS_PER_PAGE,
|
||||
$this->_getParam('page', 0), $this->user);
|
||||
|
||||
$this->_helper->actionStack('index', 'login', 'users');
|
||||
}
|
||||
}
|
25
modules/news/controllers/ViewController.php
Normal file
25
modules/news/controllers/ViewController.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2005-2009 Keyboard Monkeys Ltd. http://www.kb-m.com
|
||||
* @license http://creativecommons.org/licenses/BSD/ BSD License
|
||||
* @author Keyboard Monkey Ltd
|
||||
* @since CommunityID 0.9
|
||||
* @package CommunityID
|
||||
* @packager Keyboard Monkeys
|
||||
*/
|
||||
|
||||
class News_ViewController extends CommunityID_Controller_Action
|
||||
{
|
||||
public function indexAction()
|
||||
{
|
||||
$news = new News_Model_News();
|
||||
$this->view->article = $news->getRowInstance($this->_getParam('id'));
|
||||
|
||||
if ($this->view->article->date > date('Y-m-d H:i:s') && $this->user->role != Users_Model_User::ROLE_ADMIN) {
|
||||
throw new Monkeys_AccessDeniedException();
|
||||
}
|
||||
|
||||
$this->_helper->actionStack('index', 'login', 'users');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user