Init
This commit is contained in:
103
simpla/ArticlesAdmin.php
Normal file
103
simpla/ArticlesAdmin.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Simpla CMS
|
||||
*
|
||||
* @copyright 2011 Denis Pikusov
|
||||
* @link http://simplacms.ru
|
||||
* @author Denis Pikusov
|
||||
*
|
||||
*/
|
||||
|
||||
require_once('api/Simpla.php');
|
||||
|
||||
class ArticlesAdmin extends Simpla
|
||||
{ private $allowed_image_extentions = array('png', 'gif', 'jpg', 'jpeg', 'ico');
|
||||
|
||||
public function fetch()
|
||||
{
|
||||
$filter = array();
|
||||
|
||||
// Категории
|
||||
$categories = $this->articles->get_categories_tree();
|
||||
$this->design->assign('categories', $categories);
|
||||
|
||||
// Текущая категория
|
||||
$category_id = $this->request->get('category_id', 'integer');
|
||||
if($category_id && $category = $this->articles->get_category($category_id)) {
|
||||
$filter['category_id'] = $category->children;
|
||||
$this->design->assign('category', $category);
|
||||
}
|
||||
|
||||
// Обработка действий
|
||||
if($this->request->method('post'))
|
||||
{
|
||||
// Действия с выбранными
|
||||
$ids = $this->request->post('check');
|
||||
if(is_array($ids))
|
||||
switch($this->request->post('action'))
|
||||
{
|
||||
case 'disable':
|
||||
{
|
||||
$this->articles->update_article($ids, array('visible'=>0));
|
||||
break;
|
||||
}
|
||||
case 'enable':
|
||||
{
|
||||
$this->articles->update_article($ids, array('visible'=>1));
|
||||
break;
|
||||
}
|
||||
case 'delete':
|
||||
{
|
||||
foreach($ids as $id)
|
||||
$this->articles->delete_article($id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Удаление изображения
|
||||
|
||||
if($this->request->post('delete_image'))
|
||||
{
|
||||
$this->articles->delete_image($post->id);
|
||||
}
|
||||
// Загрузка изображения
|
||||
$image = $this->request->files('image');
|
||||
if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions))
|
||||
{
|
||||
if ($image_name = $this->image->upload_image($image['tmp_name'], $image['name']))
|
||||
{
|
||||
$this->articles->delete_image($post->id);
|
||||
$this->articles->update_articles($post->id, array('image'=>$image_name));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->design->assign('error', 'error uploading image');
|
||||
}
|
||||
}
|
||||
$post = $this->articles->get_articles(intval($post->id));
|
||||
|
||||
$filter['page'] = max(1, $this->request->get('page', 'integer'));
|
||||
$filter['limit'] = 20;
|
||||
|
||||
// Поиск
|
||||
$keyword = $this->request->get('keyword', 'string');
|
||||
if(!empty($keyword))
|
||||
{
|
||||
$filter['keyword'] = $keyword;
|
||||
$this->design->assign('keyword', $keyword);
|
||||
}
|
||||
|
||||
$articles = $this->articles->get_articles($filter);
|
||||
$articles_count = $this->articles->count_articles($filter);
|
||||
|
||||
$this->design->assign('articles_count', $articles_count);
|
||||
|
||||
$this->design->assign('pages_count', ceil($articles_count/$filter['limit']));
|
||||
$this->design->assign('current_page', $filter['page']);
|
||||
|
||||
$this->design->assign('articles', $articles);
|
||||
return $this->design->fetch('articles.tpl');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user