Skip to content

Commit d5141f7

Browse files
committed
Fix h1 report 3413890
1 parent 9b963ac commit d5141f7

File tree

11 files changed

+202
-181
lines changed

11 files changed

+202
-181
lines changed

lib/OA/Admin/Statistics/Delivery/CommonHistory.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public function prepare(&$aParams, $link = '')
175175
if ($use_pager) {
176176
$params = [
177177
'itemData' => $aStats,
178-
'perPage' => (int) MAX_getStoredValue('setPerPage', $per_page),
178+
'perPage' => MAX_getSetPerPageValue($per_page),
179179
'delta' => 8,
180180
'append' => true,
181181
'clearIfVoid' => false,
@@ -187,7 +187,6 @@ public function prepare(&$aParams, $link = '')
187187
if ($params['perPage'] % $per_page || $params['perPage'] > $per_page * 4) {
188188
// Reset the perPage and the request parameters when not matching the available values
189189
$params['perPage'] = $per_page;
190-
$_REQUEST['setPerPage'] = $per_page;
191190
}
192191

193192
$pager = Pager::factory($params);

lib/OA/Dll/Audit.php

Lines changed: 172 additions & 155 deletions
Large diffs are not rendered by default.

lib/max/other/common.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,10 @@ function MAX_getStoredValue($key, $default, $pageName = null, $allowEmpty = fals
505505
return $value;
506506
}
507507

508+
function MAX_getSetPerPageValue(int $default = 10): int
509+
{
510+
return max(10, min(100, (int) MAX_getStoredValue('setPerPage', $default)));
511+
}
508512

509513
function MAX_changeStoredValue($key, $value)
510514
{

lib/max/other/html.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1900,11 +1900,11 @@ function addChannelPageTools($agencyid, $websiteId, $channelid, $channelType)
19001900
* Builds Pear pager object, preconfigured with items per page. Pager links are
19011901
* processed to make them more readable. Also items name in summary can be added.
19021902
*
1903-
* @param unknown_type $items
1904-
* @param unknown_type $itemsPerPage
1905-
* @param unknown_type $withNumbers
1906-
* @param unknown_type $itemsName
1907-
* @return unknown
1903+
* @param iterable $items
1904+
* @param int $itemsPerPage
1905+
* @param bool $withNumbers
1906+
* @param string $itemsName
1907+
* @return Pager_Common
19081908
*/
19091909
function OX_buildPager(
19101910
$items,
@@ -1927,7 +1927,7 @@ function OX_buildPager(
19271927

19281928
$pagerOptions = [
19291929
'mode' => 'Sliding',
1930-
'perPage' => $itemsPerPage,
1930+
'perPage' => min(100, max(1, $itemsPerPage)),
19311931
'delta' => $delta,
19321932
'totalItems' => $count,
19331933
'prevImg' => '< ' . $oTrans->translate('Back'),

lib/pear/Pager.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,11 @@ public static function factory($options = array())
179179

180180
// If the class exists, return a new instance of it.
181181
if (class_exists($classname)) {
182+
if (isset($options['perPage'])) {
183+
// Overwrite superglobals, as they are used by the pager
184+
$_GET['setPerPage'] = $_POST['setPerPage'] = $_REQUEST['setPerPage'] = $options['perPage'];
185+
}
186+
182187
$pager = new $classname($options);
183188
return $pager;
184189
}

lib/templates/admin/advertiser-index-list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@
169169
{if !empty($pager->links)}
170170
<tbody class="tableFooter">
171171
<tr>
172-
<td colspan="3">
172+
<td colspan="4">
173173
<div class="pager">
174174
<span class="summary">{$pager->summary}</span>
175175
<span class="controls">{$pager->links}</span>

lib/templates/admin/website-index-list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@
159159
{if !empty($pager->links)}
160160
<tbody class="tableFooter">
161161
<tr>
162-
<td colspan="3">
162+
<td colspan="4">
163163
<div class="pager">
164164
<span class="summary">{$pager->summary}</span>
165165
<span class="controls">{$pager->links}</span>

www/admin/advertiser-index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ function _isBannerAssignedToCampaign($aBannerData)
157157
}
158158
}
159159

160-
$itemsPerPage = 250;
160+
$itemsPerPage = 100;
161161
$oPager = OX_buildPager($clients, $itemsPerPage);
162162
$oTopPager = OX_buildPager($clients, $itemsPerPage, false);
163163
[$itemsFrom, $itemsTo] = $oPager->getOffsetByPageId();

www/admin/stats-conversions.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
$day = MAX_getStoredValue('day', null, 'stats-conversions.php');
3737
$howLong = MAX_getStoredValue('howLong', 'd');
3838
$hour = MAX_getStoredValue('hour', null, 'stats-conversions.php', true);
39-
$setPerPage = (int) MAX_getStoredValue('setPerPage', 15);
39+
$setPerPage = MAX_getSetPerPageValue(15);
4040
$pageID = (int) MAX_getStoredValue('pageID', 1);
4141

4242
if (!empty($day)) {
@@ -221,7 +221,7 @@
221221

222222

223223
$aParams['totalItems'] = count($aConversions);
224-
$aParams['perPage'] = (int) MAX_getStoredValue('setPerPage', 15);
224+
$aParams['perPage'] = $setPerPage;
225225

226226
if (!isset($pageID) || $pageID == 1) {
227227
$aParams['startRecord'] = 0;
@@ -233,8 +233,7 @@
233233

234234
$aConversions = Admin_DA::fromCache('getConversions', $aParams + $aDates);
235235

236-
237-
$pager = &Pager::factory($aParams);
236+
$pager = Pager::factory($aParams);
238237
$per_page = $pager->_perPage;
239238
$pager->history = $pager->getPageData();
240239
$pager->pagerLinks = $pager->getLinks();

www/admin/userlog-index.php

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171

7272
// Paging related input variables
7373
$listorder = htmlspecialchars(MAX_getStoredValue('listorder', 'updated'));
74-
$oAudit = &OA_Dal::factoryDO('audit');
74+
$oAudit = OA_Dal::factoryDO('audit');
7575
$aAuditColumns = $oAudit->table();
7676
$aColumnNamesFound = array_keys($aAuditColumns, $listorder);
7777
if (empty($aColumnNamesFound)) {
@@ -86,7 +86,8 @@
8686
$orderdirection = 'up';
8787
}
8888
}
89-
$setPerPage = (int) MAX_getStoredValue('setPerPage', 10);
89+
90+
$setPerPage = MAX_getSetPerPageValue(10);
9091
$pageID = (int) MAX_getStoredValue('pageID', 1);
9192

9293
// Setup date selector
@@ -158,6 +159,7 @@
158159
$oTrans = new OX_Translation();
159160

160161
$aParams = [
162+
'perPage' => $setPerPage,
161163
'order' => $orderdirection,
162164
'listorder' => $listorder,
163165
'start_date' => $startDate,
@@ -189,9 +191,7 @@
189191
}
190192

191193
$oUserlog = new OA_Dll_Audit();
192-
$aAuditData = $oUserlog->getAuditLog($aParams);
193-
194-
$aParams['totalItems'] = is_array($aAuditData) ? count($aAuditData) : 0;
194+
$aParams['totalItems'] = $oUserlog->countAuditLog($aParams);
195195

196196
if (!isset($pageID) || $pageID == 1) {
197197
$aParams['startRecord'] = 0;
@@ -200,16 +200,13 @@
200200
}
201201

202202
if ($aParams['startRecord'] > $aParams['totalItems']) {
203-
$aParams['startRecord'] = 0;
203+
$aParams['startRecord'] = $setPerPage * (int) floor($aParams['totalItems'] / $setPerPage);
204204
}
205205

206-
$aParams['perPage'] = (int) MAX_getStoredValue('setPerPage', 10);
207-
208206
// Retrieve audit details
209207
$aAuditData = $oUserlog->getAuditLog($aParams);
210208

211-
$pager = &Pager::factory($aParams);
212-
$per_page = $pager->_perPage;
209+
$pager = Pager::factory($aParams);
213210
$pager->history = $pager->getPageData();
214211
$pager->pagerLinks = $pager->getLinks();
215212

0 commit comments

Comments
 (0)