<?php /** * @package Projectfork * * @author Tobias Kuhn (eaxs) * @copyright Copyright (C) 2006-2012 Tobias Kuhn. All rights reserved. * @license http://www.gnu.org/licenses/gpl.html GNU/GPL, see LICENSE.txt */ defined('_JEXEC') or die; $db = JFactory::getDbo(); $query = $db->getQuery(true); // Get the Menu model JLoader::register('MenusModelMenu', JPATH_ADMINISTRATOR . '/components/com_menus/models/menu.php'); $options = array('ignore_request' => true); $menu_model = new MenusModelMenu($options); // Find the menu id $query->select('id')->from('#__menu_types')->where('menutype = ' . $db->quote('projectfork')); $db->setQuery($query->__toString()); $menu_id = (int) $db->loadResult(); if (!$menu_id) { return false; } $data = array($menu_id); // Delete the menu return $menu_model->delete($data);
$query->clear(); $query->delete('#__menu')->where('title = ' . $db->quote('com_projectfork'))->where('menutype = ' . $db->quote('main')); $db->setQuery($query); $db->execute(); // Check if a projectfork menu already exists $query->clear(); $query->select('COUNT(id)')->from('#__menu_types')->where('menutype = ' . $db->quote('projectfork')); $db->setQuery((string) $query); $menu_exists = (int) $db->loadResult(); // Do nothing if the menu exists if ($menu_exists) { return true; } // Get the Menu model JLoader::register('MenusModelMenu', JPATH_ADMINISTRATOR . '/components/com_menus/models/menu.php'); $menu_model = new MenusModelMenu(array('ignore_request' => true)); // Create the menu $data = array('title' => 'Projectfork', 'menutype' => 'projectfork', 'description' => 'Projectfork Menu'); $success = $menu_model->save($data); $menu_id = $menu_model->getState('menu.id'); // Do not continue if menu creation failed if (!$success || !$menu_id) { return false; } $mm_pos = 'position-7'; $mm_st = '1'; $module = JTable::getInstance('module'); $module->set('title', 'Projectfork'); $module->set('module', 'mod_menu'); $module->set('access', '1'); $module->set('showtitle', $mm_st);
/** * Move item to new position * * @param: int $itemid * @param: int $parentid * @param: int $ordering * * @return: Save to database new position for menu item */ public function moveItem($itemId, $parentid, $orders) { JSNFactory::import('components.com_menus.models.menu'); $oldParentId = $this->getParentId($itemId); $menuInstance = new MenusModelMenu(); $table = $menuInstance->getTable('Menu'); if ($oldParentId != $parentid) { // Update parent id then rebuild menu table. $table->load($itemId); $table->setLocation($parentid, 'last-child'); $table->store(); $table->rebuildPath($table->id); } // Save items orders. $pks = $orders; $_order = array(); for ($i = 1; $i <= count($orders); $i++) { $_order[] = $i; } $table->saveorder($pks, $_order); return true; }