You've already forked joomla_test
first commit
This commit is contained in:
160
administrator/components/com_content/controllers/article.php
Normal file
160
administrator/components/com_content/controllers/article.php
Normal file
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
* @since 1.6
|
||||
*/
|
||||
class ContentControllerArticle extends JControllerForm
|
||||
{
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param array $config A named array of configuration variables.
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
parent::__construct($config);
|
||||
|
||||
// An article edit form can come from the articles or featured view.
|
||||
// Adjust the redirect view on the value of 'return' in the request.
|
||||
if ($this->input->get('return') == 'featured')
|
||||
{
|
||||
$this->view_list = 'featured';
|
||||
$this->view_item = 'article&return=featured';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method override to check if you can add a new record.
|
||||
*
|
||||
* @param array $data An array of input data.
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
protected function allowAdd($data = array())
|
||||
{
|
||||
$user = JFactory::getUser();
|
||||
$categoryId = JArrayHelper::getValue($data, 'catid', $this->input->getInt('filter_category_id'), 'int');
|
||||
$allow = null;
|
||||
|
||||
if ($categoryId)
|
||||
{
|
||||
// If the category has been passed in the data or URL check it.
|
||||
$allow = $user->authorise('core.create', 'com_content.category.' . $categoryId);
|
||||
}
|
||||
|
||||
if ($allow === null)
|
||||
{
|
||||
// In the absense of better information, revert to the component permissions.
|
||||
return parent::allowAdd();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $allow;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method override to check if you can edit an existing record.
|
||||
*
|
||||
* @param array $data An array of input data.
|
||||
* @param string $key The name of the key for the primary key.
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
protected function allowEdit($data = array(), $key = 'id')
|
||||
{
|
||||
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||
$user = JFactory::getUser();
|
||||
$userId = $user->get('id');
|
||||
|
||||
// Check general edit permission first.
|
||||
if ($user->authorise('core.edit', 'com_content.article.' . $recordId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Fallback on edit.own.
|
||||
// First test if the permission is available.
|
||||
if ($user->authorise('core.edit.own', 'com_content.article.' . $recordId))
|
||||
{
|
||||
// Now test the owner is the user.
|
||||
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||
if (empty($ownerId) && $recordId)
|
||||
{
|
||||
// Need to do a lookup from the model.
|
||||
$record = $this->getModel()->getItem($recordId);
|
||||
|
||||
if (empty($record))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$ownerId = $record->created_by;
|
||||
}
|
||||
|
||||
// If the owner matches 'me' then do the test.
|
||||
if ($ownerId == $userId)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Since there is no asset tracking, revert to the component permissions.
|
||||
return parent::allowEdit($data, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to run batch operations.
|
||||
*
|
||||
* @param object $model The model.
|
||||
*
|
||||
* @return boolean True if successful, false otherwise and internal error is set.
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function batch($model = null)
|
||||
{
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
// Set the model
|
||||
$model = $this->getModel('Article', '', array());
|
||||
|
||||
// Preset the redirect
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_content&view=articles' . $this->getRedirectToListAppend(), false));
|
||||
|
||||
return parent::batch($model);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that allows child controller access to model data after the data has been saved.
|
||||
*
|
||||
* @param JModelLegacy $model The data model object.
|
||||
* @param array $validData The validated data.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.1
|
||||
*/
|
||||
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
122
administrator/components/com_content/controllers/articles.php
Normal file
122
administrator/components/com_content/controllers/articles.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* Articles list controller class.
|
||||
*
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
* @since 1.6
|
||||
*/
|
||||
class ContentControllerArticles extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $config An optional associative array of configuration settings.
|
||||
|
||||
* @return ContentControllerArticles
|
||||
* @see JController
|
||||
* @since 1.6
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
parent::__construct($config);
|
||||
|
||||
// Articles default form can come from the articles or featured view.
|
||||
// Adjust the redirect view on the value of 'view' in the request.
|
||||
if ($this->input->get('view') == 'featured')
|
||||
{
|
||||
$this->view_list = 'featured';
|
||||
}
|
||||
|
||||
$this->registerTask('unfeatured', 'featured');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to toggle the featured setting of a list of articles.
|
||||
*
|
||||
* @return void
|
||||
* @since 1.6
|
||||
*/
|
||||
public function featured()
|
||||
{
|
||||
// Check for request forgeries
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$user = JFactory::getUser();
|
||||
$ids = $this->input->get('cid', array(), 'array');
|
||||
$values = array('featured' => 1, 'unfeatured' => 0);
|
||||
$task = $this->getTask();
|
||||
$value = JArrayHelper::getValue($values, $task, 0, 'int');
|
||||
|
||||
// Access checks.
|
||||
foreach ($ids as $i => $id)
|
||||
{
|
||||
if (!$user->authorise('core.edit.state', 'com_content.article.'.(int) $id))
|
||||
{
|
||||
// Prune items that you can't change.
|
||||
unset($ids[$i]);
|
||||
JError::raiseNotice(403, JText::_('JLIB_APPLICATION_ERROR_EDITSTATE_NOT_PERMITTED'));
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($ids))
|
||||
{
|
||||
JError::raiseWarning(500, JText::_('JERROR_NO_ITEMS_SELECTED'));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the model.
|
||||
$model = $this->getModel();
|
||||
|
||||
// Publish the items.
|
||||
if (!$model->featured($ids, $value))
|
||||
{
|
||||
JError::raiseWarning(500, $model->getError());
|
||||
}
|
||||
}
|
||||
|
||||
$this->setRedirect('index.php?option=com_content&view=articles');
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
*
|
||||
* @param string $name The name of the model.
|
||||
* @param string $prefix The prefix for the PHP class name.
|
||||
*
|
||||
* @return JModel
|
||||
* @since 1.6
|
||||
*/
|
||||
public function getModel($name = 'Article', $prefix = 'ContentModel', $config = array('ignore_request' => true))
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, $config);
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that allows child controller access to model data
|
||||
* after the item has been deleted.
|
||||
*
|
||||
* @param JModelLegacy $model The data model object.
|
||||
* @param integer $ids The array of ids for items being deleted.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 12.2
|
||||
*/
|
||||
protected function postDeleteHook(JModelLegacy $model, $ids = null)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @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;
|
||||
|
||||
require_once __DIR__ . '/articles.php';
|
||||
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
*/
|
||||
class ContentControllerFeatured extends ContentControllerArticles
|
||||
{
|
||||
/**
|
||||
* Removes an item
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
// Check for request forgeries
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$user = JFactory::getUser();
|
||||
$ids = $this->input->get('cid', array(), 'array');
|
||||
|
||||
// Access checks.
|
||||
foreach ($ids as $i => $id)
|
||||
{
|
||||
if (!$user->authorise('core.delete', 'com_content.article.'.(int) $id))
|
||||
{
|
||||
// Prune items that you can't delete.
|
||||
unset($ids[$i]);
|
||||
JError::raiseNotice(403, JText::_('JERROR_CORE_DELETE_NOT_PERMITTED'));
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($ids))
|
||||
{
|
||||
JError::raiseWarning(500, JText::_('JERROR_NO_ITEMS_SELECTED'));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the model.
|
||||
$model = $this->getModel();
|
||||
|
||||
// Remove the items.
|
||||
if (!$model->featured($ids, 0))
|
||||
{
|
||||
JError::raiseWarning(500, $model->getError());
|
||||
}
|
||||
}
|
||||
|
||||
$this->setRedirect('index.php?option=com_content&view=featured');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to publish a list of articles.
|
||||
*
|
||||
* @return void
|
||||
* @since 1.0
|
||||
*/
|
||||
public function publish()
|
||||
{
|
||||
parent::publish();
|
||||
|
||||
$this->setRedirect('index.php?option=com_content&view=featured');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a model object, loading it if required.
|
||||
*
|
||||
* @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 = 'Feature', $prefix = 'ContentModel', $config = array('ignore_request' => true))
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, $config);
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
Reference in New Issue
Block a user