Example #1
0
 function CSeoPageChecker($site, $url, $get = true, $check_errors = true)
 {
     global $APPLICATION;
     if (CModule::IncludeModule('search')) {
         $this->bSearch = true;
     } else {
         $APPLICATION->ThrowException(GetMessage('SEO_ERROR_NO_SEARCH'));
     }
     // don't return false or set bError!
     $this->__bCheckErrors = $check_errors;
     $this->__site = $site;
     $dbRes = CSite::GetByID($this->__site);
     if ($arRes = $dbRes->Fetch()) {
         $this->__lang = $arRes['LANGUAGE_ID'];
         $this->__server_name = $arRes['SERVER_NAME'];
         if (strlen($this->__server_name) <= 0) {
             $this->__server_name = COption::GetOptionString('main', 'server_name', '');
         }
         if (strlen($this->__server_name) > 0) {
             $this->__url = (CMain::IsHTTPS() ? "https://" : "http://") . CBXPunycode::ToASCII($this->__server_name, $e = null) . $url;
             return $get ? $this->GetHTTPData() : true;
         } else {
             $this->bError = true;
             $APPLICATION->ThrowException(str_replace('#SITE_ID#', $this->__site, GetMessage('SEO_ERROR_NO_SERVER_NAME')));
             return false;
         }
     }
     return false;
 }
Example #2
0
 public function getConfiguredDomains()
 {
     $result = array();
     $converter = CBXPunycode::GetConverter();
     $domainName = COption::GetOptionString("main", "server_name", "");
     if ($domainName != "") {
         $result[$domainName] = $domainName;
     }
     $by = "";
     $order = "";
     $siteList = CSite::GetList($by, $order, array("ACTIVE" => "Y"));
     while ($site = $siteList->Fetch()) {
         $domains = explode("\r\n", $site["DOMAINS"]);
         foreach ($domains as $domainName) {
             if ($domainName != "") {
                 $punyName = $converter->Encode($domainName);
                 if ($punyName !== false) {
                     $result[$punyName] = $domainName;
                 }
             }
         }
     }
     ksort($result);
     return $result;
 }
Example #3
0
 public function __construct($encoding = null)
 {
     if (self::$utfMode === null) {
         self::$utfMode = defined('BX_UTF');
     }
     if (self::$punycodePrefix === null) {
         self::$punycodePrefix = "xn--";
         self::$punycodePrefixLength = self::ByteLength(self::$punycodePrefix);
         self::$punycodePrefixUcs4 = $this->Utf8ToUcs4(self::$punycodePrefix);
     }
     if (self::$prefixUcs4 === null) {
         self::$prefixUcs4 = $this->Utf8ToUcs4(self::PREFIX);
     }
     if (self::$hyphenUcs4 === null) {
         self::$hyphenUcs4 = $this->Utf8ToUcs4("-");
     }
     if (!is_null($encoding)) {
         $this->encoding = $encoding;
     } elseif (self::$utfMode) {
         $this->encoding = "utf-8";
     } elseif (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) {
         $this->encoding = SITE_CHARSET;
     } elseif (defined("LANG_CHARSET") && strlen(LANG_CHARSET) > 0) {
         $this->encoding = LANG_CHARSET;
     } else {
         $this->encoding = "utf-8";
     }
 }
 /**
  * Return current domain name (in puny code for cyrillic domain)
  *
  * @return string
  */
 public static function getCurrentHost()
 {
     $host = COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"]);
     if ($host == "") {
         $host = $_SERVER["HTTP_HOST"];
     }
     return CBXPunycode::ToASCII($host, $arErrors);
 }
 public function appendIBlockEntry($url, $modifiedDate, $priority = 0)
 {
     if ($this->isExists()) {
         $this->appendEntry(array('XML_LOC' => $this->settings['PROTOCOL'] . '://' . \CBXPunycode::toASCII($this->settings['DOMAIN'], $e = null) . $url, 'XML_LASTMOD' => date('c', $modifiedDate - \CTimeZone::getOffset()), 'XML_PRIORITY' => $priority ? $priority : self::DEFAULT_PRIORITY));
     } else {
         $this->addHeader();
         $this->addIBlockEntry($url, $modifiedDate, $priority);
         $this->addFooter();
     }
 }
Example #6
0
 function findCorrectFile($path, &$strWarn, $warning = false)
 {
     $arUrl = CHTTP::ParseURL($path);
     if ($arUrl && is_array($arUrl)) {
         if (isset($arUrl['host'], $arUrl['scheme'])) {
             if (strpos($arUrl['host'], 'xn--') !== false) {
                 // Do nothing
             } else {
                 $originalPath = $path;
                 $path = $arUrl['scheme'] . '://' . $arUrl['host'];
                 $arErrors = array();
                 if (defined("BX_UTF")) {
                     $punicodedPath = CBXPunycode::ToUnicode($path, $arErrors);
                 } else {
                     $punicodedPath = CBXPunycode::ToASCII($path, $arErrors);
                 }
                 if ($pathPunicoded == $path) {
                     return $originalPath;
                 } else {
                     $path = $punicodedPath;
                 }
                 if ($arUrl['port'] && ($arUrl['scheme'] != 'http' || $arUrl['port'] != 80) && ($arUrl['scheme'] != 'https' || $arUrl['port'] != 443)) {
                     $path .= ':' . $arUrl['port'];
                 }
                 $path .= $arUrl['path_query'];
             }
         } else {
             $DOC_ROOT = $_SERVER["DOCUMENT_ROOT"];
             $path = Rel2Abs("/", $path);
             $path_ = $path;
             $io = CBXVirtualIo::GetInstance();
             if (!$io->FileExists($DOC_ROOT . $path)) {
                 if (CModule::IncludeModule('clouds')) {
                     $path = CCloudStorage::FindFileURIByURN($path, "component:player");
                     if ($path == "") {
                         if ($warning) {
                             $strWarn .= $warning . "<br />";
                         }
                         $path = $path_;
                     }
                 } else {
                     if ($warning) {
                         $strWarn .= $warning . "<br />";
                     }
                     $path = $path_;
                 }
             } elseif (strpos($_SERVER['HTTP_HOST'], 'xn--') !== false) {
                 $path = CHTTP::URN2URI($path);
             }
         }
     }
     return $path;
 }
Example #7
0
	public static function getDomainsList()
	{
		static $arDomains = null;

		if($arDomains === null)
		{
			$arDomains = array();

			$dbSites = Freetrix\Main\SiteDomainTable::getList(
				array(
					'select'=>array(
						'DOMAIN', 'LID',
						'SITE_NAME'=>'SITE.NAME', 'SITE_ACTIVE' => 'SITE.ACTIVE',
						'SITE_DIR' => 'SITE.DIR', 'SITE_DOC_ROOT' => 'SITE.DOC_ROOT'
					)
				)
			);

			$defaultDomain = CBXPunycode::ToASCII(Freetrix\Main\Config\Option::getRealValue('main', 'server_name'), $e = null);

			$bCurrentHostFound = false;
			while($arSite = $dbSites->fetch())
			{
				$arDomains[] = $arSite;
				if($arSite['DOMAIN'] == $defaultDomain)
					$bCurrentHostFound = true;
			}

			if(!$bCurrentHostFound)
			{
				$dbDefSite = Freetrix\Main\SiteTable::getList(array(
					'filter' => array('DEF' => 'Y'),
					'select' => array('LID', 'NAME', 'ACTIVE'),
				));
				$arDefSite = $dbDefSite->fetch();
				if($arDefSite)
				{
					array_unshift($arDomains, array(
						'DOMAIN' => $defaultDomain,
						'LID' => $arDefSite['LID'],
						'SITE_NAME' => $arDefSite['NAME'],
						'SITE_ACTIVE' => $arDefSite['ACTIVE'],
						'SITE_DIR' => $arDefSite['DIR'],
						'SITE_DOC_ROOT' => $arDefSite['DOC_ROOT'],
					));
				}
			}
		}

		return $arDomains;
	}
 /**
  * Returns URL to update policy
  *
  * @param array[string]string $arParams
  * @return string
  *
  */
 protected function getActionURL($arParams = array())
 {
     $arErrors = array();
     $domainTmp = CBXPunycode::ToASCII($this->domain, $arErrors);
     if (strlen($domainTmp) > 0) {
         $domain = $domainTmp;
     } else {
         $domain = $this->domain;
     }
     $arParams["license"] = md5(LICENSE_KEY);
     $arParams["domain"] = $domain;
     $url = COption::GetOptionString("bitrixcloud", "cdn_policy_url");
     $url = CHTTP::urlAddParams($url, $arParams, array("encode" => true));
     return $url;
 }
Example #9
0
 public function appendIndexEntry($file)
 {
     if ($this->isExists()) {
         $fileUrlEnc = Converter::getXmlConverter()->encode($this->settings['PROTOCOL'] . '://' . \CBXPunycode::toASCII($this->settings['DOMAIN'], $e = null) . $this->getFileUrl($file));
         $contents = $this->getContents();
         $reg = "/" . sprintf(preg_quote(self::ENTRY_TPL, "/"), preg_quote($fileUrlEnc, "/"), "[^<]*") . "/";
         $newEntry = sprintf(self::ENTRY_TPL, $fileUrlEnc, date(c, $file->getModificationTime($file)));
         $count = 0;
         $contents = preg_replace($reg, $newEntry, $contents, 1, $count);
         if ($count <= 0) {
             $contents = substr($contents, 0, -strlen(self::FILE_FOOTER)) . $newEntry . self::FILE_FOOTER;
         }
         $this->putContents($contents);
     } else {
         $this->createIndex(array($file));
     }
 }
