⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controller.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		} else {			$msg = $model->getError();		}		$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg );	}	/**	* Save the item(s) to the menu selected	*/	function setdefault()	{		// Check for request forgeries		JRequest::checkToken() or jexit( 'Invalid Token' );		// Get some variables from the request		$menu	= JRequest::getVar( 'menutype', '', 'post', 'string' );		$cid	= JRequest::getVar( 'cid', array(), 'post', 'array' );		JArrayHelper::toInteger($cid);		if (isset($cid[0]) && $cid[0]) {			$id = $cid[0];		} else {			$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') );			return false;		}		$item =& JTable::getInstance( 'menu' );		$item->load($id);		if(!$item->get('published')) {			$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('The Default Menu Item Must Be Published') );			return false;		}		$model =& $this->getModel( 'List' );		if ($model->setHome($id)) {			$msg = JText::_( 'Default Menu Item Set' );		} else {			$msg = $model->getError();		}		$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg );	}	function remove()	{		// Check for request forgeries		JRequest::checkToken() or jexit( 'Invalid Token' );		// Get some variables from the request		$menu	= JRequest::getVar( 'menutype', '', 'post', 'string' );		$cid	= JRequest::getVar( 'cid', array(), 'post', 'array' );		JArrayHelper::toInteger($cid);		if (!count($cid)) {			$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, JText::_('No Items Selected') );			return false;		}		$model =& $this->getModel( 'List' );		if ($n = $model->toTrash($cid)) {			$msg = JText::sprintf( 'Item(s) sent to the Trash', $n );		} else {			$msg = $model->getError();		}		$this->setRedirect( 'index.php?option=com_menus&task=view&menutype='.$menu, $msg );	}	/**	* Save the item(s) to the menu selected	*/	function view()	{		$model	=& $this->getModel( 'List' );		$view =& $this->getView( 'List' );		$view->setModel( $model, true );		$view->display();	}	/**	 * Controller for view listing menu types and related statical info	 * @param string The URL option	 */	function viewMenus()	{		$view =& $this->getView( 'Menus');		$model	=& $this->getModel( 'Menutype' );		$view->setModel( $model, true );		$view->display();	}	/**	 * Controller for view to edit a menu type	 */	function editMenu()	{		$view =& $this->getView( 'Menus' );		$model	=& $this->getModel( 'Menutype' );		$view->setModel( $model, true );		$view->editForm(true,null);	}	/**	 * Controller for view to create a menu type	 */	function addMenu()	{		$view =& $this->getView( 'Menus' );		$model	=& $this->getModel( 'Menutype' );		$view->setModel( $model, true );		$view->editForm(false,null);	}	/**	 * Controller for saving a menu type	 */	function saveMenu()	{		global $mainframe;		// Check for request forgeries		JRequest::checkToken() or jexit( 'Invalid Token' );		$db		=& JFactory::getDBO();		$id		= JRequest::getVar( 'id', 0, 'post', 'int' );		$oldType =& JTable::getInstance('menutypes' );		$oldType->load( $id );		$menuType =& JTable::getInstance('menutypes');		$menuType->bind( JRequest::get( 'post' ) );		$isNew		= ($menuType->id == 0);		$isChanged	= ($oldType->menutype != $menuType->menutype);		if (!$menuType->check()) {			JError::raiseWarning( 500, $menuType->getError() );			$this->setRedirect( 'index.php?option=com_menus&task=editMenu', 'Please check your menu settings' );			return false;		}		if (!$menuType->store()) {			JError::raiseWarning( 500, $menuType->getError() );			$this->setRedirect( 'index.php?option=com_menus&task=editMenu', 'Please check your menu settings' );			return false;		}		if ($isNew)		{			if ($title = JRequest::getVar( 'module_title', $menuType->menutype, 'post', 'string' ))			{				$module =& JTable::getInstance( 'module');				$module->title 		= $title;				$module->position 	= 'left';				$module->module 	= 'mod_mainmenu';				$module->published	= 0;				$module->iscore 	= 0;				$module->params		= 'menutype='. $menuType->menutype;				// check then store data in db				if (!$module->check()) {					return JError::raiseWarning( 500, $module->getError() );				}				if (!$module->store()) {					return JError::raiseWarning( 500, $module->getError() );				}				$module->checkin();				$module->reorder( 'position='.$db->Quote($module->position) );				// module assigned to show on All pages by default				// Clean up possible garbage first				$query = 'DELETE FROM #__modules_menu WHERE moduleid = '.(int) $module->id;				$db->setQuery( $query );				if (!$db->query()) {					return JError::raiseWarning( 500, $db->getError() );				}				// ToDO: Changed to become a Joomla! db-object				$query = 'INSERT INTO #__modules_menu VALUES ( '.(int) $module->id.', 0 )';				$db->setQuery( $query );				if (!$db->query()) {					return JError::raiseWarning( 500, $db->getError() );				}			}			$msg = JText::sprintf( 'New Menu created', $menuType->menutype );		}		else if ($isChanged)		{			$oldTerm = $oldType->menutype;			$newTerm = $menuType->menutype;			// change menutype being of all mod_mainmenu modules calling old menutype			$query = 'SELECT id'			. ' FROM #__modules'			. ' WHERE module = "mod_mainmenu"'			. ' AND params LIKE "%menutype='.$db->getEscaped($oldTerm).'%"'			;			$db->setQuery( $query );			$modules = $db->loadResultArray();			foreach ($modules as $id)			{				$row =& JTable::getInstance('module');				$row->load( $id );				$row->params = str_replace( $oldTerm, $newTerm, $row->params );				// check then store data in db				if ( !$row->check() ) {					return JError::raiseWarning( 500, $db->getError() );				}				if ( !$row->store() ) {					return JError::raiseWarning( 500, $db->getError() );				}				$row->checkin();			}			// change menutype of all menuitems using old menutype			$query = 'UPDATE #__menu'			. ' SET menutype = '.$db->Quote($newTerm)			. ' WHERE menutype = '.$db->Quote($oldTerm)			;			$db->setQuery( $query );			$db->query();			$msg = JText::_( 'Menu Items & Modules updated' );		}		$this->setRedirect( 'index.php?option=com_menus', $msg );	}	/**	 * Controller for a view to confirm the deletion of a menu type	 */	function deleteMenu()	{		$view =& $this->getView( 'Menus' );		$model	=& $this->getModel( 'Menutype' );		$view->setModel( $model, true );		$view->deleteForm();	}	/**	 * Delete a menu	 */	function doDeleteMenu()	{		// Check for request forgeries		JRequest::checkToken() or jexit( 'Invalid Token' );		$id = JRequest::getVar( 'id', 0, '', 'int' );		if ($id <= 0) {			JError::raiseWarning( 500, JText::_( 'Invalid ID provided' ) );			$this->setRedirect( 'index.php?option=com_menus' );			return false;		}		$model =& $this->getModel( 'Menutype' );		if (!$model->canDelete()) {			JError::raiseWarning( 500, $model->getError() );			$this->setRedirect( 'index.php?option=com_menus' );			return false;		}		$err = null;		if (!$model->delete()) {			 $err = $model->getError();		}		$this->setRedirect( 'index.php?option=com_menus', $err );	}	/**	* Compiles a list of the articles you have selected to Copy	*/	function copyMenu()	{		$view =& $this->getView( 'Menus' );		$model	=& $this->getModel( 'Menutype' );		$view->setModel( $model, true );		$view->copyForm();	}	/**	* Copies a complete menu, all its items and creates a new module, using the name speified	*/	function doCopyMenu()	{		global $mainframe;		// Check for request forgeries		JRequest::checkToken() or jexit( 'Invalid Token' );		$db				=& JFactory::getDBO();		$type			= JRequest::getVar( 'type', '', 'post', 'string' );		$menu_name		= JRequest::getVar( 'menu_name', 'New Menu', 'post', 'string' );		$module_name	= JRequest::getVar( 'module_name', 'New Module', 'post', 'string' );		// check for unique menutype for new menu copy		$query = 'SELECT params' .				' FROM #__modules' .				' WHERE module = "mod_mainmenu"';		$db->setQuery( $query );		$menus = $db->loadResultArray();		foreach ( $menus as $menu )		{			$params = new JParameter( $menu );			if ( $params->get('menutype') == $menu_name ) {				JError::raiseWarning( 500, JText::_( 'ERRORMENUNAMEEXISTS' ) );				$this->setRedirect( 'index.php?option=com_menus' );				return;			}		}		// copy the menu items		$mids 		= JRequest::getVar( 'mids', array(), 'post', 'array' );		JArrayHelper::toInteger($mids);		$total 		= count( $mids );		$copy 		=& JTable::getInstance('menu');		$original 	=& JTable::getInstance('menu');		sort( $mids );		$a_ids 		= array();		foreach( $mids as $mid )		{			$original->load( $mid );			$copy 			= $original;			$copy->id 		= NULL;			$copy->parent 	= $a_ids[$original->parent];			$copy->menutype = $menu_name;			$copy->home 	= 0;			if ( !$copy->check() ) {				JError::raiseWarning( 500, $copy->getError() );				$this->setRedirect( 'index.php?option=com_menus' );				return;			}			if ( !$copy->store() ) {				JError::raiseWarning( 500, $copy->getError() );				$this->setRedirect( 'index.php?option=com_menus' );				return;			}			$a_ids[$original->id] = $copy->id;		}		// create the module copy		$row =& JTable::getInstance('module');		$row->load( 0 );		$row->title 	= $module_name;		$row->iscore 	= 0;		$row->published = 1;		$row->position 	= 'left';		$row->module 	= 'mod_mainmenu';		$row->params 	= 'menutype='. $menu_name;		if (!$row->check()) {			JError::raiseWarning( 500, $db->getError() );			$this->setRedirect( 'index.php?option=com_menus' );			return;		}		if (!$row->store()) {			JError::raiseWarning( 500, $db->getError() );			$this->setRedirect( 'index.php?option=com_menus' );			return;		}		$row->checkin();		$row->reorder( 'position='.$db->Quote($row->position) );		// module assigned to show on All pages by default		// ToDO: Changed to become a Joomla! db-object		$query = 'INSERT INTO #__modules_menu' .				' VALUES ( '.(int) $row->id.', 0 )';		$db->setQuery( $query );		if ( !$db->query() ) {			JError::raiseWarning( 500, $db->getErrorMsg(true) );			$this->setRedirect( 'index.php?option=com_menus' );			return;			//echo "<script> alert('".$db->getErrorMsg(true)."'); window.history.go(-1); </script>\n";			//$mainframe->close();		}		// Insert the menu type		$query = 'INSERT INTO `#__menu_types`  ( `menutype` , `title` , `description` ) ' .				' VALUES ( '.$db->Quote($menu_name).', '.$db->Quote($menu_name).', "")';		$db->setQuery( $query );		if ( !$db->query() ) {			JError::raiseWarning( 500, $db->getErrorMsg(true) );			$this->setRedirect( 'index.php?option=com_menus' );			return;			//echo "<script> alert('".$db->getErrorMsg(true)."'); window.history.go(-1); </script>\n";			//$mainframe->close();		}		$msg = JText::sprintf( 'Copy of Menu created', $type, $total );		$mainframe->redirect( 'index.php?option=com_menus', $msg );	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -