[ Mini Kiebo ]
Server: Windows NT AKFAR_SERVER 10.0 build 26200 (Windows 10) AMD64
Path:
D:
/
Jurnal PSCP
/
lib
/
pkp
/
classes
/
controllers
/
grid
/
[
Home
]
File: GridRow.inc.php
<?php /** * @file classes/controllers/grid/GridRow.inc.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 GridRow * @ingroup controllers_grid * * @brief GridRow implements a row of a Grid. See GridHandler for general * information about grids. * * Each Grid is populated with data that is displayed in a series of rows. Each * row is implemented using a GridRow, which knows how to describe the data it * represents, and can present and manage row actions such as Edit and Delete * operations. * * For general information on grids, see GridHandler. */ define('GRID_ACTION_POSITION_ROW_CLICK', 'row-click'); define('GRID_ACTION_POSITION_ROW_LEFT', 'row-left'); import('lib.pkp.classes.controllers.grid.GridBodyElement'); class GridRow extends GridBodyElement { /** @var array */ var $_requestArgs; /** @var the grid this row belongs to */ var $_gridId; /** @var mixed the row's data source */ var $_data; /** @var boolean true if the row has been modified */ var $_isModified; /** * @var array row actions, the first key represents * the position of the action in the row template, * the second key represents the action id. */ var $_actions = array(GRID_ACTION_POSITION_DEFAULT => array()); /** @var string the row template */ var $_template; /** * Constructor. */ function __construct() { parent::__construct(); $this->_isModified = false; } // // Getters/Setters // /** * Set the grid id * @param $gridId string */ function setGridId($gridId) { $this->_gridId = $gridId; } /** * Get the grid id * @return string */ function getGridId() { return $this->_gridId; } /** * Set the grid request parameters. * @see GridHandler::getRequestArgs() * @param $requestArgs array */ function setRequestArgs($requestArgs) { $this->_requestArgs = $requestArgs; } /** * Get the grid request parameters. * @see GridHandler::getRequestArgs() * @return array */ function getRequestArgs() { return $this->_requestArgs; } /** * Set the data element(s) for this controller * @param $data mixed */ function setData(&$data) { $this->_data =& $data; } /** * Get the data element(s) for this controller * @return mixed */ function &getData() { return $this->_data; } /** * Set the modified flag for the row * @param $isModified boolean */ function setIsModified($isModified) { $this->_isModified = $isModified; } /** * Get the modified flag for the row * @return boolean */ function getIsModified() { return $this->_isModified; } /** * Get whether this row has any actions or not. * @return boolean */ function hasActions() { $allActions = array(); foreach($this->_actions as $actions) { $allActions = array_merge($allActions, $actions); } return !empty($allActions); } /** * Get all actions for a given position within the controller * @param $position string the position of the actions * @return array the LinkActions for the given position */ function getActions($position = GRID_ACTION_POSITION_DEFAULT) { if(!isset($this->_actions[$position])) return array(); return $this->_actions[$position]; } /** * Add an action * @param $action mixed a single action * @param $position string the position of the action */ function addAction($action, $position = GRID_ACTION_POSITION_DEFAULT) { if (!isset($this->_actions[$position])) $this->_actions[$position] = array(); $this->_actions[$position][$action->getId()] = $action; } /** * Get the row template - override base * implementation to provide a sensible default. * @return string */ function getTemplate() { return $this->_template; } /** * Set the controller template * @param $template string */ function setTemplate($template) { $this->_template = $template; } // // Public methods // /** * Initialize a row instance. * * Subclasses can override this method. * * @param $request PKPRequest * @param $template string */ function initialize($request, $template = null) { if ($template === null) $template = 'controllers/grid/gridRow.tpl'; // Set the template. $this->setTemplate($template); } }