Example #10
0
	function __construct($step = 0, $fast = 0, $fix_mode = 0)
	{
		if (!$this->step = intval($step))
			$this->arTestVars['site_checker_success'] = 'Y';
		$this->test_percent = 0;
		$this->strError = '';
		$this->timeout = 10; // sec for one step
		$this->strResult = '';
		$this->fix_mode = intval($fix_mode);
		$this->cafile = $_SERVER['DOCUMENT_ROOT'].'/bitrix/tmp/cacert.pem';

		$this->host = $_REQUEST['HTTP_HOST'] ? $_REQUEST['HTTP_HOST'] : 'localhost';
		if (!$fix_mode) // no need to know the host in fix mode
		{
			if (!preg_match('/^[a-z0-9\.\-]+$/i', $this->host)) // cyrillic domain hack
			{
				$host = $this->host;
				$host0 = CharsetConverter::ConvertCharset($host, 'utf8', 'cp1251');
				if (preg_match("/[\xC0-\xFF]/",$host0))
				{
					// utf-8;
					if (!defined('BX_UTF') && BX_UTF !== true)
						$host = $host0;
				}
				elseif (preg_match("/[\xC0-\xFF]/",$host))
				{
					// windows-1251
					if (defined('BX_UTF') && BX_UTF === true)
						$host = CharsetConverter::ConvertCharset($host, 'cp1251', 'utf8');
				}
				$converter = new CBXPunycode();
				$host = $converter->Encode($host);
				$this->host = $host;
			}
		}
		$this->ssl = $_REQUEST['HTTPS'] == 'on';
		$this->port = $_REQUEST['SERVER_PORT'] ? $_REQUEST['SERVER_PORT'] : ($this->ssl ? 443 : 80);

		$arTestGroup = array();
		$arGroupName = array();

		$arGroupName[1] = IsModuleInstalled('intranet') ? GetMessage("MAIN_SC_GENERAL") : GetMessage("MAIN_SC_GENERAL_SITE");
		$arGroupDesc[1] = GetMessage("MAIN_SC_REQUIRED_MODS_DESC");
		$arTestGroup[1] = array(
			array('check_php_modules' =>GetMessage('SC_T_MODULES')),
			array('check_php_settings' =>GetMessage('SC_T_PHP')),
			array('check_security' => GetMessage('SC_T_APACHE')),
			array('check_server_vars' =>GetMessage('SC_T_SERVER')),
			array('check_session' => GetMessage('SC_T_SESS')),
			array('check_mbstring' =>GetMessage('SC_T_MBSTRING')),
			array('check_socket' => GetMessage('SC_T_SOCK')),
		);

		$arGroupName[2] = GetMessage("MAIN_SC_BUSINESS");
		$arGroupDesc[2] = GetMessage("MAIN_SC_CORRECT_DESC");
		$arTestGroup[2] = array(
			array('check_pull_stream' => GetMessage("MAIN_SC_TEST_CHAT")),
			array('check_pull_comments' => GetMessage("MAIN_SC_TEST_COMMENTS")),
			array('check_turn' => GetMessage("MAIN_SC_TEST_VIDEO")),
			array('check_access_mobile' => GetMessage("MAIN_SC_TEST_MOBILE")),
			array('check_push_bitrix' => GetMessage("MAIN_SC_TEST_PUSH")),
			array('check_access_docs' => GetMessage("MAIN_SC_TEST_DOCS")),
			array('check_fast_download' => GetMessage("MAIN_SC_TEST_FAST_FILES")),
			array('check_search' => GetMessage("MAIN_SC_TEST_SEARCH_CONTENTS")),
			array('check_mail' => GetMessage("MAIN_SC_MAIL_TEST")),
			array('check_ca_file' => GetMessage("MAIN_SC_CLOUD_TEST")),
			array('check_connect_mail' => GetMessage("MAIN_SC_TEST_MAIL_INTEGRATION")),
			array('check_socnet' => GetMessage("MAIN_SC_TEST_SOCNET_INTEGRATION")),
		);
		if (IsModuleInstalled('extranet'))
			$arTestGroup[2][] = array('check_extranet' => GetMessage("MAIN_SC_EXTRANET_ACCESS")); 

		$arGroupName[4] = GetMessage("MAIN_SC_WINDOWS_ENV");
		$arGroupDesc[4] = '';
		$arTestGroup[4] = array(
			array('check_webdav' => GetMessage("MAIN_SC_DOCS_EDIT_MS_OFFICE")),
			array('check_socket_ssl' => GetMessage("MAIN_SC_EXTERNAL_APPS_TEST")),
			array('check_ad' => GetMessage("MAIN_SC_TEST_LDAP")),
			array('check_ntlm' => GetMessage("MAIN_SC_TEST_NTLM")),
		);

		$arGroupName[8] = GetMessage("MAIN_SC_PERFORM");
		$arGroupDesc[8] = '';
		$arTestGroup[8] = array(
			array('check_perf' => GetMessage("MAIN_SC_PERF_TEST")),
			array('check_compression' => GetMessage("MAIN_SC_COMPRESSION_TEST")),
		);

		$arGroupName[16] = GetMessage('SC_GR_EXTENDED');
		$arTestGroup[16] = array(
			array('check_dbconn_settings' => GetMessage('SC_T_DBCONN_SETTINGS')),
			array('check_dbconn' => GetMessage('SC_T_DBCONN')),
			array('check_bx_crontab' => GetMessage("MAIN_SC_AGENTS_CRON")),
			array('check_session_ua' => GetMessage('SC_T_SESS_UA')),
			array('check_sites' => GetMessage('SC_T_SITES')),
			array('check_install_scripts' => GetMessage('SC_T_INSTALL_SCRIPTS')),
			array('check_clone' => GetMessage('SC_T_CLONE')),

			array('check_pcre_recursion' => GetMessage('SC_T_RECURSION')),
			array('check_method_exists' => GetMessage('SC_T_METHOD_EXISTS')),

			array('check_upload' => GetMessage('SC_T_UPLOAD')),
			array('check_upload_big' => GetMessage('SC_T_UPLOAD_BIG')),
			array('check_upload_raw' => GetMessage('SC_T_UPLOAD_RAW')),
			array('check_post' => GetMessage('SC_T_POST')),

			array('check_mail' => GetMessage('SC_T_MAIL')),
			array('check_mail_big' => GetMessage('SC_T_MAIL_BIG')),
			array('check_mail_b_event' => GetMessage('SC_T_MAIL_B_EVENT')),

			array('check_localredirect' => GetMessage('SC_T_REDIRECT')),
			array('check_memory_limit' => GetMessage('SC_T_MEMORY')),
			array('check_cache' => GetMessage('SC_T_CACHE')),

			array('check_update' => GetMessage('SC_UPDATE_ACCESS')), 
			array('check_http_auth' => GetMessage('SC_T_AUTH')),
			array('check_exec' => GetMessage('SC_T_EXEC')),
			array('check_getimagesize' => GetMessage('SC_T_GETIMAGESIZE')),
		);

		$arGroupName[32] = GetMessage('SC_GR_MYSQL');
		$arTestGroup[32] = array(
			array('check_mysql_bug_version' => GetMessage('SC_T_MYSQL_VER')),
			array('check_mysql_time' => GetMessage('SC_T_TIME')),
			array('check_mysql_mode' => GetMessage('SC_T_SQL_MODE')),
			array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
			array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),

//			array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
			array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
			array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
		);

		if ($this->fix_mode)
		{
			switch ($this->fix_mode)
			{
				case 1:
					$this->arTest = array(
						array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
					);
				break;
				case 2:
					$this->arTest = array(
						array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
						array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),
						array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
					);
				break;
				case 3:
				default:
					$this->arTest = array(
						array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
					);
				break;
			}
		}
		else
		{
			$profile = 1;
			if ($fast)
			{
				if (IsModuleInstalled('intranet'))
				{
					$profile |= 2;
					$profile |= 4;
					$profile |= 8;
				}
			}
			else
			{
				$profile |= 16;
				if (strtolower($GLOBALS['DB']->type) == 'mysql')
					$profile |= 32;
			}
			$this->arTest = array();
			$step0 = $step;
			foreach($arTestGroup as $i => $ar)
			{
				if ($i & $profile)
				{
					if (!$this->group_name)
					{
						$c = count($ar);
						if ($step0 >= $c)
							$step0 -= $c;
						else
						{
							$this->group_name = $arGroupName[$i];
							$this->group_desc = $arGroupDesc[$i];
						}
					}
					$this->arTest = array_merge($this->arTest, $ar);
				}
			}
		}

		list($this->function, $this->strCurrentTestName) = each($this->arTest[$this->step]);
		$this->strNextTestName = $this->strCurrentTestName;

		$LICENSE_KEY = '';
		if (file_exists($file = $_SERVER['DOCUMENT_ROOT'].'/bitrix'.'/license_key.php'))
			include($file);

		if ($LICENSE_KEY == '')
			$LICENSE_KEY = 'DEMO';
		define('LICENSE_HASH', md5('CONNECTION_TEST'));
		$this->LogFile = '/bitrix'.'/site_checker_'.md5('SITE_CHECKER'.$LICENSE_KEY).'.log';
	}
