CanDoOperation('seo_tools') || !check_bitrix_sessid()) die(GetMessage("ACCESS_DENIED")); use Bitrix\Seo\Engine; use Bitrix\Main\Text\Converter; use Bitrix\Main\Localization\Loc; use Bitrix\Main\IO\Path; \Bitrix\Main\Loader::includeModule('seo'); \Bitrix\Main\Loader::includeModule('socialservices'); CUtil::JSPostUnescape(); Loc::loadMessages(__DIR__.'/../include.php'); $engine = new Engine\Yandex(); if(isset($_REQUEST['action'])) { $res = array(); $arDomain = null; if(isset($_REQUEST['domain']) && $_REQUEST['domain'] <> '') { $bFound = false; $arDomains = \CSeoUtils::getDomainsList(); foreach($arDomains as $arDomain) { if($arDomain['DOMAIN'] == $_REQUEST['domain'] && rtrim($arDomain['SITE_DIR'], '/') == rtrim($_REQUEST['dir'], '/')) { $bFound = true; break; } } if(!$bFound) { $res = array('error' => 'Unknown site!'); } } if(!$res['error']) { try { switch($_REQUEST['action']) { case 'nullify_auth': $engine->clearAuthSettings(); $res = array("result" => true); break; case 'sites_feed': $res = $engine->getFeeds(); break; case 'site_add': $res = $engine->addSite($arDomain['DOMAIN'], $arDomain['SITE_DIR']); $res['_domain'] = $arDomain['DOMAIN']; break; case 'top-queries': $res = $engine->getSiteInfoQueries($arDomain['DOMAIN']); break; case 'site_verify': $res = array('error' => array('message' => 'Unknown domain')); if(is_array($arDomain)) { $arFeeds = $engine->getFeeds(); if(isset($arFeeds[$arDomain['DOMAIN']]) && is_array($arFeeds[$arDomain['DOMAIN']])) { // todo: remove 'VERIFIED' after complete migration to v3 if(/*$arFeeds[$arDomain['DOMAIN']]['verification'] != 'VERIFIED' || */$arFeeds[$arDomain['DOMAIN']]['verified'] === false) { // get unnicue string for verification $uin = $engine->getVerifySiteUin($arDomain['DOMAIN']); if($uin) { $filename = "yandex_".$uin.".html"; $path = Path::combine(( $arDomain['SITE_DOC_ROOT'] <> '' ? $arDomain['SITE_DOC_ROOT'] : $_SERVER['DOCUMENT_ROOT'] ), $arDomain['SITE_DIR'], $filename); $obFile = new \Bitrix\Main\IO\File($path); $obFile->putContents('Verification: '.$uin.''); $res = $engine->verifySite($arDomain['DOMAIN']); //$obFile->delete(); } } } $res['_domain'] = $arDomain['DOMAIN']; } else { $res = array('error' => 'No domain'); } break; case 'original_text': $textContent = $_POST['original_text']; $res = $engine->addOriginalText($textContent, $arDomain['DOMAIN']); break; case 'original_texts': $res = $engine->getOriginalTexts($arDomain['DOMAIN']); break; default: $res = array('error' => 'unknown action'); break; } } catch(Engine\YandexException $e) { $res = array( 'error' => array( 'message' => $e->getMessage(), 'status' => $e->getStatus(), 'code' => $e->getCode(), ) ); } } Header('Content-type: application/json; charset='.LANG_CHARSET); echo \Bitrix\Main\Web\Json::encode($res); } elseif (isset($_REQUEST['get'])) { switch($_REQUEST['get']) { case 'original_text_form': $arSettings = $engine->getSettings(); $arDomains = \CSeoUtils::getDomainsList(); // if empty - save list of webmaster-sites in settings if(empty($arSettings['SITES'])) { $engine->getFeeds(); $arSettings = $engine->getSettings(); } foreach($arDomains as $key => $domain) { if(!isset($arSettings['SITES'][$domain['DOMAIN']])) { unset($arDomains[$key]); } } if(count($arDomains) <= 0) { $msg = new CAdminMessage(array( 'MESSAGE' => Loc::getMessage('SEO_YANDEX_ERROR'), 'HTML' => 'Y' )); echo $msg->Show(); } else { ?>

Fatal error: Uncaught Error: Class "Loc" not found in D:\ktt\ttepla.com\public_html\bitrix\modules\seo\tools\seo_yandex.php:176 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\seo\tools\seo_yandex.php on line 176