Beispiel #1
0
    public function add($autodate = true, $null_values = false)
    {
        $this->position = Btmegamenu::getLastPosition((int) $this->id_parent);
        $this->level_depth = $this->calcLevelDepth();
        $context = Context::getContext();
        $id_shop = $context->shop->id;
        $res = parent::add($autodate, $null_values);
        $res &= Db::getInstance()->execute('
			INSERT INTO `' . _DB_PREFIX_ . 'btmegamenu_shop` (`id_shop`, `id_btmegamenu`)
			VALUES(' . (int) $id_shop . ', ' . (int) $this->id . ')');
        $this->cleanPositions($this->id_parent);
        return $res;
    }
 /**
  * render content info
  */
 public function getContent()
 {
     //        $resultCheck = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT `id_btmegamenu` as id FROM `' . _DB_PREFIX_ . 'btmegamenu_shop` WHERE `id_btmegamenu` = 1 AND `id_shop`=' . (int) ($this->context->shop->id));
     //        if ($resultCheck["id"] != 1){
     //            Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'btmegamenu_shop`(`id_btmegamenu`,`id_shop`) VALUES( 1, '.(int)$this->context->shop->id.' )');
     //        }
     $output = '';
     $this->_html .= $this->headerHTML();
     $this->_html .= '<h2>' . $this->displayName . '.</h2>';
     /* update tree megamenu positions */
     if (Tools::getValue('doupdatepos') && Tools::isSubmit('updatePosition')) {
         $list = Tools::getValue('list');
         $root = 1;
         $child = array();
         foreach ($list as $id => $parent_id) {
             if ($parent_id <= 0) {
                 # validate module
                 $parent_id = $root;
             }
             $child[$parent_id][] = $id;
         }
         $res = true;
         foreach ($child as $id_parent => $menus) {
             $i = 0;
             foreach ($menus as $id_btmegamenu) {
                 $sql = 'UPDATE `' . _DB_PREFIX_ . 'btmegamenu` SET `position` = ' . (int) $i . ', id_parent = ' . (int) $id_parent . ' 
                         WHERE `id_btmegamenu` = ' . (int) $id_btmegamenu;
                 $res &= Db::getInstance()->execute($sql);
                 $i++;
             }
         }
         $this->clearCache();
         die($this->l('Update Positions Done'));
     }
     if (Tools::getValue('show_cavas') && Tools::isSubmit('updatecavas')) {
         $show = Tools::getValue('show') ? Tools::getValue('show') : 0;
         if (Configuration::updateValue('LEO_MEGAMENU_CAVAS', $show)) {
             $this->clearCache();
             die($this->l('Update Done'));
         } else {
             die($this->l('Can not Update'));
         }
     }
     /* delete megamenu item */
     if (Tools::getValue('dodel')) {
         $obj = new Btmegamenu((int) Tools::getValue('id_btmegamenu'));
         $res = $obj->delete();
         $this->clearCache();
         Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules'));
     }
     if (Tools::isSubmit('save' . $this->name) && Tools::isSubmit('active')) {
         // if( Tools::getValue('type') == 'url' && !Tools::getValue('url')){
         //              $errors[] = $this->l('Account details are required.');
         //          }
         //			if (!isset($errors) AND !sizeof($errors)){
         if ($id_btmegamenu = Tools::getValue('id_btmegamenu')) {
             # validate module
             $megamenu = new Btmegamenu((int) $id_btmegamenu);
         } else {
             # validate module
             $megamenu = new Btmegamenu();
         }
         $keys = LeoBtmegamenuHelper::getConfigKey(false);
         $post = LeoBtmegamenuHelper::getPost($keys, false);
         $keys = LeoBtmegamenuHelper::getConfigKey(true);
         $post += LeoBtmegamenuHelper::getPost($keys, true);
         $megamenu->copyFromPost($post);
         $megamenu->id_shop = $this->context->shop->id;
         if ($megamenu->type && $megamenu->type != 'html' && Tools::getValue($megamenu->type . '_type')) {
             # validate module
             $megamenu->item = Tools::getValue($megamenu->type . '_type');
         }
         $url_default = '';
         foreach ($megamenu->url as $menu_url) {
             if ($menu_url) {
                 $url_default = $menu_url;
                 break;
             }
         }
         if ($url_default) {
             foreach ($megamenu->url as &$menu_url) {
                 if (!$menu_url) {
                     $menu_url = $url_default;
                 }
             }
         }
         if ($megamenu->validateFields(false) && $megamenu->validateFieldsLang(false)) {
             # Auto set position
             $megamenu->position = Btmegamenu::getLastPosition((int) $megamenu->id_parent);
             $megamenu->save();
             $megamenu->cleanPositions($megamenu->id_parent);
             if (isset($_FILES['image']) && isset($_FILES['image']['tmp_name']) && !empty($_FILES['image']['tmp_name'])) {
                 $this->checkFolderIcon();
                 if (ImageManager::validateUpload($_FILES['image'])) {
                     return false;
                 } elseif (!($tmp_name = tempnam(_PS_TMP_IMG_DIR_, 'PS')) || !move_uploaded_file($_FILES['image']['tmp_name'], $tmp_name)) {
                     return false;
                 } elseif (!ImageManager::resize($tmp_name, $this->img_path . $_FILES['image']['name'])) {
                     return false;
                 }
                 unlink($tmp_name);
                 $megamenu->image = $_FILES['image']['name'];
                 $megamenu->save();
             } else {
                 if (Tools::getIsset('delete_icon')) {
                     if ($megamenu->image) {
                         unlink($this->img_path . $megamenu->image);
                         $megamenu->image = '';
                         $megamenu->save();
                     }
                 }
             }
             Tools::redirectAdmin(AdminController::$currentIndex . '&configure=leobootstrapmenu&save' . $this->name . '&token=' . Tools::getValue('token') . '&id_btmegamenu=' . $megamenu->id);
         } else {
             # validate module
             $errors = array();
             $errors[] = $this->l('An error occurred while attempting to save.');
         }
         //			}
         if (isset($errors) && count($errors)) {
             $output .= $this->displayError(implode('<br />', $errors));
         } else {
             $this->clearCache();
             $output .= $this->displayConfirmation($this->l('Settings updated.'));
         }
     }
     return $output . $this->displayForm();
 }