You've already forked joomla_test
							
							
		
			
				
	
	
		
			132 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package     Joomla.Administrator
 | |
|  * @subpackage  com_menus
 | |
|  *
 | |
|  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 | |
|  * @license     GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  */
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| /**
 | |
|  * The Menu Item Controller
 | |
|  *
 | |
|  * @package     Joomla.Administrator
 | |
|  * @subpackage  com_menus
 | |
|  * @since       1.6
 | |
|  */
 | |
| class MenusControllerItems extends JControllerAdmin
 | |
| {
 | |
| 	public function __construct($config = array())
 | |
| 	{
 | |
| 		parent::__construct($config);
 | |
| 		$this->registerTask('unsetDefault',	'setDefault');
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Proxy for getModel
 | |
| 	 * @since   1.6
 | |
| 	 */
 | |
| 	public function getModel($name = 'Item', $prefix = 'MenusModel', $config = array())
 | |
| 	{
 | |
| 		return parent::getModel($name, $prefix, array('ignore_request' => true));
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Rebuild the nested set tree.
 | |
| 	 *
 | |
| 	 * @return  bool	False on failure or error, true on success.
 | |
| 	 * @since   1.6
 | |
| 	 */
 | |
| 	public function rebuild()
 | |
| 	{
 | |
| 		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
 | |
| 
 | |
| 		$this->setRedirect('index.php?option=com_menus&view=items');
 | |
| 
 | |
| 		$model = $this->getModel();
 | |
| 
 | |
| 		if ($model->rebuild())
 | |
| 		{
 | |
| 			// Reorder succeeded.
 | |
| 			$this->setMessage(JText::_('COM_MENUS_ITEMS_REBUILD_SUCCESS'));
 | |
| 			return true;
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// Rebuild failed.
 | |
| 			$this->setMessage(JText::sprintf('COM_MENUS_ITEMS_REBUILD_FAILED'));
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function saveorder()
 | |
| 	{
 | |
| 		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
 | |
| 
 | |
| 		// Get the arrays from the Request
 | |
| 		$order = $this->input->post->get('order', null, 'array');
 | |
| 		$originalOrder = explode(',', $this->input->getString('original_order_values'));
 | |
| 
 | |
| 		// Make sure something has changed
 | |
| 		if (!($order === $originalOrder))
 | |
| 		{
 | |
| 			parent::saveorder();
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// Nothing to reorder
 | |
| 			$this->setRedirect(JRoute::_('index.php?option='.$this->option.'&view='.$this->view_list, false));
 | |
| 			return true;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Method to set the home property for a list of items
 | |
| 	 *
 | |
| 	 * @since   1.6
 | |
| 	 */
 | |
| 	public function setDefault()
 | |
| 	{
 | |
| 		// Check for request forgeries
 | |
| 		JSession::checkToken('request') or die(JText::_('JINVALID_TOKEN'));
 | |
| 
 | |
| 		// Get items to publish from the request.
 | |
| 		$cid   = $this->input->get('cid', array(), 'array');
 | |
| 		$data  = array('setDefault' => 1, 'unsetDefault' => 0);
 | |
| 		$task  = $this->getTask();
 | |
| 		$value = JArrayHelper::getValue($data, $task, 0, 'int');
 | |
| 
 | |
| 		if (empty($cid))
 | |
| 		{
 | |
| 			JError::raiseWarning(500, JText::_($this->text_prefix.'_NO_ITEM_SELECTED'));
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// Get the model.
 | |
| 			$model = $this->getModel();
 | |
| 
 | |
| 			// Make sure the item ids are integers
 | |
| 			JArrayHelper::toInteger($cid);
 | |
| 
 | |
| 			// Publish the items.
 | |
| 			if (!$model->setHome($cid, $value))
 | |
| 			{
 | |
| 				JError::raiseWarning(500, $model->getError());
 | |
| 			} else {
 | |
| 				if ($value == 1)
 | |
| 				{
 | |
| 					$ntext = 'COM_MENUS_ITEMS_SET_HOME';
 | |
| 				}
 | |
| 				else {
 | |
| 					$ntext = 'COM_MENUS_ITEMS_UNSET_HOME';
 | |
| 				}
 | |
| 				$this->setMessage(JText::plural($ntext, count($cid)));
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$this->setRedirect(JRoute::_('index.php?option='.$this->option.'&view='.$this->view_list, false));
 | |
| 	}
 | |
| }
 | 
