1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
seo_yandex.php
См. документацию.
1<?
2require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
3
4if (!$USER->CanDoOperation('seo_tools') || !check_bitrix_sessid())
5 die(GetMessage("ACCESS_DENIED"));
6
11
14
15Loc::loadMessages(__DIR__.'/../include.php');
16
17$engine = new Engine\Yandex();
18
19if(isset($_REQUEST['action']))
20{
21 $res = array();
22
23 $arDomain = null;
24 if(isset($_REQUEST['domain']) && $_REQUEST['domain'] <> '')
25 {
26 $bFound = false;
27 $arDomains = \CSeoUtils::getDomainsList();
28 foreach($arDomains as $arDomain)
29 {
30 if($arDomain['DOMAIN'] == $_REQUEST['domain'] && rtrim($arDomain['SITE_DIR'], '/') == rtrim($_REQUEST['dir'], '/'))
31 {
32 $bFound = true;
33 break;
34 }
35 }
36
37 if(!$bFound)
38 {
39 $res = array('error' => 'Unknown site!');
40 }
41 }
42
43 if(!$res['error'])
44 {
45 try
46 {
47 switch($_REQUEST['action'])
48 {
49 case 'nullify_auth':
50 $engine->clearAuthSettings();
51 $res = array("result" => true);
52 break;
53
54 case 'sites_feed':
55 $res = $engine->getFeeds();
56 break;
57
58 case 'site_add':
59 $res = $engine->addSite($arDomain['DOMAIN'], $arDomain['SITE_DIR']);
60 $res['_domain'] = $arDomain['DOMAIN'];
61 break;
62
63 case 'top-queries':
64 $res = $engine->getSiteInfoQueries($arDomain['DOMAIN']);
65 break;
66
67 case 'site_verify':
68 $res = array('error' => array('message' => 'Unknown domain'));
69
70 if(is_array($arDomain))
71 {
72 $arFeeds = $engine->getFeeds();
73 if(isset($arFeeds[$arDomain['DOMAIN']]) && is_array($arFeeds[$arDomain['DOMAIN']]))
74 {
75// todo: remove 'VERIFIED' after complete migration to v3
76 if(/*$arFeeds[$arDomain['DOMAIN']]['verification'] != 'VERIFIED' || */$arFeeds[$arDomain['DOMAIN']]['verified'] === false)
77 {
78// get unnicue string for verification
79 $uin = $engine->getVerifySiteUin($arDomain['DOMAIN']);
80 if($uin)
81 {
82 $filename = "yandex_".$uin.".html";
83
84 $path = Path::combine((
85 $arDomain['SITE_DOC_ROOT'] <> ''
86 ? $arDomain['SITE_DOC_ROOT']
87 : $_SERVER['DOCUMENT_ROOT']
88 ), $arDomain['SITE_DIR'], $filename);
89 $obFile = new \Bitrix\Main\IO\File($path);
90 $obFile->putContents('<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>Verification: '.$uin.'</body></html>');
91
92 $res = $engine->verifySite($arDomain['DOMAIN']);
93
94 //$obFile->delete();
95 }
96 }
97 }
98
99 $res['_domain'] = $arDomain['DOMAIN'];
100 }
101 else
102 {
103 $res = array('error' => 'No domain');
104 }
105 break;
106
107 case 'original_text':
108 $textContent = $_POST['original_text'];
109 $res = $engine->addOriginalText($textContent, $arDomain['DOMAIN']);
110 break;
111
112 case 'original_texts':
113 $res = $engine->getOriginalTexts($arDomain['DOMAIN']);
114 break;
115
116 default:
117 $res = array('error' => 'unknown action');
118 break;
119 }
120 }
121 catch(Engine\YandexException $e)
122 {
123 $res = array(
124 'error' => array(
125 'message' => $e->getMessage(),
126 'status' => $e->getStatus(),
127 'code' => $e->getCode(),
128 )
129 );
130 }
131 }
132
133 Header('Content-type: application/json; charset='.LANG_CHARSET);
134 echo \Bitrix\Main\Web\Json::encode($res);
135}
136elseif (isset($_REQUEST['get']))
137{
138 switch($_REQUEST['get'])
139 {
140
141 case 'original_text_form':
142 $arSettings = $engine->getSettings();
143 $arDomains = \CSeoUtils::getDomainsList();
144
145// if empty - save list of webmaster-sites in settings
146 if(empty($arSettings['SITES']))
147 {
148 $engine->getFeeds();
149 $arSettings = $engine->getSettings();
150 }
151
152 foreach($arDomains as $key => $domain)
153 {
154 if(!isset($arSettings['SITES'][$domain['DOMAIN']]))
155 {
156 unset($arDomains[$key]);
157 }
158 }
159
160 if(count($arDomains) <= 0)
161 {
162 $msg = new CAdminMessage(array(
163 'MESSAGE' => Loc::getMessage('SEO_YANDEX_ERROR'),
164 'HTML' => 'Y'
165 ));
166 echo $msg->Show();
167 }
168 else
169 {
170?>
171<div id="seo_original_text_form_form">
172<form name="seo_original_text_form" style="padding:0;margin: 0;">
173 <b><?=Loc::getMessage('SEO_YANDEX_DOMAIN')?>: </b><select name="domain">
174<?
175 foreach($arDomains as $domain)
176 {
177 $errors = [];
178 $domainView = \CBXPunycode::ToUnicode($domain['DOMAIN'], $errors);
179 $domainEnc = Converter::getHtmlConverter()->encode($domain['DOMAIN']);
180 $domainViewEnc = Converter::getHtmlConverter()->encode($domainView);
181
182
183 ?>
184 <option value="<?=$domainEnc?>"><?=$domainViewEnc?></option>
185<?
186 }
187?>
188 </select><br /><br />
189 <textarea style="width: 700px; height: 450px;" name="original_text"></textarea>
190</form>
191</div><div id="seo_original_text_form_ok" style="display: none;">
192<?
194 array(
195 "MESSAGE" => Loc::getMessage('SEO_YANDEX_ORIGINAL_TEXT_OK'),
196 "HTML" => true,
197 "DETAILS" => Loc::getMessage('SEO_YANDEX_ORIGINAL_TEXT_OK_DETAILS',
198 array('#LANGUAGE_ID#' => LANGUAGE_ID)
199 ),
200 "TYPE" => "OK",
201 )
202 );
203?>
204</div>
205<?
206 }
207 break;
208 }
209}
210?>
$path
Определения access_edit.php:21
return select
Определения access_edit.php:440
Определения path.php:12
static includeModule($moduleName)
Определения loader.php:67
Определения admin_lib.php:2166
static ShowMessage($message)
Определения admin_lib.php:2351
static ToUnicode($domainName, &$arErrors)
Определения punycode.php:65
static getDomainsList()
Определения seo_utils.php:39
$filename
Определения file_edit.php:47
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$bFound
Определения get_search.php:40
$errors
Определения iblock_catalog_edit.php:74
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $USER
Определения csv_new_run.php:40
const LANG_CHARSET
Определения include.php:65
check_bitrix_sessid($varname='sessid')
Определения tools.php:4686
GetMessage($name, $aReplace=null)
Определения tools.php:3397
Определения action.php:3
Определения bitrix.php:9
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
die
Определения quickway.php:367
font style
Определения invoice.php:442
</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
$engine
Определения options.php:121