registerTask('unsetDefault', 'setDefault'); } /** * Proxy for getModel. * * @param string $name The model name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return object The model. * * @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; } } /** * Save the manual order inputs from the menu items list view * * @return void * * @see JControllerAdmin::saveorder() * @deprecated 4.0 */ public function saveorder() { JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); JLog::add('MenusControllerItems::saveorder() is deprecated. Function will be removed in 4.0', JLog::WARNING, 'deprecated'); // 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 * * @return void * * @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)); } }