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; }