Example #11
0
 public function getFeeds()
 {
     $queryResult = $this->queryJson(self::QUERY_BASE . self::SCOPE_FEED_SITES);
     if ($queryResult->getStatus() == self::HTTP_STATUS_OK && strlen($queryResult->getResult()) > 0) {
         $result = Json::decode($queryResult->getResult());
         $response = array();
         if (is_array($result)) {
             foreach ($result['siteEntry'] as $key => $siteInfo) {
                 $siteUrlInfo = parse_url($siteInfo['siteUrl']);
                 if ($siteUrlInfo) {
                     $errors = array();
                     $hostKey = \CBXPunycode::toASCII($siteUrlInfo["host"], $errors);
                     if (count($errors) > 0) {
                         $hostKey = $siteUrlInfo["host"];
                     }
                     $response[$hostKey] = array('binded' => $siteInfo["permissionLevel"] !== "siteRestrictedUser", 'verified' => $siteInfo["permissionLevel"] !== "siteRestrictedUser" && $siteInfo["permissionLevel"] !== "siteUnverifiedUser");
                 }
             }
         }
         return $response;
     } else {
         throw new \Exception('Query error! ' . $queryResult->getStatus() . ': ' . $queryResult->getResult());
     }
 }
Example #12
0
 function URLEncode($str, $charset)
 {
     global $APPLICATION;
     $strEncodedURL = '';
     $arUrlComponents = preg_split("#(://|/|\\?|=|&)#", $str, -1, PREG_SPLIT_DELIM_CAPTURE);
     foreach ($arUrlComponents as $i => $part_of_url) {
         if ($i % 2) {
             $strEncodedURL .= $part_of_url;
         } else {
             if ($i > 1 && $arUrlComponents[$i - 1] === "://") {
                 $converter = CBXPunycode::GetConverter();
                 $strEncodedURL .= $converter->Encode($part_of_url);
             } else {
                 $strEncodedURL .= urlencode($APPLICATION->ConvertCharset(urldecode($part_of_url), LANG_CHARSET, $charset));
             }
         }
     }
     return $strEncodedURL;
 }
		$domain = false;
}

if(!$domain)
{
	require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/prolog_admin_after.php");
	ShowError(Loc::getMessage("SEO_ERROR_NO_DOMAIN"));
	require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/epilog_admin.php");
}

$APPLICATION->SetAdditionalCSS('/freetrix/panel/seo/seo.css');

$engine = new Engine\Google();

$siteDomainEnc = Converter::getHtmlConverter()->encode($arDomain['DOMAIN']);
$siteDomainEncView = Converter::getHtmlConverter()->encode(\CBXPunycode::ToUnicode($arDomain['DOMAIN'], $e = null));
$siteDirEnc = Converter::getHtmlConverter()->encode($arDomain['SITE_DIR']);

