1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
seo_keywords.php
См. документацию.
1<?php
2
4{
5 public static function GetList($arOrder, $arFilter)
6 {
7 global $DB;
8
9 $arAllFields = array('ID', 'URL', 'SITE_ID', 'KEYWORDS');
10
11 $arWhere = array();
12
13 foreach ($arFilter as $key => $value)
14 {
15 if (in_array($key, $arAllFields))
16 {
17 switch ($key)
18 {
19 case 'ID':
20 $arWhere[] = 'ID=\''.intval($value).'\'';
21 break;
22
23 case 'SITE_ID':
24 $arWhere[] = 'SITE_ID=\''.$DB->ForSql($value).'\'';
25 break;
26
27 case 'URL':
28 if (array_key_exists('URL_EXACT_MATCH', $arFilter) && $arFilter['URL_EXACT_MATCH'] == 'N')
29 $arWhere[] = 'URL LIKE \''.$DB->ForSql($value).'%\'';
30 else
31 $arWhere[] = 'URL=\''.$DB->ForSql($value).'\'';
32 break;
33
34 case 'KEYWORDS':
35 $arWhere[] = 'KEYWORDS LIKE \'%'.$DB->ForSql($value).'%\'';
36 break;
37 }
38 }
39 }
40
41 $strWhere = '';
42 if (count($arWhere) > 0)
43 $strWhere = 'WHERE '.implode(' AND ', $arWhere);
44
45 $strOrder = '';
46 foreach ($arOrder as $key => $dir)
47 {
48 $dir = mb_strtoupper($dir);
49 $key = mb_strtoupper($key);
50
51 if ($dir != 'DESC') $dir = 'ASC';
52
53 if (in_array($key, $arAllFields))
54 {
55 $strOrder .= ($strOrder == '' ? '' : ', ').$DB->ForSql($key).' '.$dir;
56 }
57
58 }
59 if ($strOrder != '') $strOrder = 'ORDER BY '.$strOrder;
60
61 $query = 'SELECT * FROM b_seo_keywords ';
62 $query .= $strWhere.' ';
63 $query .= $strOrder;
64
65 return $DB->Query($query);
66 }
67
68 public static function CheckFields($ACTION, &$arFields)
69 {
70 if ($ACTION == 'UPDATE' && isset($arFields['ID']))
71 $arFields['ID'] = intval($arFields['ID']);
72
74
75 if (isset($arFields['KEYWORDS']))
76 {
77 if (!is_array($arFields['KEYWORDS']))
78 $arKeywords = explode(",", $arFields['KEYWORDS']);
79 else
80 $arKeywords = array_values($arFields['KEYWORDS']);
81
82 if (!is_array($arKeywords))
83 $arKeywords = array();
84
85 foreach ($arKeywords as $key => $value)
86 {
87 $arKeywords[$key] = trim($value);
88 if ($arKeywords[$key] == '')
89 unset($arKeywords[$key]);
90 }
91
92 $arFields['KEYWORDS'] = implode(', ', $arKeywords);
93 }
94 else
95 {
96 $arFields['KEYWORDS'] = '';
97 }
98
99 if (!isset($arFields['SITE_ID']) && defined('SITE_ID'))
100 $arFields['SITE_ID'] = SITE_ID;
101
102 return true;
103 }
104
105 public static function Add($arFields)
106 {
107 global $APPLICATION, $DB;
108
110 {
111 return false;
112 }
113
114 $arAllFields = array('URL', 'SITE_ID', 'KEYWORDS');
115
116 $arInsert = array();
117 foreach ($arFields as $key => $value)
118 {
119 if (in_array($key, $arAllFields))
120 {
121 $arInsert[$key] = "'".($key == 'SITE_ID' ? $DB->ForSql($value, 2) : $DB->ForSql($value))."'";
122 }
123 }
124
125 $ID = $DB->Insert('b_seo_keywords', $arInsert);
126 return $ID;
127 }
128
129 public static function Update($arFields)
130 {
131 global $APPLICATION, $DB;
132
133 if (!CSeoKeywords::CheckFields('UPDATE', $arFields))
134 {
135 return false;
136 }
137
138 $strUpdateBy = isset($arFields['ID']) ? 'ID' : 'URL';
139
140 if ($strUpdateBy == 'ID')
141 {
142 $ID = $arFields['ID'];
143 unset($arFields['ID']);
144 }
145 else
146 {
147 $URL = $DB->ForSql($arFields['URL']);
148 unset($arFields['URL']);
149 }
150
151 $arAllFields = array('ID', 'URL', 'SITE_ID', 'KEYWORDS');
152
153 $arUpdate = array();
154 foreach ($arFields as $key => $value)
155 {
156 if (in_array($key, $arAllFields))
157 {
158 $arUpdate[$key] = "'".($key == 'SITE_ID' ? $DB->ForSql($value, 2) : $DB->ForSql($value))."'";
159 }
160 }
161
162 $condition = $strUpdateBy == 'ID' ? 'WHERE ID=\''.$ID.'\'' : 'WHERE URL=\''.$URL.'\'';
163 if($siteId = $DB->ForSql($arFields['SITE_ID']))
164 $condition .= ' AND SITE_ID=\''.$siteId.'\'';
165 $cnt = $DB->Update('b_seo_keywords', $arUpdate, $condition);
166
167 if ($cnt <= 0 && $strUpdateBy == 'URL')
168 {
169 $arUpdate['URL'] = "'".$URL."'";
170 $cnt = intval(($DB->Insert('b_seo_keywords', $arUpdate)) > 0);
171 }
172
173 return $cnt;
174 }
175
176 public static function GetByURL($URL, $SITE_ID = false, $bPart = false, $bCleanUrl = false)
177 {
178 if ($bCleanUrl)
179 $URL = CSeoUtils::CleanURL($URL);
180
181 $arFilter = array('URL' => $URL);
182 if ($bPart)
183 $arFilter['URL_EXACT_MATCH'] = 'N';
184 if ($SITE_ID)
185 $arFilter['SITE_ID'] = $SITE_ID;
186
187 $dbRes = CSeoKeywords::GetList(array('URL' => 'ASC', 'ID' => 'ASC'), $arFilter);
188 $arKeywords = array();
189 while ($arRes = $dbRes->Fetch())
190 {
191 $arKeywords[] = $arRes;
192 }
193
194 return $arKeywords;
195 }
196}
global $APPLICATION
Определения include.php:80
Определения seo_keywords.php:4
static GetList($arOrder, $arFilter)
Определения seo_keywords.php:5
static Add($arFields)
Определения seo_keywords.php:105
static CheckFields($ACTION, &$arFields)
Определения seo_keywords.php:68
static GetByURL($URL, $SITE_ID=false, $bPart=false, $bCleanUrl=false)
Определения seo_keywords.php:176
static Update($arFields)
Определения seo_keywords.php:129
static CleanURL($URL)
Определения seo_utils.php:4
$arFields
Определения dblapprove.php:5
</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
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29
$ACTION
Определения csv_new_setup.php:27
$siteId
Определения ajax.php:8
$dir
Определения quickway.php:303
if(empty($signedUserToken)) $key
Определения quickway.php:257
</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
$arRes
Определения options.php:104
const SITE_ID
Определения sonet_set_content_view.php:12
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168
$SITE_ID
Определения yandex_run.php:607