Your IP : 18.191.165.193


Current Path : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/seo/tools/
Upload File :
Current File : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/seo/tools/seo_google.php

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/prolog.php");

if (!$USER->CanDoOperation('seo_tools'))
	die(GetMessage("ACCESS_DENIED"));

use Bitrix\Seo\Engine;
use Bitrix\Main\IO\Path;

IncludeModuleLangFile(__FILE__);
\Bitrix\Main\Loader::includeModule('seo');
\Bitrix\Main\Loader::includeModule('socialservices');

CUtil::JSPostUnescape();

$engine = new Engine\Google();

if(isset($_REQUEST['action']) && check_bitrix_sessid())
{
	$res = array();

	$arDomain = null;
	if(isset($_REQUEST['domain']) && strlen($_REQUEST['domain']) > 0)
	{
		$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 'site_verify':
					$res = array('error' => 'Unknown domain');

					if(is_array($arDomain))
					{
						$sitesInfo = $engine->getFeeds();
						if($sitesInfo[$arDomain['DOMAIN']]['verified'] == false)
						{
							$filename = $engine->verifyGetToken($arDomain['DOMAIN'], $arDomain['SITE_DIR']);

							// paranoia?
							$filename = preg_replace("/^(.*?)\..*$/", "\\1.html", $filename);

							if(strlen($filename) > 0)
							{
								$path = Path::combine((
									strlen($arDomain['SITE_DOC_ROOT']) > 0
										? $arDomain['SITE_DOC_ROOT']
										: $_SERVER['DOCUMENT_ROOT']
									), $arDomain['SITE_DIR'], $filename);

								$obFile = new \Bitrix\Main\IO\File($path);

								if($obFile->isExists())
								{
									$obFile->delete();
								}

								$obFile->putContents('google-site-verification: '.$filename);

								$res = $engine->verifySite($arDomain['DOMAIN'], $arDomain['SITE_DIR']);
							}

							$res = $engine->getFeeds();

							$res['_domain'] = $arDomain['DOMAIN'];
						}
						elseif($siteInfo[$arDomain['DOMAIN']]['verified'] == 'true')
						{
							$res = $siteInfo;
							$res['_domain'] = $arDomain['DOMAIN'];
						}
					}
					else
					{
						$res = array('error' => 'No domain');
					}
				break;

				default:
					$res = array('error' => 'unknown action');
				break;
			}
		}
		catch(Exception $e)
		{
			$res = array(
				'error' => $e->getMessage()
			);
		}
	}

	Header('Content-type: application/json');
	echo \Bitrix\Main\Web\Json::encode($res);
}
?>