104 lines
3.2 KiB
PHP
104 lines
3.2 KiB
PHP
|
|
<?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');
|
|||
|
|
}
|
|||
|
|
}
|