Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres.../classes/utilitie...
File: Pager.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace WPML\Utils;
[2] Fix | Delete
[3] Fix | Delete
use WPML\Collect\Support\Collection;
[4] Fix | Delete
[5] Fix | Delete
class Pager {
[6] Fix | Delete
/** @var string */
[7] Fix | Delete
protected $optionName;
[8] Fix | Delete
[9] Fix | Delete
/** @var int */
[10] Fix | Delete
protected $pageSize;
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* @param string $optionName
[14] Fix | Delete
* @param int $pageSize
[15] Fix | Delete
*/
[16] Fix | Delete
public function __construct( $optionName, $pageSize = 10 ) {
[17] Fix | Delete
$this->optionName = $optionName;
[18] Fix | Delete
$this->pageSize = $pageSize;
[19] Fix | Delete
}
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* @param Collection $collection
[23] Fix | Delete
* @param callable $callback
[24] Fix | Delete
* @param int $timeout
[25] Fix | Delete
*
[26] Fix | Delete
* @return int
[27] Fix | Delete
*/
[28] Fix | Delete
public function iterate( Collection $collection, callable $callback, $timeout = PHP_INT_MAX ) {
[29] Fix | Delete
$processedItems = $this->getProcessedCount();
[30] Fix | Delete
[31] Fix | Delete
$this->getItemsToProcess( $collection, $processedItems )->eachWithTimeout( function ( $item ) use (
[32] Fix | Delete
&$processedItems,
[33] Fix | Delete
$callback
[34] Fix | Delete
) {
[35] Fix | Delete
return $callback( $item ) && ++ $processedItems;
[36] Fix | Delete
}, $timeout );
[37] Fix | Delete
[38] Fix | Delete
$remainingPages = $this->getRemainingPages( $collection, $processedItems );
[39] Fix | Delete
[40] Fix | Delete
if ( $remainingPages ) {
[41] Fix | Delete
\update_option( $this->optionName, $processedItems );
[42] Fix | Delete
} else {
[43] Fix | Delete
\delete_option( $this->optionName );
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
return $remainingPages;
[47] Fix | Delete
}
[48] Fix | Delete
[49] Fix | Delete
private function getItemsToProcess( Collection $collection, $processedItems ) {
[50] Fix | Delete
return $collection->slice( $processedItems, $this->pageSize );
[51] Fix | Delete
}
[52] Fix | Delete
[53] Fix | Delete
/**
[54] Fix | Delete
* @param Collection $collection
[55] Fix | Delete
*
[56] Fix | Delete
* @return int
[57] Fix | Delete
*/
[58] Fix | Delete
public function getPagesCount( Collection $collection ) {
[59] Fix | Delete
return (int) ceil( $collection->count() / $this->pageSize );
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/**
[63] Fix | Delete
* @param \WPML\Collect\Support\Collection $collection
[64] Fix | Delete
*
[65] Fix | Delete
* @return int
[66] Fix | Delete
*/
[67] Fix | Delete
protected function getRemainingPages( Collection $collection, $processedItems ) {
[68] Fix | Delete
return (int) ceil( $collection->slice( $processedItems )->count() / $this->pageSize );
[69] Fix | Delete
}
[70] Fix | Delete
[71] Fix | Delete
/**
[72] Fix | Delete
* @return int
[73] Fix | Delete
*/
[74] Fix | Delete
public function getProcessedCount() {
[75] Fix | Delete
return get_option( $this->optionName, 0 );
[76] Fix | Delete
}
[77] Fix | Delete
}
[78] Fix | Delete
[79] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function