try
{
	$arSiteInfo = $engine->getSiteInfo($arDomain['DOMAIN'], $arDomain['SITE_DIR']);
}
catch(Exception $e)
{
	require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/prolog_admin_after.php");
	ShowError($e->getMessage());
	require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/epilog_admin.php");
}

$bSiteVerified = $arSiteInfo[$domain]['verified'] == 'true';
Example #14
0
	public static function GetServerPath()
	{
		if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0)
			$server_name = SITE_SERVER_NAME;
		if (!$server_name)
			$server_name = COption::GetOptionString("main", "server_name", "");
		if (!$server_name)
			$server_name = $_SERVER['HTTP_HOST'];
		$server_name = rtrim($server_name, '/');
		if (!preg_match('/^[a-z0-9\.\-]+$/i', $server_name)) // cyrillic domain hack
		{
			$converter = new CBXPunycode(defined('BX_UTF') && BX_UTF === true ? 'UTF-8' : 'windows-1251');
			$host = $converter->Encode($server_name);
			if (!preg_match('#--p1ai$#', $host)) // trying to guess
				$host = $converter->Encode(CharsetConverter::ConvertCharset($server_name, 'utf-8', 'windows-1251'));
			$server_name = $host;
		}

		$serverPath = (CMain::IsHTTPS() ? "https://" : "http://").$server_name;

		return $serverPath;
	}
Example #15
0
 public static function GetServerName()
 {
     if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) {
         $server_name = SITE_SERVER_NAME;
     }
     if (!$server_name) {
         $server_name = COption::GetOptionString("main", "server_name", "");
     }
     if (!$server_name) {
         $server_name = $_SERVER['HTTP_HOST'];
     }
     $server_name = rtrim($server_name, '/');
     if (!preg_match('/^[a-z0-9\\.\\-]+$/i', $server_name)) {
         $converter = new CBXPunycode(defined('BX_UTF') && BX_UTF === true ? 'UTF-8' : 'windows-1251');
         $host = $converter->Encode($server_name);
         if (!preg_match('#--p1ai$#', $host)) {
             // trying to guess
             $host = $converter->Encode(CharsetConverter::ConvertCharset($server_name, 'utf-8', 'windows-1251'));
         }
         $server_name = $host;
     }
     return $server_name;
 }
