Example #1
0
    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_ . 'leosliderlayer_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_leosliderlayer_slides` as id_slide
			FROM `' . _DB_PREFIX_ . 'leosliderlayer_slides` hss
			WHERE hss.`id_group` = ' . (int) $this->id_group . ' AND hss.`position` > ' . (int) $this->position);
        foreach ($rows as $row) {
            $current_slide = new SliderLayer($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_ . 'leosliderlayer/grouplayer.php';
         include_once _PS_MODULE_DIR_ . 'leosliderlayer/sliderlayer.php';
         $content = Tools::file_get_contents($_FILES['import_file']['tmp_name']);
         $content = Tools::jsonDecode(SliderLayer::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 && LeoSliderGroup::groupExists($content['id_leosliderlayer_groups'])) {
             $group = new LeoSliderGroup($content['id_leosliderlayer_groups']);
             //edit group
             $group = $this->setDataForGroup($group, $content);
             if (!$group->update()) {
                 return false;
             }
             LeoSliderGroup::deleteAllSlider($content['id_leosliderlayer_groups']);
             foreach ($content['sliders'] as $slider) {
                 $obj = new SliderLayer();
                 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'] && SliderLayer::sliderExist($slider['id'])) {
                     $obj->update();
                 } else {
                     $obj->add();
                 }
             }
         } else {
             $group = new LeoSliderGroup();
             $group = $this->setDataForGroup($group, $content);
             if (!$group->add()) {
                 return false;
             }
             foreach ($content['sliders'] as $slider) {
                 $obj = new SliderLayer();
                 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=leosliderlayer&tab_module=leotheme&module_name=leosliderlayer&conf=4');
     //return false;
 }
Example #3
0
 private function _postProcess()
 {
     $errors = array();
     /* Processes Slider */
     if (Tools::isSubmit('submitGroup')) {
         /* Sets ID if needed */
         if (Tools::getValue('id_group')) {
             $group = new LeoSliderGroup((int) Tools::getValue('id_group'));
             if (!Validate::isLoadedObject($group)) {
                 $this->_html .= $this->displayError($this->l('Invalid id_group'));
                 return;
             }
         } else {
             $group = new LeoSliderGroup();
         }
         /* 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 = SliderLayer::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 LeoSliderGroup((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 LeoSliderGroup((int) Tools::getValue('id_group'));
         //delete slider of group
         $slider = $this->getSlides((int) Tools::getValue('id_group'));
         foreach ($slider as $value) {
             $sliderObj = new SliderLayer($value['id_leosliderlayer_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=leosliderlayer&tab_module=leotheme&module_name=leosliderlayer&conf=4');
     } else {
         if (Tools::isSubmit('changeStatus')) {
             $slide = new SliderLayer((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'));
     }
 }