/administrator/components/com_menus/controllers/items.php
https://bitbucket.org/eternaware/joomus · PHP · 154 lines · 84 code · 19 blank · 51 comment · 12 complexity · b9d9c449c37280d4e8f2d72d3bfeb3bf MD5 · raw file
- <?php
- /**
- * @package Joomla.Administrator
- * @subpackage com_menus
- *
- * @copyright Copyright (C) 2005 - 2012 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));
- }
- /**
- * Method to save the submitted ordering values for records via AJAX.
- *
- * @return void
- *
- * @since 3.0
- */
- public function saveOrderAjax()
- {
- JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
- // Get the arrays from the Request
- $pks = $this->input->post->get('cid', null, 'array');
- $order = $this->input->post->get('order', null, 'array');
- $originalOrder = explode(',', $this->input->getString('original_order_values'));
- // Make sure something has changed
- if (!($order === $originalOrder)) {
- // Get the model
- $model = $this->getModel();
- // Save the ordering
- $return = $model->saveorder($pks, $order);
- if ($return)
- {
- echo "1";
- }
- }
- // Close the application
- JFactory::getApplication()->close();
- }
- }