1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
rowassembler.php
См. документацию.
1<?php
2
3namespace Bitrix\Main\Grid\Row;
4
5use Generator;
6
34abstract class RowAssembler
35{
39 private array $fieldAssemblers;
43 private array $visibleColumnIds;
44
48 public function __construct(array $visibleColumnIds)
49 {
50 $this->visibleColumnIds = $visibleColumnIds;
51 }
52
56 abstract protected function prepareFieldAssemblers(): array;
57
61 final protected function getVisibleColumnIds(): array
62 {
63 return $this->visibleColumnIds;
64 }
65
69 private function getAssemblers(): array
70 {
71 if (!isset($this->fieldAssemblers))
72 {
73 $this->fieldAssemblers = [];
74
75 foreach ($this->prepareFieldAssemblers() as $assembler)
76 {
77 $this->fieldAssemblers[] = $assembler;
78 }
79 }
80
81 return $this->fieldAssemblers;
82 }
83
87 private function getFilteredAssemblers(): Generator
88 {
89 foreach ($this->getAssemblers() as $fieldAssembler)
90 {
91 $assemblerColumnsIds = $fieldAssembler->getColumnIds();
92 $columnsIds = array_intersect($assemblerColumnsIds, $this->getVisibleColumnIds());
93
94 if (!empty($columnsIds))
95 {
96 if (count($assemblerColumnsIds) !== count($columnsIds))
97 {
98 yield $fieldAssembler->clone($columnsIds);
99 }
100 else
101 {
102 yield $fieldAssembler;
103 }
104 }
105 }
106 }
107
115 public function prepareRows(array $rowsList): array
116 {
117 foreach ($this->getFilteredAssemblers() as $fieldAssembler)
118 {
119 $rowsList = $fieldAssembler->prepareRows($rowsList);
120 }
121
122 return $rowsList;
123 }
124}
__construct(array $visibleColumnIds)
Определения rowassembler.php:48
prepareRows(array $rowsList)
Определения rowassembler.php:115
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936