| Server IP : 195.134.90.114 / Your IP : 216.73.216.86 Web Server : Apache/2.4.58 System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/lib/pkp/classes/controllers/grid/feature/ |
Upload File : |
<?php
/**
* @file classes/controllers/grid/feature/OrderGridItemsFeature.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 OrderGridItemsFeature
* @ingroup controllers_grid_feature
*
* @brief Implements grid ordering functionality.
*
*/
import('lib.pkp.classes.controllers.grid.feature.OrderItemsFeature');
class OrderGridItemsFeature extends OrderItemsFeature {
/**
* Constructor.
* @copydoc OrderItemsFeature::OrderItemsFeature()
*/
function __construct($overrideRowTemplate = true, $nonOrderableItemsMessage = null) {
parent::__construct($overrideRowTemplate, $nonOrderableItemsMessage);
}
//
// Extended methods from GridFeature.
//
/**
* @see GridFeature::getJSClass()
*/
function getJSClass() {
return '$.pkp.classes.features.OrderGridItemsFeature';
}
//
// Hooks implementation.
//
/**
* @see GridFeature::saveSequence()
* @param $args array
*/
function saveSequence($args) {
$request =& $args['request'];
$grid =& $args['grid'];
$data = json_decode($request->getUserVar('data'));
$gridElements = $grid->getGridDataElements($request);
if (empty($gridElements)) return;
$firstSeqValue = $grid->getDataElementSequence(reset($gridElements));
foreach ($gridElements as $rowId => $element) {
$rowPosition = array_search($rowId, $data);
$newSequence = $firstSeqValue + $rowPosition;
$currentSequence = $grid->getDataElementSequence($element);
if ($newSequence != $currentSequence) {
$grid->setDataElementSequence($request, $rowId, $element, $newSequence);
}
}
}
}