context= Context::getContext();
$this->bootstrap = true;
}
public function init()
{
parent::init();
if(Tools::isSubmit('save_category'))
{
if($id_category = (int)Tools::getValue('itemId'))
{
$category = new Ets_blog_category($id_category);
}
else
$category = new Ets_blog_category();
$result = $category->saveData();
if(isset($result['errors']) && $result['errors'])
$this->module->_errors = $result['errors'];
elseif(isset($result['success']) && $result['success'])
{
$this->context->cookie->success_message = $result['success'];
$this->context->cookie->link_view = $this->module->getLink('blog',array('id_category' => $category->id));
Tools::redirectAdmin($this->context->link->getAdminLink('AdminEtsBlogCategory').'&id_parent='.$category->id_parent);
}
}
if(Tools::isSubmit('change_enabled') && ($id_category = (int)Tools::getValue('id_category')))
{
$category = new Ets_blog_category($id_category);
$category->enabled = (int)Tools::getValue('change_enabled');
if($category->update())
{
$this->context->cookie->success_message = $this->l('Changed status successfully');
Tools::redirectAdmin($this->context->link->getAdminLink('AdminEtsBlogCategory').'&id_parent='.$category->id_parent);
}
}
if(Tools::isSubmit('delCategoryimage') && ($id_lang = (int)Tools::getValue('id_lang')) && ($id_category = (int)Tools::getValue('id_category')))
{
$category = new Ets_blog_category($id_category);
$old_image = $category->image[$id_lang];
$category->image[$id_lang] = '';
if($category->update())
{
if(!in_array($old_image,$category->image))
@unlink(_PS_ETS_BLOG_IMG_DIR_.'category/'.$old_image);
$this->context->cookie->success_message = $this->l('Deleted image successfully');
Tools::redirectAdmin($this->context->link->getAdminLink('AdminEtsBlogCategory').'&editcategory=1&id_category='.$category->id);
}
}
if(Tools::isSubmit('delCategoryThumb') && ($id_lang = (int)Tools::getValue('id_lang')) && ($id_category = (int)Tools::getValue('id_category')))
{
$category = new Ets_blog_category($id_category);
$old_thumb = $category->thumb[$id_lang];
$category->thumb[$id_lang] = '';
if($category->update())
{
if(!in_array($old_thumb,$category->thumb))
@unlink(_PS_ETS_BLOG_IMG_DIR_.'category/'.$old_thumb);
$this->context->cookie->success_message = $this->l('Deleted thumbnail successfully');
Tools::redirectAdmin($this->context->link->getAdminLink('AdminEtsBlogCategory').'&editcategory=1&id_category='.$category->id);
}
}
if(Tools::isSubmit('del') && ($id_category = (int)Tools::getValue('id_category')))
{
$category = new Ets_blog_category($id_category);
if($category->delete())
{
$this->context->cookie->success_message = $this->l('Deleted category successfully');
Tools::redirectAdmin($this->context->link->getAdminLink('AdminEtsBlogCategory').'&id_parent='.$category->id_parent);
}
}
}
public function renderList()
{
$html ='';
if($this->context->cookie->success_message)
{
$html .= $this->module->displayConfirmation($this->context->cookie->success_message,$this->l('View category'));
$this->context->cookie->success_message ='';
}
if($this->module->_errors)
$html .= $this->module->displayError($this->module->_errors);
$this->context->smarty->assign(
array(
'ets_blog_sidebar' => $this->module->renderSideBar(),
'ets_blog_content' => $this->renderCategories(),
)
);
return $html.$this->module->display(_PS_MODULE_DIR_.$this->module->name.DIRECTORY_SEPARATOR.$this->module->name.'.php', 'admin.tpl');
}
public function renderCategories()
{
if(Tools::isSubmit('addNewCategory') || (Tools::isSubmit('editcategory') && ($id_category = Tools::getValue('id_category'))) )
{
if(isset($id_category) && $id_category)
$category = new Ets_blog_category($id_category);
else
$category = new Ets_blog_category();
return $category->renderForm();
}
$fields_list = array(
'id_category' => array(
'title' => $this->l('Id'),
'width' => 40,
'type' => 'text',
'sort' => true,
'filter' => true,
),
'thumb_link'=>array(
'title'=> $this->l('Image'),
'type' => 'text',
'strip_tag'=>false,
),
'title' => array(
'title' => $this->l('Name'),
'type' => 'text',
'sort' => true,
'filter' => true
),
'description' => array(
'title' => $this->l('Description'),
'type' => 'text',
'sort' => true,
'filter' => true
),
'sort_order' => array(
'title' => $this->l('Sort order'),
'type' => 'text',
'sort' => true,
'filter' => true,
'update_position' => true,
),
'enabled' => array(
'title' => $this->l('Enabled'),
'type' => 'active',
'sort' => true,
'filter' => true,
'strip_tag' => false,
'filter_list' => array(
'id_option' => 'enabled',
'value' => 'title',
'list' => array(
0 => array(
'enabled' => 1,
'title' => $this->l('Yes')
),
1 => array(
'enabled' => 0,
'title' => $this->l('No')
)
)
)
),
);
//Filter
$filter = "";
if(($idCategory = trim(Tools::getValue('id_category')))!='' && Validate::isCleanHtml($idCategory))
$filter .= " AND c.id_category = ".(int)$idCategory;
if(($sort_order = trim(Tools::getValue('sort_order')))!='' && Validate::isCleanHtml($sort_order))
$filter .= " AND c.sort_order = ".(int)trim(urldecode(Tools::getValue('sort_order')));
if(($title = trim(Tools::getValue('title')))!='' && Validate::isCleanHtml($title))
$filter .= " AND cl.title like '%".pSQL($title)."%'";
if(($description =trim(Tools::getValue('description')))!='' && Validate::isCleanHtml($description))
$filter .= " AND cl.description like '%".pSQL($description)."%'";
if(($enabled = trim(Tools::getValue('enabled')))!='' && Validate::isCleanHtml($enabled))
$filter .= " AND c.enabled =".(int)Tools::getValue('enabled');
if($filter)
$show_reset = true;
else
$show_reset =false;
//Sort
$sort = "";
$sort_post = Tools::strtolower(trim(Tools::getValue('sort')));
$sort_type = Tools::strtolower(Tools::getValue('sort_type','desc'));
if(!in_array($sort_type,array('desc','asc')))
$sort_type ='desc';
if($sort_post && isset($fields_list[$sort_post]))
{
$sort .= $sort_post." ".($sort_type=='asc' ? ' ASC ' :' DESC ')." , ";
}
else
$sort = "c.sort_order ASC,";
//Paggination
$id_parent = (int)Tools::getValue('id_parent');
$page = (int)Tools::getValue('page');
if($page<=1)
$page =1;
$totalRecords = (int)Ets_blog_category::countCategoriesWithFilter($filter,$id_parent);
$paggination = new Ets_blog_paggination_class();
$paggination->total = $totalRecords;
$paggination->url = $this->context->link->getAdminLink('AdminEtsBlogCategory', true).($id_parent ? '&id_parent='.(int)$id_parent:'').'&page=_page_'.$this->module->getUrlExtra($fields_list);
$paggination->limit = (int)Tools::getValue('paginator_category_select_limit',20);
$paggination->name ='category';
$totalPages = ceil($totalRecords / $paggination->limit);
if($page > $totalPages)
$page = $totalPages;
$paggination->page = $page;
$start = $paggination->limit * ($page - 1);
if($start < 0)
$start = 0;
$categories = Ets_blog_category::getCategoriesWithFilter($filter, $sort, $start, $paggination->limit,$id_parent);
if($categories)
{
foreach($categories as &$cat)
{
$cat['view_url'] = $this->module->getLink('blog',array('id_category' => $cat['id_category']));
if(Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'ets_blog_category` WHERE id_parent='.(int)$cat['id_category']))
{
$cat['child_view_url'] = $this->context->link->getAdminLink('AdminEtsBlogCategory', true).'&id_parent='.(int)$cat['id_category'];
}
if($cat['thumb'] && file_exists(_PS_ETS_BLOG_IMG_DIR_.'category/'.$cat['thumb']))
$cat['thumb_link'] = '
';
elseif($cat['image'] && file_exists(_PS_ETS_BLOG_IMG_DIR_.'category/'.$cat['image']))
$cat['thumb_link'] = '
';
else
$cat['thumb_link']='';
}
}
$paggination->text = $this->l('Showing {start} to {end} of {total} ({pages} Pages)');
$paggination->style_links = $this->l('links');
$paggination->style_results = $this->l('results');
$thumb='';
$lever=0;
$listData = array(
'name' => 'category',
'actions' => array('edit','view', 'delete'),
'currentIndex' => $this->context->link->getAdminLink('AdminEtsBlogCategory').($id_parent ? '&id_parent='.(int)$id_parent:'').($paggination->limit!=20 ? '&paginator_post_select_limit='.$paggination->limit:''),
'postIndex' => $this->context->link->getAdminLink('AdminEtsBlogCategory').($id_parent ? '&id_parent='.(int)$id_parent:''),
'identifier' => 'id_category',
'show_toolbar' => true,
'show_action' => true,
'title' => ($id_parent ? $this->module->displayText($this->l('Categories'),'a',null,null,$this->context->link->getAdminLink('AdminEtsBlogCategory', true)) :$this->l('Categories')). ( $id_parent ? $this->getThumbCategory($id_parent,$thumb,$lever):''),
'fields_list' => $fields_list,
'field_values' => $categories,
'paggination' => $paggination->render(),
'filter_params' => $this->module->getFilterParams($fields_list),
'show_reset' => $show_reset,
'totalRecords' => $totalRecords,
'preview_link' => false,// $this->getLink('blog'),
'sort' => $sort_post ? : 'id_category',
'sort_type' => $sort_type,
'show_add_new' => true,
'link_new' => $this->context->link->getAdminLink('AdminEtsBlogCategory').'&addNewCategory'
);
return $this->module->renderList($listData);
}
public function getThumbCategory($id_category,&$thumb,&$lever)
{
$category = new Ets_blog_category($id_category,$this->context->language->id);
if($lever>=1)
$thumb = ' > '.$this->module->displayText($category->title,'a',null,null,$this->context->link->getAdminLink('AdminEtsBlogCategory')).$thumb;
else
$thumb = ' > '.$category->title.$thumb;
$lever++;
if($category->id_parent)
$this->getThumbCategory($category->id_parent,$thumb,$lever);
return $thumb;
}
}