-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdateFiles.php
More file actions
70 lines (66 loc) · 2.38 KB
/
updateFiles.php
File metadata and controls
70 lines (66 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
if(!isset($_SERVER['DOCUMENT_ROOT']) || empty($_SERVER['DOCUMENT_ROOT'])){
$_SERVER['DOCUMENT_ROOT'] = __DIR__;
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
$replaceList = [
'RU' => [
'TYPE_REF' => '\\GlcGroup\\Enum\\IblockType',
'CODE_REF' => '\\GlcGroup\\Enum\\IblockCode',
'ITEMS' => [
1 => 'SLIDER',
2 => 'ADVANTAGES_MAIN',
3 => 'SERVICES_MAIN',
4 => 'DOCUMENTS',
5 => 'NEWS',
6 => 'REVIEWS',
7 => 'LICENSES',
8 => 'VACANCIES',
9 => 'PARTNERS',
10 => 'FAQ',
11 => 'COMPANY_HISTORY',
12 => 'CATALOG',
13 => 'CATALOG_COMMENTS',
14 => 'ORDERS',
15 => 'STAFF',
16 => 'ARTICLES',
17 => 'COMMENTS_ARTICLES',
18 => 'OUR_PROJECTS',
19 => 'SERVICES',
20 => 'STOCKS',
21 => 'PHOTO_ABOUT_COMPANY_MAIN',
22 => 'PHOTO_GALLERY',
23 => 'BANNER_CATALOG',
24 => 'BANNER_SERVICES',
25 => 'BANNER_PROJECTS',
26 => 'CONTENT_FEATURES_COLLECTION',
],
],
];
$dir = new \Bitrix\Main\IO\Directory($_SERVER['DOCUMENT_ROOT']);
recursiveChange($dir, $replaceList);
function recursiveChange(\Bitrix\Main\IO\FileSystemEntry $children, $replaceList){
if($children->isDirectory()){
/** @var \Bitrix\Main\IO\Directory $children */
foreach ($children->getChildren() as $child) {
recursiveChange($child, $replaceList);
}
} else {
/** @var \Bitrix\Main\IO\File $children */
if($children->isFile()){
$data = $children->getContents();
if(!empty($data)) {
foreach ($replaceList as $type => $repl) {
foreach ($repl['ITEMS'] as $iblockId => $codeInRef) {
$data = \preg_replace('/([\'"]IBLOCK_?ID[\'"]\s*=>?\s*)[\'"]?'.$iblockId.'[\'"]?/im',
"$1 \\Vf92\\BitrixUtils\\Iblock\\IblockHelper::getIblockId(".$repl['TYPE_REF']."::".$type.", ".$repl['TYPE_REF']."::".$codeInRef.")",
$data);
}
}
if(!empty($data)) {
$children->putContents($data);
}
}
}
}
}