1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
proxyresult.php
См. документацию.
1<?php
2class CSaleProxyResult extends CDBResult
3{
4 private $parameters = array();
5 private $entityName = '';
6
7 public function __construct($parameters, $entityName)
8 {
9 $this->parameters = $parameters;
10 $this->entityName = $entityName;
11 parent::__construct(array());
12 }
13
14 function NavStart($nPageSize = 20, $bShowAll = true, $iNumPage = false)
15 {
16 $this->InitNavStartVars(intval($nPageSize), $bShowAll, $iNumPage);
17
18 // force to db resource type, although we got empty array on input
19 $en = $this->entityName;
20
21 $runtime = $this->parameters['runtime'] ?? [];
22 if (!is_array($runtime))
23 {
24 $runtime = [];
25 }
26 $filter = $this->parameters['filter'] ?? [];
27 if (!is_array($filter))
28 {
29 $filter = [];
30 }
31
32 // to increase perfomance, have to throw away unused (in filter) runtimes
33 foreach($runtime as $fld => $desc)
34 {
35 $found = false;
36 foreach($filter as $condition => $value)
37 {
38 if(mb_strpos($condition, $fld) !== false)
39 {
40 $found = true;
41 break;
42 }
43 }
44
45 if(!$found)
46 unset($runtime[$fld]);
47 }
48
49 $count = $en::getList(array(
50 'filter' => $filter,
51 'select' => array('REC_CNT'),
52 'runtime' => array_merge($runtime, array(
53 'REC_CNT' => array(
54 'data_type' => 'integer',
55 'expression' => array(
56 'count(*)'
57 )
58 )
59 ))
60 ))->fetch();
61 $this->NavRecordCount = $count['REC_CNT'];
62
63 // the following code was taken from DBNavStart()
64
65 // here we could use Bitrix\Main\DB\Paginator
66
67 //calculate total pages depend on rows count. start with 1
68 $this->NavPageCount = floor($this->NavRecordCount/$this->NavPageSize);
69 if($this->NavRecordCount % $this->NavPageSize > 0)
70 $this->NavPageCount++;
71
72 //page number to display. start with 1
73 $this->calculatePageNumber();
74
75 $parameters = $this->parameters;
76 $parameters['limit'] = $this->NavPageSize;
77 $parameters['offset'] = ($this->NavPageNomer - 1) * $this->NavPageSize;
78
79 $res = $en::getList($parameters);
80 $this->arResult = array();
81 while($item = $res->Fetch())
82 $this->arResult[] = $item;
83 }
84}
$count
Определения admin_tab.php:4
$bShowAll
Определения dbresult.php:21
InitNavStartVars($nPageSize=0, $bShowAll=true, $iNumPage=false)
Определения dbresult.php:822
calculatePageNumber(int $defaultNumber=1, bool $useSession=true, bool $checkOutOfRange=false)
Определения dbresult.php:911
$NavPageSize
Определения dbresult.php:22
Определения proxyresult.php:3
NavStart($nPageSize=20, $bShowAll=true, $iNumPage=false)
Определения proxyresult.php:14
__construct($parameters, $entityName)
Определения proxyresult.php:7
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
$filter
Определения iblock_catalog_list.php:54
if(mb_strlen($order)< 6) $desc
Определения payment.php:44