<?php
/**
* @file classes/controllers/grid/CategoryGridDataProvider.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class CategoryGridDataProvider
*
* @ingroup classes_controllers_grid
*
* @brief Provide access to category grid data. Can optionally use a grid data
* provider object that already provides access to data that the grid needs.
*/
namespace PKP\controllers\grid;
class CategoryGridDataProvider extends GridDataProvider
{
/** @var GridDataProvider A grid data provider that can be
* used by this category grid data provider to provide access
* to common data.
*/
public $_dataProvider;
//
// Getters and setters.
//
/**
* Get a grid data provider object.
*
* @return GridDataProvider
*/
public function getDataProvider()
{
return $this->_dataProvider;
}
/**
* Set a grid data provider object.
*
* @param GridDataProvider $dataProvider
*/
public function setDataProvider($dataProvider)
{
if ($dataProvider instanceof self) {
assert(false);
$dataProvider = null;
}
$this->_dataProvider = $dataProvider;
}
//
// Overriden methods from GridDataProvider
//
/**
* @see GridDataProvider::setAuthorizedContext()
*/
public function setAuthorizedContext(&$authorizedContext)
{
// We need to pass the authorized context object to
// the grid data provider object, if any.
$dataProvider = $this->getDataProvider();
if ($dataProvider) {
$dataProvider->setAuthorizedContext($authorizedContext);
}
parent::setAuthorizedContext($authorizedContext);
}
//
// Template methods to be implemented by subclasses
//
/**
* Retrieve the category data to load into the grid.
*
* @param \PKP\core\PKPRequest $request
* @param array|null $filter
*
* @return array
*/
public function loadCategoryData($request, $categoryDataElement, $filter = null)
{
assert(false);
}
}
if (!PKP_STRICT_MODE) {
class_alias('\PKP\controllers\grid\CategoryGridDataProvider', '\CategoryGridDataProvider');
}
|