芝麻web文件管理V1.00
编辑当前文件:/home/asmplong/www/ancien-site-2019/site/administrator/components/com_menus/controllers/menus.php
true)); return $model; } /** * Removes an item */ public function delete() { // Check for request forgeries JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); // Get items to remove from the request. $cid = JRequest::getVar('cid', array(), '', 'array'); if (!is_array($cid) || count($cid) < 1) { JError::raiseWarning(500, JText::_('COM_MENUS_NO_MENUS_SELECTED')); } else { // Get the model. $model = $this->getModel(); // Make sure the item ids are integers jimport('joomla.utilities.arrayhelper'); JArrayHelper::toInteger($cid); // Remove the items. if (!$model->delete($cid)) { $this->setMessage($model->getError()); } else { $this->setMessage(JText::plural('COM_MENUS_N_MENUS_DELETED', count($cid))); } } $this->setRedirect('index.php?option=com_menus&view=menus'); } /** * Rebuild the menu tree. * * @return bool False on failure or error, true on success. */ public function rebuild() { JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); $this->setRedirect('index.php?option=com_menus&view=menus'); // Initialise variables. $model = $this->getModel('Item'); if ($model->rebuild()) { // Reorder succeeded. $this->setMessage(JText::_('JTOOLBAR_REBUILD_SUCCESS')); return true; } else { // Rebuild failed. $this->setMessage(JText::sprintf('JTOOLBAR_REBUILD_FAILED', $model->getMessage())); return false; } } /** * Temporary method. This should go into the 1.5 to 1.6 upgrade routines. */ public function resync() { // Initialise variables. $db = JFactory::getDbo(); $parts = null; // Load a lookup table of all the component id's. $components = $db->setQuery( 'SELECT element, extension_id' . ' FROM #__extensions' . ' WHERE type = '.$db->quote('component') )->loadAssocList('element', 'extension_id'); if ($error = $db->getErrorMsg()) { return JError::raiseWarning(500, $error); } // Load all the component menu links $items = $db->setQuery( 'SELECT id, link, component_id' . ' FROM #__menu' . ' WHERE type = '.$db->quote('component') )->loadObjectList(); if ($error = $db->getErrorMsg()) { return JError::raiseWarning(500, $error); } foreach ($items as $item) { // Parse the link. parse_str(parse_url($item->link, PHP_URL_QUERY), $parts); // Tease out the option. if (isset($parts['option'])) { $option = $parts['option']; // Lookup the component ID if (isset($components[$option])) { $componentId = $components[$option]; } else { // Mismatch. Needs human intervention. $componentId = -1; } // Check for mis-matched component id's in the menu link. if ($item->component_id != $componentId) { // Update the menu table. $log = "Link $item->id refers to $item->component_id, converting to $componentId ($item->link)"; echo "
$log"; $db->setQuery( 'UPDATE #__menu' . ' SET component_id = '.$componentId. ' WHERE id = '.$item->id )->query(); //echo "
".$db->getQuery(); if ($error = $db->getErrorMsg()) { return JError::raiseWarning(500, $error); } } } } } }