1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
seo_utils.php
См. документацию.
1<?
3{
4 public static function CleanURL($URL)
5 {
6 if (false !== ($pos = mb_strpos($URL, '?')))
7 {
8 $query = mb_substr($URL, $pos + 1);
9 $URL = mb_substr($URL, 0, $pos);
10
11 $arQuery = explode('&', $query);
12
13 $arExcludedParams = array('clear_cache', 'clear_cache_session', 'back_url_admin', 'back_url', 'backurl', 'login', 'logout', 'compress');
14 foreach ($arQuery as $key => $param)
15 {
16 if (false !== ($pos = mb_strpos($param, '=')))
17 {
18 $param_name = mb_strtolower(mb_substr($param, 0, $pos));
19 if (
20 mb_substr($param_name, 0, 7) == 'bitrix_'
21 || mb_substr($param_name, 0, 5) == 'show_'
22 || in_array($param_name, $arExcludedParams)
23 )
24 {
25 unset($arQuery[$key]);
26 }
27 }
28 }
29
30 if (count($arQuery) > 0)
31 {
32 $URL .= '?'.implode('&', $arQuery);
33 }
34 }
35
36 return $URL;
37 }
38
39 public static function getDomainsList()
40 {
41 static $arDomains = null;
42
43 if($arDomains === null)
44 {
45 $arDomains = array();
46
47 $dbSites = Bitrix\Main\SiteDomainTable::getList(
48 array(
49 'select'=>array(
50 'DOMAIN', 'LID',
51 'SITE_NAME'=>'SITE.NAME', 'SITE_ACTIVE' => 'SITE.ACTIVE',
52 'SITE_DIR' => 'SITE.DIR', 'SITE_DOC_ROOT' => 'SITE.DOC_ROOT'
53 )
54 )
55 );
56
57 $defaultDomain = CBXPunycode::ToASCII(Bitrix\Main\Config\Option::getRealValue('main', 'server_name'), $e);
58
59 $bCurrentHostFound = false;
60 while($arSite = $dbSites->fetch())
61 {
62 $arDomains[] = $arSite;
63 if($arSite['DOMAIN'] == $defaultDomain)
64 $bCurrentHostFound = true;
65 }
66
67 if(!$bCurrentHostFound)
68 {
70 'filter' => array('DEF' => 'Y'),
71 'select' => array('LID', 'NAME', 'ACTIVE'),
72 ));
73 $arDefSite = $dbDefSite->fetch();
74 if($arDefSite)
75 {
76 array_unshift($arDomains, array(
77 'DOMAIN' => $defaultDomain,
78 'LID' => $arDefSite['LID'],
79 'SITE_NAME' => $arDefSite['NAME'],
80 'SITE_ACTIVE' => $arDefSite['ACTIVE'],
81 'SITE_DIR' => $arDefSite['DIR'],
82 'SITE_DOC_ROOT' => $arDefSite['DOC_ROOT'],
83 ));
84 }
85 }
86 }
87
88 return $arDomains;
89 }
90
91 public static function getDirStructure($bLogical, $site, $path)
92 {
93 global $USER;
94
95 // for cron agents make fake user
96 if ($USER === null)
97 {
98 $USER = new \CUser();
99 if (!$USER->Authorize(1))
100 {
101 return [];
102 }
103
104 $isFakeUser = true;
105 }
106
107 $arDirContent = [];
108 if ($USER->CanDoFileOperation('fm_view_listing', array($site, $path)))
109 {
111
112 $arDirs = [];
113 $arFiles = [];
114
116 [$site, $path],
117 $arDirs,
118 $arFiles,
119 [],
120 ["NAME" => "asc"],
121 "DF",
122 $bLogical,
123 true
124 );
125
126 $arDirContent_t = array_merge($arDirs, $arFiles);
127 for ($i = 0, $l = count($arDirContent_t); $i < $l; $i++)
128 {
129 $file = $arDirContent_t[$i];
130 $arPath = array($site, $file['ABS_PATH']);
131 if (
132 ($file["TYPE"] == "F" && !$USER->CanDoFileOperation('fm_view_file', $arPath))
133 || ($file["TYPE"] == "D" && !$USER->CanDoFileOperation('fm_view_listing', $arPath))
134 || ($file["TYPE"] == "F" && $file["NAME"] == ".section.php")
135 )
136 {
137 continue;
138 }
139
140 $f = $file['TYPE'] == 'F'
141 ? new \Bitrix\Main\IO\File($file['PATH'], $site)
142 : new \Bitrix\Main\IO\Directory($file['PATH'], $site);
143
144 $p = $f->getName();
145
146 if (
147 $f->isSystem()
148 || $file['TYPE'] == 'F' && in_array($p, ["urlrewrite.php"])
149 || $file['TYPE'] == 'D'
150 && preg_match(
151 "/\/(bitrix|" . \COption::getOptionString("main", "upload_dir", "upload") . ")\//",
152 "/" . $p . "/"
153 )
154 )
155 {
156 continue;
157 }
158
159 $arFileData = [
160 'NAME' => $bLogical ? $file['LOGIC_NAME'] : $p,
161 'FILE' => $p,
162 'TYPE' => $file['TYPE'],
163 'DATA' => $file,
164 ];
165
166 if ($arFileData['NAME'] == '')
167 {
168 $arFileData['NAME'] = GetMessage('SEO_DIR_LOGICAL_NO_NAME');
169 }
170
171 $arDirContent[] = $arFileData;
172 }
173 unset($arDirContent_t);
174 }
175
176 if (isset($isFakeUser) && $isFakeUser === true)
177 {
178 unset($USER);
179 }
180
181 return $arDirContent;
182 }
183}
184?>
$path
Определения access_edit.php:21
$dbSites
Определения options.php:14
static includeModule($moduleName)
Определения loader.php:67
static getList(array $parameters=array())
Определения datamanager.php:431
static ToASCII($domainName, &$arErrors)
Определения punycode.php:44
static GetDirList($path, &$arDirs, &$arFiles, $arFilter=Array(), $sort=Array(), $type="DF", $bLogical=false, $task_mode=false)
Определения fileman.php:767
Определения seo_utils.php:3
static CleanURL($URL)
Определения seo_utils.php:4
static getDirStructure($bLogical, $site, $path)
Определения seo_utils.php:91
static getDomainsList()
Определения seo_utils.php:39
$f
Определения component_props.php:52
$arPath
Определения file_edit.php:72
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$query
Определения get_search.php:11
$p
Определения group_list_element_edit.php:23
global $USER
Определения csv_new_run.php:40
$l
Определения options.php:783
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$arFiles
Определения options.php:60
if(empty($signedUserToken)) $key
Определения quickway.php:257
$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
$arDirs
Определения translate_tools.php:10
$site
Определения yandex_run.php:614