Example #16
0
	/**
	 * Returns sitemap file URL
	 *
	 * @return string
	 */
	public function getUrl()
	{
		return $this->settings['PROTOCOL'].'://'.\CBXPunycode::toASCII($this->settings['DOMAIN'], $e = null).$this->getFileUrl($this);
	}
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
}
if ($campaign['OWNER_ID'] != $currentUser['id']) {
    $bReadOnly = true;
    $bAllowUpdate = false;
    $message = new CAdminMessage(array("TYPE" => "ERROR", "MESSAGE" => Loc::getMessage('SEO_CAMPAIGN_WRONG_OWNER', array("#USERINFO#" => "(" . $campaign["OWNER_ID"] . ") " . $campaign["OWNER_NAME"]))));
} elseif (!in_array($campaign["SETTINGS"]['Strategy']['StrategyName'], Adv\YandexCampaignTable::$supportedStrategy)) {
    $bReadOnly = true;
    $message = new CAdminMessage(array("TYPE" => "ERROR", "MESSAGE" => Loc::getMessage("SEO_CAMPAIGN_STRATEGY_NOT_SUPPORTED", array("#STRATEGY#" => Loc::getMessage('SEO_CAMPAIGN_STRATEGY_' . $campaign["SETTINGS"]['Strategy']['StrategyName'])))));
}
$bShowStats = $ID > 0 && $bAllowUpdate;
$bShowAuto = $ID > 0 && $bAllowUpdate && IsModuleInstalled("catalog");
if ($ID <= 0) {
    $host = str_replace(array(':80', ':443'), '', $request->getHttpHost());
    $errors = null;
    $host = \CBXPunycode::ToUnicode($host, $errors);
    $banner = array("SETTINGS" => array("CampaignID" => $campaign["SETTINGS"]["CampaignID"], "Title" => "", "Text" => "", "Href" => 'http' . ($request->isHttps() ? 's' : '') . '://' . $host, "Geo" => Main\Config\Option::get('seo', 'yandex_direct_region_last_list', ''), "Phrases" => array(), "MinusKeywords" => array()));
    if ($elementId > 0 && Main\Loader::includeModule('iblock')) {
        $dbElement = \CIBlockElement::getByID($elementId);
        if ($element = $dbElement->fetch()) {
            $banner['SETTINGS']['Href'] .= \CIBlock::replaceDetailUrl($element['DETAIL_PAGE_URL'], $element, false, "E");
        }
    } else {
        $banner['SETTINGS']['Href'] .= '/';
    }
    $banner['SETTINGS']['Href'] .= strpos($banner['SETTINGS']['Href'], "?") >= 0 ? '?' : '&';
    $banner['SETTINGS']['Href'] .= AdvSession::URL_PARAM_CAMPAIGN . '=' . AdvSession::URL_PARAM_CAMPAIGN_VALUE . '&' . AdvSession::URL_PARAM_BANNER . '=' . AdvSession::URL_PARAM_BANNER_VALUE;
}
$banner["SETTINGS"]["Geo"] = explode(",", $banner["SETTINGS"]["Geo"]);
$banner["SETTINGS"]["MinusKeywords"] = implode(", ", $banner["SETTINGS"]["MinusKeywords"]);
$aTabs = array(array("DIV" => "edit_main", "TAB" => Loc::getMessage("SEO_BANNER_TAB_MAIN"), "TITLE" => Loc::getMessage("SEO_BANNER_TAB_MAIN_TITLE")), array("DIV" => "edit_geo", "TAB" => Loc::getMessage("SEO_BANNER_TAB_GEO"), "TITLE" => Loc::getMessage("SEO_BANNER_TAB_GEO_TITLE")), array("DIV" => "edit_keywords", "TAB" => Loc::getMessage("SEO_BANNER_TAB_KEYWORDS"), "TITLE" => Loc::getMessage("SEO_BANNER_TAB_KEYWORDS_TITLE")));
Example #18
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$APPLICATION->SetAdditionalCSS('/bitrix/gadgets/bitrix/bitrixcloud_monitoring/styles.css');
$converter = CBXPunycode::GetConverter();
$saleIncluded = CModule::IncludeModule('sale');
$intervalLang = array("sale" => array(7 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT1_WEEK"), 30 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT1_MONTH"), 90 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT1_QUARTER"), 365 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT1_YEAR")), "uptime" => array(7 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT2_WEEK"), 30 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT2_MONTH"), 90 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT2_QUARTER"), 365 => GetMessage("GD_BITRIXCLOUD_MONITOR_MESS_ALERT2_YEAR")));
$uptime = "";
$testCount = 0;
/** @var CBitrixCloudMonitoringTest $testAlert */
$testAlert = null;
$testDomain = "";
$bAlert = false;
if (CModule::IncludeModule('bitrixcloud')) {
    $monitoring = CBitrixCloudMonitoring::getInstance();
    $monitoringResults = $monitoring->getMonitoringResults();
    if (!is_string($monitoringResults)) {
        if ($monitoringResults->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP) {
            $bAlert = true;
            foreach ($monitoringResults as $domainName => $domainResult) {
                foreach ($domainResult as $testId => $testResult) {
                    if ($testResult->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP) {
                        $testCount++;
                        $testAlert = $testResult;
                        $testDomain = $domainName;
                    }
                }
            }
            $uptime = $monitoring->getWorstUptime("test_http_response_time");
Example #19
0
?>
:</td>
	<td width="60%"><select name="PROTO">
		<option value="0"<?php 
echo $arSitemap['SETTINGS']['PROTO'] == 0 ? ' selected="selected"' : '';
?>
>http</option>
		<option value="1"<?php 
echo $arSitemap['SETTINGS']['PROTO'] == 1 ? ' selected="selected"' : '';
?>
>https</option>
	</select> <b>://</b> <select name="DOMAIN">
<?php 
foreach ($arSite['DOMAINS'] as $domain) {
    $hd = Converter::getHtmlConverter()->encode($domain);
    $hdc = Converter::getHtmlConverter()->encode(CBXPunycode::ToUnicode($domain, $e = null));
    ?>
	<option value="<?php 
    echo $hd;
    ?>
"<?php 
    echo $domain == $arSitemap['SETTINGS']['DOMAIN'] ? ' selected="selected"' : '';
    ?>
><?php 
    echo $hdc;
    ?>
</option>
<?php 
}
?>
</select> <b><?php 
Example #20
0
 /**
  * Return current domain name (in puny code for cyrillic domain)
  * @return string
  */
 protected static function getCurrentHost()
 {
     $host = $_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : 'localhost';
     return CBXPunycode::ToASCII($host, $arErrors);
 }
Example #21
0
 protected function processSiteResult($res)
 {
     $obXml = new \CDataXML();
     if ($obXml->loadString($res)) {
         $hostName = $obXml->getTree()->elementsByName('name');
         $hostName = \CBXPunycode::toASCII(ToLower($hostName[0]->textContent()), $e = null);
         if (preg_match("/^https:\\/\\//", $hostName)) {
             $hostName = substr($hostName, 8);
         }
         $this->engineSettings['SITES'][$hostName]['SERVICES'] = array();
         $arLinks = $obXml->getTree()->elementsByName('link');
         foreach ($arLinks as $link) {
             $this->engineSettings['SITES'][$hostName]['SERVICES'][$link->getAttribute('rel')] = $link->getAttribute('href');
         }
         $this->saveSettings();
         return true;
     }
     return false;
 }
Example #22
0
$bCron = COption::GetOptionString("main", "agents_use_crontab", "N") == 'Y' || defined('BX_CRONTAB_SUPPORT') && BX_CRONTAB_SUPPORT === true || COption::GetOptionString("main", "check_agents", "Y") != 'Y';
require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/prolog.php";
$APPLICATION->SetTitle(GetMessage("MAIN_DUMP_AUTO_PAGE_TITLE"));
require $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/prolog_admin_after.php";
$arAllBucket = CBackup::GetBucketList();
$strError = '';
if ($DB->type != 'MYSQL') {
    echo BeginNote() . GetMessage('MAIN_DUMP_MYSQL_ONLY') . EndNote();
}
$server_name = COption::GetOptionString("main", "server_name", "");
if (!$server_name) {
    $server_name = $_SERVER['HTTP_HOST'];
}
$server_name = rtrim($server_name, '/');
if (!preg_match('/^[a-z0-9\\.\\-]+$/i', $server_name)) {
    $converter = new CBXPunycode(defined('BX_UTF') && BX_UTF === true ? 'UTF-8' : 'windows-1251');
    $host = $converter->Encode($server_name);
    if (!preg_match('#--p1ai$#', $host)) {
        // trying to guess
        $host = $converter->Encode(CharsetConverter::ConvertCharset($server_name, 'utf-8', 'windows-1251'));
    }
    $server_name = $host;
}
$url = (CMain::IsHTTPS() ? "https://" : "http://") . $server_name;
define('LOCK_FILE', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/backup/auto_lock');
$dump_auto_enable = IntOption('dump_auto_enable');
if ($_REQUEST['save']) {
    if (!check_bitrix_sessid()) {
        CAdminMessage::ShowMessage(array("MESSAGE" => GetMessage("MAIN_DUMP_ERROR"), "DETAILS" => GetMessage("DUMP_MAIN_SESISON_ERROR"), "TYPE" => "ERROR", "HTML" => true));
    } else {
        $BUCKET_ID = $_REQUEST['dump_bucket_id'];
Example #23
0
                }
            }
            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><?php 
                echo Loc::getMessage('SEO_YANDEX_DOMAIN');
                ?>
: </b><select name="domain">
<?php 
                foreach ($arDomains as $domain) {
                    $domainView = \CBXPunycode::ToUnicode($domain['DOMAIN'], $errors = null);
                    $domainEnc = Converter::getHtmlConverter()->encode($domain['DOMAIN']);
                    $domainViewEnc = Converter::getHtmlConverter()->encode($domainView);
                    ?>
		<option value="<?php 
                    echo $domainEnc;
                    ?>
"><?php 
                    echo $domainViewEnc;
                    ?>
</option>
<?php 
                }
                ?>
	</select><br /><br />
	<textarea style="width: 700px; height: 450px;" name="original_text"></textarea>
Example #24
0
	function __construct($step = 0, $fix_mode = 0)
	{
		$this->step = intval($step);
		$this->test_percent = 0;
		$this->strError = '';
		$this->timeout = 10; // sec for one step
		$this->strResult = '';
		$this->fix_mode = intval($fix_mode);

		$this->host = $_REQUEST['HTTP_HOST'] ? $_REQUEST['HTTP_HOST'] : 'localhost';
		if (!$fix_mode) // no kernel
		{
			if (!preg_match('/^[a-z0-9\.\-]+$/i', $this->host))
				$this->host = CBXPunycode::ToASCII($this->host, ($err=""));
		}
		$this->ssl = $_REQUEST['HTTPS'] == 'on';
		$this->port = $_REQUEST['SERVER_PORT'] ? $_REQUEST['SERVER_PORT'] : ($this->ssl ? 443 : 80);

		$this->arTest = array(
			array('OpenLog' => GetMessage('SC_T_LOG')),
			/**/
			array('check_php_modules' =>GetMessage('SC_T_MODULES')),
			array('check_php_settings' =>GetMessage('SC_T_PHP')),
			array('check_server_vars' =>GetMessage('SC_T_SERVER')),
			array('check_suhosin' => GetMessage('SC_T_SUHOSIN')),
			array('check_security' => GetMessage('SC_T_APACHE')),
			array('check_install_scripts' => GetMessage('SC_T_INSTALL_SCRIPTS')),
			array('check_mbstring' =>GetMessage('SC_T_MBSTRING')),
			array('check_backtrack_limit' =>GetMessage('SC_T_BACKTRACK_LIMIT')),
			array('check_pcre_recursion' => GetMessage('SC_T_RECURSION')),
			array('check_method_exists' => GetMessage('SC_T_METHOD_EXISTS')),
			array('check_sites' =>GetMessage('SC_T_SITES')),
			array('check_socket' => GetMessage('SC_T_SOCK')),
			array('check_dbconn' => GetMessage('SC_T_DBCONN')),
			array('check_upload' => GetMessage('SC_T_UPLOAD')),
			array('check_upload_big' => GetMessage('SC_T_UPLOAD_BIG')),
			array('check_upload_raw' => GetMessage('SC_T_UPLOAD_RAW')),
			array('check_post' => GetMessage('SC_T_POST')),
			array('check_mail' => GetMessage('SC_T_MAIL')),
			array('check_mail_big' => GetMessage('SC_T_MAIL_BIG')),
			array('check_mail_b_event' => GetMessage('SC_T_MAIL_B_EVENT')),
			array('check_localredirect' => GetMessage('SC_T_REDIRECT')),
			array('check_memory_limit' => GetMessage('SC_T_MEMORY')),
			array('check_session' => GetMessage('SC_T_SESS')),
			array('check_session_ua' => GetMessage('SC_T_SESS_UA')),
			array('check_cache' => GetMessage('SC_T_CACHE')),
			array('check_update' => GetMessage('SC_UPDATE_ACCESS')),
			array('check_http_auth' => GetMessage('SC_T_AUTH')),
			array('check_exec' => GetMessage('SC_T_EXEC')),
			array('check_bx_crontab' => GetMessage('SC_T_BX_CRONTAB')),
			array('check_divider' => GetMessage('SC_T_DELIMITER')),
			array('check_precision' => GetMessage('SC_T_PRECISION')),
			array('check_clone' => GetMessage('SC_T_CLONE')),
			array('check_getimagesize' => GetMessage('SC_T_GETIMAGESIZE')),
			/**/
		);

		$this->arTestDB = array(
			array('check_mysql_bug_version' => GetMessage('SC_T_MYSQL_VER')),
			array('check_mysql_time' => GetMessage('SC_T_TIME')),
			array('check_mysql_mode' => GetMessage('SC_T_SQL_MODE')),
			array('check_mysql_increment' => GetMessage('SC_T_AUTOINC')),
//			array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
			array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
			array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),
			array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
			array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
		);

		if ($this->fix_mode == 1)
			$this->arTest = array(
				array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
			);
		elseif ($this->fix_mode == 2)
			$this->arTest = array(
				array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
				array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),
				array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
			);
		elseif ($this->fix_mode == 3)
			$this->arTest = array(
				array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
			);
		elseif (strtolower($GLOBALS['DB']->type) == 'mysql')
		{
			$this->arTest = array_merge($this->arTest, $this->arTestDB);
//			$this->arTest = array_merge(array(array('OpenLog'=>GetMessage('SC_T_LOG'))), $this->arTestDB);
		}

		list($this->function, $this->strCurrentTestName) = each($this->arTest[$this->step]);
		$this->strNextTestName = $this->strCurrentTestName;

		$LICENSE_KEY = '';
		if (file_exists($file = $_SERVER['DOCUMENT_ROOT'].'/bitrix'.'/license_key.php'))
			include($file);

		if ($LICENSE_KEY == '')
			$LICENSE_KEY = 'DEMO';
		$this->LogFile = '/bitrix'.'/site_checker_'.md5('SITE_CHECKER'.$LICENSE_KEY).'.log';
	}
Example #25
0
use Bitrix\Main\Analytics;
Loc::loadMessages(__FILE__);
if (!$USER->CanDoOperation("view_other_settings") || !Analytics\SiteSpeed::isLicenseAccepted()) {
    $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED"));
}
CJSCore::Init(array("site_speed", "date"));
$APPLICATION->SetAdditionalCSS("/bitrix/panel/main/site_speed.css");
$APPLICATION->SetTitle(Loc::getMessage("MAIN_SITE_SPEED_TITLE"));
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
?>

<div class="site-speed-page">
	<?php 
$currentHost = preg_replace("/:(80|443)\$/", "", $_SERVER["HTTP_HOST"]);
$currentHost = htmlspecialcharsbx($currentHost);
$currentHostTitle = htmlspecialcharsbx(\CBXPunycode::ToUnicode($currentHost, $errors));
?>
	<div class="site-speed-domains">
		<span class="site-speed-domains-label"><?php 
echo Loc::getMessage("MAIN_SITE_SPEED_DOMAINS_LABEL");
?>
</span>
		<select class="site-speed-domains-select" id="site-speed-domains">
			<option value="<?php 
echo $currentHost;
?>
"><?php 
echo $currentHostTitle;
?>
</option>
		</select>
Example #26
0
 function Fetch()
 {
     if ($res = parent::Fetch()) {
         global $DB, $CACHE_MANAGER;
         static $arCache;
         if (!is_array($arCache)) {
             $arCache = array();
         }
         if (is_set($arCache, $res["LID"])) {
             $res["DOMAINS"] = $arCache[$res["LID"]];
         } else {
             if (CACHED_b_lang_domain === false) {
                 $res["DOMAINS"] = "";
                 $db_res = $DB->Query("SELECT * FROM b_lang_domain WHERE LID='" . $res["LID"] . "'");
                 while ($ar_res = $db_res->Fetch()) {
                     $domain = $ar_res["DOMAIN"];
                     $arErrorsTmp = array();
                     if ($domainTmp = CBXPunycode::ToUnicode($ar_res["DOMAIN"], $arErrorsTmp)) {
                         $domain = $domainTmp;
                     }
                     $res["DOMAINS"] .= $domain . "\r\n";
                 }
             } else {
                 if ($CACHE_MANAGER->Read(CACHED_b_lang_domain, "b_lang_domain", "b_lang_domain")) {
                     $arLangDomain = $CACHE_MANAGER->Get("b_lang_domain");
                 } else {
                     $arLangDomain = array("DOMAIN" => array(), "LID" => array());
                     $rs = $DB->Query("SELECT * FROM b_lang_domain ORDER BY " . $DB->Length("DOMAIN"));
                     while ($ar = $rs->Fetch()) {
                         $arLangDomain["DOMAIN"][] = $ar;
                         $arLangDomain["LID"][$ar["LID"]][] = $ar;
                     }
                     $CACHE_MANAGER->Set("b_lang_domain", $arLangDomain);
                 }
                 $res["DOMAINS"] = "";
                 if (is_array($arLangDomain["LID"][$res["LID"]])) {
                     foreach ($arLangDomain["LID"][$res["LID"]] as $ar_res) {
                         $domain = $ar_res["DOMAIN"];
                         $arErrorsTmp = array();
                         if ($domainTmp = CBXPunycode::ToUnicode($ar_res["DOMAIN"], $arErrorsTmp)) {
                             $domain = $domainTmp;
                         }
                         $res["DOMAINS"] .= $domain . "\r\n";
                     }
                 }
             }
             $res["DOMAINS"] = Trim($res["DOMAINS"]);
             $arCache[$res["LID"]] = $res["DOMAINS"];
         }
         if (trim($res["DOC_ROOT"]) == "") {
             $res["ABS_DOC_ROOT"] = $_SERVER["DOCUMENT_ROOT"];
         } else {
             $res["ABS_DOC_ROOT"] = Rel2Abs($_SERVER["DOCUMENT_ROOT"], $res["DOC_ROOT"]);
         }
         if ($res["ABS_DOC_ROOT"] !== $_SERVER["DOCUMENT_ROOT"]) {
             $res["SITE_URL"] = (CMain::IsHTTPS() ? "https://" : "http://") . $res["SERVER_NAME"];
         }
     }
     return $res;
 }