public function reOrderPositions() { $id_slide = $this->id; // $context = Context::getContext(); // $id_shop = $context->shop->id; $max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT MAX(hss.`position`) as position FROM `' . _DB_PREFIX_ . 'pssliderlayer_slides` hss WHERE hss.`id_group` = ' . $this->id_group); if ((int) $max == (int) $id_slide) { return true; } $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hss.`position` as position, hss.`id_pssliderlayer_slides` as id_slide FROM `' . _DB_PREFIX_ . 'pssliderlayer_slides` hss WHERE hss.`id_group` = ' . (int) $this->id_group . ' AND hss.`position` > ' . (int) $this->position); foreach ($rows as $row) { $current_slide = new PsSliderSlide($row['id_slide']); --$current_slide->position; $current_slide->update(); unset($current_slide); } return true; }
public function importGroup() { $type = Tools::strtolower(Tools::substr(strrchr($_FILES['import_file']['name'], '.'), 1)); if (isset($_FILES['import_file']) && $type == 'txt' && isset($_FILES['import_file']['tmp_name']) && !empty($_FILES['import_file']['tmp_name'])) { include_once _PS_MODULE_DIR_ . 'pssliderlayer/grouplayer.php'; include_once _PS_MODULE_DIR_ . 'pssliderlayer/sliderlayer.php'; $content = Tools::file_get_contents($_FILES['import_file']['tmp_name']); $content = Tools::jsonDecode(PsSliderSlide::base64Decode($content), true); $languageField = array('title', 'link', 'image', 'thumbnail', 'video', 'layersparams'); $languages = Language::getLanguages(); $langList = array(); foreach ($languages as $lang) { $langList[$lang['iso_code']] = $lang['id_lang']; } $override_group = Tools::getValue('override_group'); //override or edit if ($override_group && PsSliderGroup::groupExists($content['id_pssliderlayer_groups'])) { $group = new PsSliderGroup($content['id_pssliderlayer_groups']); //edit group $group = $this->setDataForGroup($group, $content); if (!$group->update()) { return false; } PsSliderGroup::deleteAllSlider($content['id_pssliderlayer_groups']); foreach ($content['sliders'] as $slider) { $obj = new PsSliderSlide(); foreach ($slider as $key => $val) { if (in_array($key, $languageField)) { foreach ($val as $keyLang => $valLang) { $obj->{$key}[$langList[$keyLang]] = $valLang; } } else { $obj->{$key} = $val; } } $obj->id_group = $group->id; if (isset($slider['id']) && $slider['id'] && PsSliderSlide::sliderExist($slider['id'])) { $obj->update(); } else { $obj->add(); } } } else { $group = new PsSliderGroup(); $group = $this->setDataForGroup($group, $content); if (!$group->add()) { return false; } foreach ($content['sliders'] as $slider) { $obj = new PsSliderSlide(); foreach ($slider as $key => $val) { if (in_array($key, $languageField)) { foreach ($val as $keyLang => $valLang) { $obj->{$key}[$langList[$keyLang]] = $valLang; } } else { $obj->{$key} = $val; } } $obj->id_group = $group->id; $obj->id = 0; $obj->add(); } } //add new //return true; } Tools::redirectAdmin('index.php?controller=AdminModules&token=' . Tools::getAdminTokenLite('AdminModules') . '&configure=pssliderlayer&tab_module=prestabrain&module_name=pssliderlayer&conf=4'); //return false; }
private function _postProcess() { $errors = array(); /* Processes Slider */ if (Tools::isSubmit('submitGroup')) { /* Sets ID if needed */ if (Tools::getValue('id_group')) { $group = new PsSliderGroup((int) Tools::getValue('id_group')); if (!Validate::isLoadedObject($group)) { $this->_html .= $this->displayError($this->l('Invalid id_group')); return; } } else { $group = new PsSliderGroup(); } /* Sets position */ $group->title = Tools::getValue('title_group'); /* Sets active */ $group->active = (int) Tools::getValue('active_group'); $context = Context::getContext(); $group->id_shop = $context->shop->id; $group->hook = Tools::getValue('hook_group'); $params = Tools::getValue('group'); $group->params = PsSliderSlide::base64Encode(Tools::jsonEncode($params)); /* Adds */ if (!Tools::getValue('id_group')) { if (!$group->add()) { $errors[] = $this->displayError($this->l('The group could not be added.')); } else { $this->clearCache(); Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&editgroup=1&id_group=' . $group->id); } } else { if (!$group->update()) { $errors[] = $this->displayError($this->l('The group could not be updated.')); } else { $this->clearCache(); Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&editgroup=1&id_group=' . $group->id); } } //save in config to edit next time $this->clearCache(); } elseif (Tools::isSubmit('changeGStatus') && Tools::isSubmit('id_group')) { $group = new PsSliderGroup((int) Tools::getValue('id_group')); if ($group->active == 0) { $group->active = 1; } else { $group->active = 0; } $res = $group->update(); $this->clearCache(); $this->_html .= $res ? $this->displayConfirmation($this->l('Change status of group was successful')) : $this->displayError($this->l('The configuration could not be updated.')); } elseif (Tools::isSubmit('deletegroup')) { $group = new PsSliderGroup((int) Tools::getValue('id_group')); //delete slider of group $slider = $this->getSlides((int) Tools::getValue('id_group')); foreach ($slider as $value) { $sliderObj = new PsSliderSlide($value['id_pssliderlayer_slides']); $sliderObj->delete(); } $res = $group->delete(); $this->clearCache(); if (!$res) { $this->_html .= $this->displayError('Could not delete'); } else { $this->_html .= $this->displayConfirmation($this->l('Group deleted')); } Tools::redirectAdmin('index.php?controller=AdminModules&token=' . Tools::getAdminTokenLite('AdminModules') . '&configure=pssliderlayer&tab_module=prestabrain&module_name=pssliderlayer&conf=4'); } else { if (Tools::isSubmit('changeStatus')) { $slide = new PsSliderSlide((int) Tools::getValue('sslider')); if ($slide->active == 0) { $slide->active = 1; } else { $slide->active = 0; } $res = $slide->update(); $this->clearCache(); $this->_html .= $res ? $this->displayConfirmation($this->l('Change status of slide was successful')) : $this->displayError($this->l('The configuration could not be updated.')); } } /* Display errors if needed */ if (count($errors)) { $this->_html .= $this->displayError(implode('<br />', $errors)); } elseif (Tools::isSubmit('submitGroup')) { $this->_html .= $this->displayConfirmation($this->l('Slide added')); } elseif (Tools::isSubmit('submitGroup')) { $this->_html .= $this->displayConfirmation($this->l('Slide added')); } }