1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
webpackclear.php
См. документацию.
1<?php
2
3namespace Bitrix\Landing\Update\Assets;
4
5use Bitrix\Main\Update\Stepper;
6use Bitrix\Main\FileTable;
7use Bitrix\Landing;
8
9final class WebpackClear extends Stepper
10{
11 protected const CONTINUE_EXECUTING = true;
12 protected const STOP_EXECUTING = false;
13 protected const STEP_PORTION = 100;
14 protected const WEBPACK_NAME_MASK = 'landing_assets_webpack';
15 protected const MODULE_ID = 'landing';
16
21 protected $filesToDelete;
22
23 protected static $moduleId = 'landing';
24
30 public function execute(array &$result): bool
31 {
32 $countToStep = count($this->getFilesToDelete());
33
34 if ($countToStep <= 0)
35 {
36 return self::STOP_EXECUTING;
37 }
38
39 $portionToDelete = array_slice($this->getFilesToDelete(), 0, self::STEP_PORTION);
40 foreach ($portionToDelete as $fileId)
41 {
42 \CFile::Delete($fileId);
43 }
44
45 if ($countToStep <= self::STEP_PORTION)
46 {
47 return self::STOP_EXECUTING;
48 }
49
50 $result['count'] = $result['count'] ?: $countToStep;
51 $result['steps'] = $result['steps'] ? ($result['steps'] + self::STEP_PORTION) : self::STEP_PORTION;
52
53 return self::CONTINUE_EXECUTING;
54 }
55
56 protected function getFilesToDelete(): array
57 {
58 if (!$this->filesToDelete)
59 {
60 $this->findFilesToDelete();
61 }
62
64 }
65
69 protected function findFilesToDelete(): void
70 {
71 $fileIds = [];
72 $dbFiles = FileTable::getList([
73 'select' => ['ID'],
74 'filter' => [
75 '%ORIGINAL_NAME' => self::WEBPACK_NAME_MASK,
76 '=MODULE_ID' => self::MODULE_ID,
77 ],
78 ]);
79 while ($row = $dbFiles->fetch())
80 {
81 $fileIds[] = (int)$row['ID'];
82 }
83
84 $landingFileIds = [];
85 $fileIdsInRecycleBin = array_map(
86 function($i)
87 {
88 return $i * -1;
89 },
90 $fileIds
91 );
92 $dbLandingFiles = Landing\Internals\FileTable::getList([
93 'select' => ['FILE_ID'],
94 'filter' => [
95 'FILE_ID' => array_merge($fileIds, $fileIdsInRecycleBin),
96 ],
97 ]);
98 while ($row = $dbLandingFiles->fetch())
99 {
100 $landingFileIds[] = abs($row['FILE_ID']);
101 }
102
103 $this->filesToDelete = array_diff($fileIds, array_unique($landingFileIds));
104 }
105
112 public static function clearNotBindedFiles(): void
113 {
114 Stepper::bindClass('Bitrix\Landing\Update\Assets\WebpackClear', 'landing', 600);
115 }
116}
execute(array &$result)
Определения webpackclear.php:30
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$i
Определения factura.php:643
</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