Init
This commit is contained in:
86
simpla/ServicesAdmin.php
Normal file
86
simpla/ServicesAdmin.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
require_once('api/Simpla.php');
|
||||
|
||||
class ServicesAdmin extends Simpla
|
||||
{
|
||||
public function fetch()
|
||||
{
|
||||
if ($this->request->method('post')) {
|
||||
|
||||
$ids = $this->request->post('check');
|
||||
if (is_array($ids)) {
|
||||
// Действия с выбранными
|
||||
switch ($this->request->post('action')) {
|
||||
case 'disable':
|
||||
foreach ($ids as $id)
|
||||
$this->services->set_visible($id, 0);
|
||||
break;
|
||||
case 'enable':
|
||||
foreach ($ids as $id)
|
||||
$this->services->set_visible($id, 1);
|
||||
break;
|
||||
case 'delete':
|
||||
$this->services->delete($ids);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$filters = array();
|
||||
|
||||
// фильтры
|
||||
$filter = $this->request->get('filter', 'string');
|
||||
if (!empty($filter) && in_array($filter, array('disabled', 'enabled'))) {
|
||||
$filters['visible'] = intval($filter === 'enabled');
|
||||
$this->design->assign('filter', $filter);
|
||||
} elseif('branded' === $filter) {
|
||||
$filters[$filter] = $filter;
|
||||
$this->design->assign('filter', $filter);
|
||||
} elseif('home' === $filter) {
|
||||
$filters['show_home'] = 1;
|
||||
$this->design->assign('filter', $filter);
|
||||
} elseif('main' === $filter) {
|
||||
$filters['show_service'] = 1;
|
||||
$this->design->assign('filter', $filter);
|
||||
}
|
||||
if ($brand_id = $this->request->get('brand_id', 'integer')) {
|
||||
$filters['brand_id'] = $brand_id;
|
||||
$this->design->assign('brand_id', $brand_id);
|
||||
}
|
||||
if ($parent = $this->request->get('parent', 'integer')) {
|
||||
$filters['parent'] = $parent;
|
||||
$this->design->assign('parent', $parent);
|
||||
}
|
||||
|
||||
// Поиск
|
||||
$keyword = $this->request->get('keyword');
|
||||
if (!empty($keyword) && is_string($keyword)) {
|
||||
$filters['keyword'] = $keyword;
|
||||
$this->design->assign('keyword', $keyword);
|
||||
}
|
||||
|
||||
// сортировка
|
||||
$sort_order = $this->request->get('sort', 'string');
|
||||
$filters['order'] = empty($sort_order) ? 'header' : $sort_order;
|
||||
|
||||
// постраничная навигация
|
||||
$filters['page'] = max(1, $this->request->get('page', 'integer'));
|
||||
$filters['limit'] = ($this->request->get('page') === 'all') ? 1000 : 20;
|
||||
|
||||
$services_count = $this->services->count($filters);
|
||||
$services = $this->services->all($filters, true);
|
||||
|
||||
$this->design->assign('pages_count', ceil($services_count / $filters['limit']));
|
||||
$this->design->assign('current_page', $filters['page']);
|
||||
$this->design->assign('sort', $filters['order']);
|
||||
$this->design->assign('services', $services);
|
||||
$this->design->assign('services_count', $services_count);
|
||||
$this->design->assign('brands', $this->services->get_all_brands());
|
||||
$this->design->assign('tree', $this->services->get_tree());
|
||||
$this->design->assign('root_url', $this->services->get_root_url());
|
||||
|
||||
return $this->design->fetch('services.tpl');
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user