Esempio n. 1
0
 public function getContent()
 {
     $output = '';
     $errors = array();
     $id_lang_default = (int) Configuration::get('PS_LANG_DEFAULT');
     $languages = Language::getLanguages(false);
     if (Tools::getValue('confirm_msg')) {
         $this->context->smarty->assign('confirmation', Tools::getValue('confirm_msg'));
     }
     if (Tools::isSubmit('submitnewItem')) {
         $id_item = (int) Tools::getValue('item_id');
         if ($id_item && Validate::isUnsignedId($id_item)) {
             $new_item = new Item($id_item);
         } else {
             $new_item = new Item();
         }
         $new_item->id_block = Tools::getValue('block_id');
         $new_item->type = Tools::getValue('linktype');
         $new_item->active = (int) Tools::getValue('active');
         $itemtitle_set = false;
         foreach ($languages as $language) {
             $item_title = Tools::getValue('item_title_' . $language['id_lang']);
             if (strlen($item_title) > 0) {
                 $itemtitle_set = true;
             }
             $new_item->title[$language['id_lang']] = $item_title;
         }
         if (!$itemtitle_set) {
             $lang_title = Language::getLanguage($this->context->language->id);
             if ($new_item->type == 'img') {
                 $errors[] = 'This Alt text field is required at least in ' . $lang_title['name'];
             } else {
                 $errors[] = 'This item title field is required at least in ' . $lang_title['name'];
             }
         }
         $new_item->class = Tools::getValue('custom_class');
         if ($new_item->type == 'link') {
             $new_item->icon = Tools::getValue('item_icon');
             $new_item->link = Tools::getValue('link_value');
         } elseif ($new_item->type == 'img') {
             if (isset($_FILES['item_img']) && strlen($_FILES['item_img']['name']) > 0) {
                 if (!($img_file = $this->moveUploadedImage($_FILES['item_img']))) {
                     $errors[] = 'An error occurred during the image upload.';
                 } else {
                     $new_item->icon = $img_file;
                     if (Tools::getValue('old_img') != '') {
                         $filename = Tools::getValue('old_img');
                         if (file_exists(dirname(__FILE__) . '/img/' . $filename)) {
                             @unlink(dirname(__FILE__) . '/img/' . $filename);
                         }
                     }
                 }
             } else {
                 $new_item->icon = Tools::getValue('old_img');
             }
             $new_item->link = Tools::getValue('link_value');
         } elseif ($new_item->type == 'html') {
             foreach ($languages as $language) {
                 $new_item->text[$language['id_lang']] = Tools::getValue('item_html_' . $language['id_lang']);
             }
         }
         if (!count($errors)) {
             if ($id_item && Validate::isUnsignedId($id_item)) {
                 if (!$new_item->update()) {
                     $errors[] = 'An error occurred while update data.';
                 }
             } else {
                 if (!$new_item->add()) {
                     $errors[] = 'An error occurred while saving data.';
                 }
             }
             if (!count($errors)) {
                 if ($id_item && Validate::isUnsignedId($id_item)) {
                     $this->context->smarty->assign('confirmation', $this->l('Item successfully updated.'));
                 } else {
                     $confirm_msg = $this->l('New item successfully added.');
                     Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                     Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&confirm_msg=' . $confirm_msg);
                 }
             }
         }
     } elseif (Tools::isSubmit('submit_del_item')) {
         $item_id = Tools::getValue('item_id');
         if ($item_id && Validate::isUnsignedId($item_id)) {
             $subs = $this->getSupMenu($item_id);
             $del = true;
             if ($subs && count($subs) > 0) {
             }
             foreach ($subs as $sub) {
                 $del &= $this->deleteSub($sub['id_sub']);
             }
             $item = new Item($item_id);
             if (!$item->delete() || !$del) {
                 $errors[] = 'An error occurred while delete item.';
             } else {
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 $this->context->smarty->assign('confirmation', $this->l('Delete successful.'));
             }
         }
     } elseif (Tools::isSubmit('submitnewsub')) {
         $id_sub = Tools::getValue('id_sub');
         if ($id_sub && Validate::isUnsignedId($id_sub)) {
             $sub = new Submenu($id_sub);
         } else {
             $sub = new Submenu();
         }
         $sub->id_parent = Tools::getValue('id_parent');
         $sub->width = Tools::getValue('subwidth');
         $sub->class = Tools::getValue('sub_class');
         $sub->active = Tools::getValue('active');
         if ($id_sub && Validate::isUnsignedId($id_sub)) {
             if (!$sub->update()) {
                 $errors[] = 'An error occurred while update data.';
             }
         } else {
             if (!$sub->checkAvaiable()) {
                 if (!$sub->add()) {
                     $errors[] = 'An error occurred while saving data.';
                 }
             } else {
                 $parent_item = new Item($sub->id_parent);
                 $errors[] = $parent_item->title[$this->context->language->id] . ' already have a sub.';
             }
         }
         if (!count($errors)) {
             if ($id_sub && Validate::isUnsignedId($id_sub)) {
                 $this->context->smarty->assign('confirmation', $this->l('Submenu successfully updated.'));
             } else {
                 $confirm_msg = $this->l('New sub successfully added.');
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&confirm_msg=' . $confirm_msg);
             }
         }
     } elseif (Tools::isSubmit('submit_del_sub')) {
         $id_sub = (int) Tools::getValue('id_sub');
         if ($id_sub && Validate::isUnsignedId($id_sub)) {
             if (!$this->deleteSub($id_sub)) {
                 $errors[] = 'An error occurred while delete sub menu.';
             } else {
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 $this->context->smarty->assign('confirmation', $this->l('Delete successful.'));
             }
         }
     } elseif (Tools::isSubmit('submitnewblock')) {
         $id_block = Tools::getValue('id_block');
         if ($id_block && Validate::isUnsignedId($id_block)) {
             $block = new Block($id_block);
         } else {
             $block = new Block();
         }
         $block->id_sub = Tools::getValue('id_sub');
         $block->width = Tools::getValue('block_widh');
         $block->class = Tools::getValue('block_class');
         if ($id_block && Validate::isUnsignedId($id_block)) {
             if (!$block->update()) {
                 $errors[] = 'An error occurred while update block.';
             }
         } else {
             if (!$block->add()) {
                 $errors[] = 'An error occurred while saving data.';
             }
         }
         if (!count($errors)) {
             if ($id_block && Validate::isUnsignedId($id_block)) {
                 $this->context->smarty->assign('confirmation', $this->l('Block successfully updated.'));
             } else {
                 $confirm_msg = $this->l('New block successfully added.');
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&confirm_msg=' . $confirm_msg);
             }
         }
     } elseif (Tools::isSubmit('submit_del_block')) {
         $id_block = Tools::getValue('id_block');
         if ($id_block && Validate::isUnsignedId($id_block)) {
             if (!$this->deleteBlock($id_block)) {
                 $errors[] = 'An error occurred while delete block.';
             } else {
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 $this->context->smarty->assign('confirmation', $this->l('Delete successful.'));
             }
         }
     } elseif (Tools::isSubmit('changeactive')) {
         $id_item = (int) Tools::getValue('item_id');
         if ($id_item && Validate::isUnsignedId($id_item)) {
             $item = new Item($id_item);
             $item->active = !$item->active;
             if (!$item->update()) {
                 $errors[] = $this->displayError('Could not change');
             } else {
                 $confirm_msg = $this->l('Successfully updated.');
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&confirm_msg=' . $confirm_msg);
             }
         }
     } elseif (Tools::isSubmit('changestatus')) {
         $id_sub = (int) Tools::getValue('id_sub');
         if ($id_sub && Validate::isUnsignedId($id_sub)) {
             $sub_menu = new Submenu($id_sub);
             $sub_menu->active = !$sub_menu->active;
             if (!$sub_menu->update()) {
                 $errors[] = $this->displayError('Could not change');
             } else {
                 $confirm_msg = $this->l('Submenu successfully updated.');
                 Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('topmenu.tpl'));
                 Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&confirm_msg=' . $confirm_msg);
             }
         }
     }
     $this->context->smarty->assign(array('admin_tpl_path' => $this->admin_tpl_path, 'postAction' => AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules')));
     if (count($errors) > 0) {
         if (isset($errors) && count($errors)) {
             $output .= $this->displayError(implode('<br />', $errors));
         }
     }
     if (Tools::isSubmit('submit_edit_item') || Tools::isSubmit('submitnewItem') && count($errors) > 0) {
         $output .= $this->displayItemForm();
     } elseif (Tools::isSubmit('submit_edit_sub')) {
         $output .= $this->displaySubForm();
     } elseif (Tools::isSubmit('submit_new_block')) {
         $output .= $this->displayBlockForm();
     } else {
         $output .= $this->displayForm();
     }
     return $output;
 }