Current File : /home/karenpetzb/application/modules/backoffice/controllers/Category2Controller.php |
<?php
class Backoffice_Category2Controller extends Modules_Backoffice_Controllers_MainController
{
function init()
{
$this->view->title = "Administration";
$this->view->currentMenu = "CategorySubs";
$this->isConnectedWithRole('isCategory');
$category = new Category2();
$this->view->listallcategories2 = $category->getAllCategoriesByID(0);
}
function indexAction()
{
$this->_forward('/list');
}
/*
* Duplicat de CategoryController
*/
function listAction()
{
$this->view->titlePage = "Gestion des cat�gories subsidiaires";
//Gestion des tris
$table = 'NOM';
$tri = 'ASC';
}
function delAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->getParam('id')) {
$id = (int)$this->_request->getParam('id');
if ($id > 0) {
try {
$category = new Category2();
if ($category->fetchRow('IDPARENT = '.$id)) {
$this->view->messageError = 'Cette cat�gorie est parente';
} else {
$productCategory2 = new ProductCategory2();
$select = $productCategory2->getAllProductsByCategoryID($id);
if (isset($select) && !empty($select)) {
$this->view->messageError = 'Cette cat�gorie est utilis�e par le produit : <b>'.$select[0]['NOM']."</b>";
} else {
$category->delete('ID = '.$id);
$this->delete_directory('items/category2/'.$id);
$this->view->messageSuccess = "La cat�gorie a et� supprim�e";
$this->log("La cat�gorie a et� supprim�e",'info');
}
}
}
catch (Zend_Exception $e) {
$this->view->messageError = $e->getMessage();
$this->log($e->getMessage(),'err');
}
}
}
$this->_forward('/list');
}
function editAction() {
$this->view->titlePage = "Modifier une cat�gorie subsidiaire";
//populate form
if ($this->_request->getParam('id')) { $id = (int)$this->_request->getParam('id'); }
if ($this->_request->getParam('idCat')) { $id = (int)$this->_request->getParam('idCat'); }
if ($id > 0) {
$category = new Category2();
$row = $category->fetchRow('ID = '.$id);
if ($row) {
$this->view->populateForm = $row->toArray();
$listCat = array();
$listCat = $category->getTreeCatsOf($id);
if (!empty($listCat) && !$listCat['SUBS']) {
$categoryTypeTri = new CategoryTypeTri();
$this->view->listNavigationTri = $categoryTypeTri->getListTriByCategoryInOneRow($id);
}
} else { $this->_forward('/list'); }
} else {
$this->_forward('/list');
}
}
function editcategoryAction()
{
$this->view->titlePage = "Modifier une cat�gorie subsidiaire";
$id = 0;
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
//get the form params
$params = $this->_request->getPost();
//Refractor the params
$data = array (
'NOM' => $filter->filter($params['nom']),
'IDPARENT' => $filter->filter($params['idparent']),
'DESCRIPTION' => $filter->filter($params['desc']),
'CHOICEDOC' => $filter->filter($params['docChoice'])
);
if ($validator->isValid($data['NOM'])) {
try {
$id = $params['id'];
$category = new Category2();
$category->update($data, 'ID = '.$id);
$this->view->messageSuccess = "La cat�gorie a �t� modifi�e";
if($this->uploadNewPics($id)) {
$this->view->messageSuccess .= " , l'image aussi";
}
if($this->uploadNewChoicePics($id)) {
$this->view->messageSuccess .= " , le comment choisir aussi";
}
$nbSubs = $category->updateTreeInLineAsPathOfChilds($id, true);
$this->view->messageSuccess .= " , ".$nbSubs." urls d'acc�s modifi�es.";
$this->log("La cat�gorie a �t� modifi�e : ".$id,'info');
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "La cat�gorie existe d�j�";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError = $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('/edit');
}
function customnavnomeditAction()
{
$this->view->titlePage = "Modifier une cat�gorie subsidiaire";
$id = 0;
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty())
-> addValidator(new Zend_Validate_StringLength(3));
//get the form params
$params = $this->_request->getPost();
$navnom = $this->verifyNavigationString($filter->filter($params['navnom']), $params['nom'], '');
$keywords = "";
if (isset($params['keywords']) && !empty($params['keywords'])) {
$keywords = $params['keywords'];
} else {
$navnomStrip = explode("-", $navnom);
for ($index = 0; $index < sizeof($navnomStrip); $index++) {
$word = $navnomStrip[$index];
if (empty($keywords)) {
if (strlen($word) > 3){ $keywords .= $word; }
} else {
if (strlen($word) > 3){ $keywords .= ",".$word; }
}
}
}
//Refractor the params
$data = array (
'NAVTITRENOM' => $filter->filter($params['navtitrenom']),
'NAVNOM' => $navnom,
'KEYWORDS' => $keywords,
'NAVDESCRIPTION' => $filter->filter($params['navdescription'])
);
if ($validator->isValid($data['NAVNOM']) &&
$validator->isValid($data['KEYWORDS'])) {
if (empty($data['NAVTITRENOM'])) {
$data['NAVTITRENOM'] = $filter->filter($params['nom']);
}
if (empty($data['NAVDESCRIPTION'])) {
$data['NAVDESCRIPTION'] = "";
}
try {
$id = $params['id'];
$category = new Category2();
if (isset($params['urlaccess']) && $params['idparent'] == 0) {
$data['NAVNOM_URLPARENTS'] = $this->verifyNavigationString('',$filter->filter($params['urlaccess']), '');
}
if (empty($data['NAVNOM_URLPARENTS'])) {
$data['NAVNOM_URLPARENTS'] = $category->getTreeInLineAsPathOf($id);
}
$category->update($data, 'ID = '.$id);
$nbSubs = $category->updateTreeInLineAsPathOfChilds($id, false);
$this->view->messageSuccess = "La cat�gorie a �t� modifi�e, ".$nbSubs." urls d'acc�s modifi�es.";
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "La cat�gorie existe d�j�";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('/edit');
}
function editactiveAction()
{
$this->view->titlePage = "Modifier une cat�gorie subsidiaire";
if ($this->_request->isPost()) {
//get the form params
$params = $this->_request->getPost();
//Refractor the params
$data = array (
'isACTIVE' => $params['active']
);
try {
$id = (int)$params['id'];
$category = new Category2();
$category->update($data, 'ID = '.$id);
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->log($e->getMessage(),'err');
}
}
$this->_forward('/edit');
}
function addAction()
{
$this->view->titlePage = "Ajouter une cat�gorie subsidiaire";
$this->view->messageSuccess = "";
$this->view->messageError = "";
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
//get the form params
$params = $this->_request->getPost();
$navnom = $this->verifyNavigationString($filter->filter($params['navnom']), $params['nom'], '');
$keywords = "";
if (isset($params['keywords']) && !empty($params['keywords'])) {
$keywords = $params['keywords'];
} else {
$navnomStrip = explode("-", $navnom);
for ($index = 0; $index < sizeof($navnomStrip); $index++) {
$word = $navnomStrip[$index];
if (empty($keywords)) {
if (strlen($word) > 3){ $keywords .= $word; }
} else {
if (strlen($word) > 3){ $keywords .= ",".$word; }
}
}
}
$data = array (
'NOM' => $filter->filter($params['nom']),
'NAVTITRENOM' => $filter->filter($params['nom']),
'DESCRIPTION' => $filter->filter($params['desc']),
'NAVDESCRIPTION' => $filter->filter($params['desc']),
'NAVNOM' => $navnom,
'KEYWORDS' => $keywords,
'IDPARENT' => $filter->filter($params['idparent'])
);
if ($validator->isValid($data['NOM']) &&
$validator->isValid($data['NAVNOM'])
) {
try {
$category = new Category2();
$data['NAVNOM_URLPARENTS'] = $category->getTreeInLineAsPathOf($data['IDPARENT']);
$category->insert($data);
//create items folder for pics
$lastid = $category->getAdapter()->lastInsertId();
if ($lastid > 0) {
mkdir ("items/category2/".$lastid, 0777);
$this->view->messageSuccess = "La cat�gorie a �t� ajout�e";
if($this->uploadNewPics($lastid)) {
$this->view->messageSuccess .= " , l'image a �t� upload�";
}
$this->log("La cat�gorie a �t� ajout�e",'info');
}
}
catch (Zend_Exception $e) {
$this->view->messageError = "La cat�gorie existe d�j�";
$this->log($e->getMessage(),'err');
$this->view->populateForm = $data;
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
$this->view->populateForm = $data;
}
}
}
function uploadNewPics($idCat) {
if(!empty($_FILES['picCat']) && !empty($_FILES['picCat']['name'])) {
$nomOrigine = $_FILES['picCat']['name'];
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = strtolower($elementsChemin['extension']);
$extensionsAutorisees = array("jpg", "jpeg", "gif", "png");
if (!(in_array($extensionFichier, $extensionsAutorisees))) {
$this->view->messageError = "Le fichier n'a pas l'extension attendue";
} else {
// Copie dans le repertoire du script avec un nom
// incluant l'heure a la seconde pres
$repertoireDestination = 'items/category2/'.$idCat.'/';
$this->checkDirectoryExist($repertoireDestination);
$nomDestination = $this->generateNavigationString($elementsChemin['filename']).".".$extensionFichier;
$fileoriginal = $repertoireDestination.$nomDestination;
if (move_uploaded_file($_FILES["picCat"]["tmp_name"],$fileoriginal)) {
try {
$category = new Category2();
$data = array (
'URL' => $fileoriginal
);
$category->update($data,'ID = '.$idCat);
//Resize picture
$info = getimagesize($fileoriginal) ;
list($width_old, $height_old) = $info;
$maxwidth = $this->FeaturePictureResizeWidth;
$maxheight = $this->FeaturePictureResizeHeight;
if ($width_old > $maxwidth || $height_old > $maxheight) {
Utils_Tool::smart_resize_image($fileoriginal , null, $maxwidth , $maxheight , true , $fileoriginal , true , false ,50 );
}
return true;
}
catch (Exception $e) {
$this->view->messageError = $e->getMessage();
return false;
}
} else {
$this->view->messageError = "Le fichier n'a pas �t� upload�";
}
}
}
return false;
}
function uploadNewChoicePics($idCat) {
if(!empty($_FILES['picChoice']) && !empty($_FILES['picChoice']['name'])) {
$nomOrigine = $_FILES['picChoice']['name'];
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = strtolower($elementsChemin['extension']);
$extensionsAutorisees = array("jpg", "jpeg", "gif", "png");
if (!(in_array($extensionFichier, $extensionsAutorisees))) {
$this->view->messageError = "Le fichier n'a pas l'extension attendue";
} else {
// Copie dans le repertoire du script avec un nom
// incluant l'heure a la seconde pres
$repertoireDestination = 'items/category_choice2/'.$idCat.'/';
$this->checkDirectoryExist($repertoireDestination);
$date = new Zend_Date();
//$nomDestination = $date->toString('dd-MM-YYYY_HH-mm-ss').".".$extensionFichier;
$nomDestination = $this->generateNavigationString($elementsChemin['filename']).".".$extensionFichier;
if (move_uploaded_file($_FILES["picChoice"]["tmp_name"],$repertoireDestination.$nomDestination)) {
try {
$category = new Category2();
$data = array (
'CHOICEURL' => $repertoireDestination.$nomDestination
);
$category->update($data,'ID = '.$idCat);
return true;
}
catch (Exception $e) {
$this->view->messageError = $e->getMessage();
return false;
}
} else {
$this->view->messageError = "Le fichier n'a pas �t� upload�";
}
}
}
return false;
}
function setpictureAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->isPost()) {
$params = $this->_request->getPost();
try {
$category = new Category2();
$data = array (
'URL' => $params['picture']
);
$category->update($data,'ID = '.$params['idCat']);
$this->view->messageSuccess = "L'image a �t� modifi�e";
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
$this->_forward('/edit');
}
function erasepictureAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->isPost()) {
$params = $this->_request->getPost();
try {
$category = new Category2();
unlink($params['picture']);
$data = array (
'URL' => ''
);
$category->update($data,"ID = ".$params['idCat']." AND URL = '".$params['picture']."'");
$this->view->messageSuccess = "L'image a �t� supprim�e d�finitivement";
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
$this->_forward('/edit');
}
function setpicturechoiceAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->isPost()) {
$params = $this->_request->getPost();
try {
$category = new Category2();
$data = array (
'CHOICEURL' => $params['picture']
);
$category->update($data,'ID = '.$params['idCat']);
$this->view->messageSuccess = "L'image a �t� modifi�e";
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
$this->_forward('/edit');
}
function erasepicturechoiceAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->isPost()) {
$params = $this->_request->getPost();
try {
$category = new Category2();
unlink($params['picture']);
$data = array (
'CHOICEURL' => ''
);
$category->update($data,"ID = ".$params['idCat']." AND CHOICEURL = '".$params['picture']."'");
$this->view->messageSuccess = "L'image a �t� supprim�e d�finitivement";
}
catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
$this->_forward('/edit');
}
}
?>