Current Path : /var/www/html/clients/nkpgkx11.e-nk.ru/bitrix/modules/citrus.tszhdemo/ |
Current File : /var/www/html/clients/nkpgkx11.e-nk.ru/bitrix/modules/citrus.tszhdemo/include.php |
<? define("TSZHDEMO_MODULE_ID", 'citrus.tszhdemo'); // ïîêëþ÷åíèå ÿçûêîâûõ ôàéëîâ IncludeModuleLangFile(__file__); CModule::AddAutoloadClasses( TSZHDEMO_MODULE_ID, array( "CTszhDemoPublicHelper" => "public.php", ) ); function tszhPostRequest($url, $data, $referer='') { $data = http_build_query($data); $url = parse_url($url); if ($url['scheme'] != 'http') { die('Error: Only HTTP request are supported !'); } $host = $url['host']; $path = $url['path']; $fp = fsockopen($host, 80, $errno, $errstr, 3); if ($fp){ fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); if ($referer != '') fputs($fp, "Referer: $referer\r\n"); fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-Length: ". strlen($data) ."\r\n"); fputs($fp, "Connection: Close\r\n\r\n"); fputs($fp, $data); $result = ''; while(!feof($fp)) { $result .= fgets($fp, 128); } } else { $ar = array( 'status' => 'error', 'no' => $errno, 'text' => $errstr ); return false; } fclose($fp); $result = explode("\r\n\r\n", $result, 2); $header = isset($result[0]) ? $result[0] : ''; $content = isset($result[1]) ? $result[1] : ''; return array( 'status' => 'ok', 'header' => $header, 'content' => $content ); } function tszhSendUsage($siteID, $toEmail) { global $DB, $APPLICATION; if (COption::GetOptionString('main', 'wizard_solution', false, SITE_ID) != 'citrus_tszhdemo') return; $arSendInfo = Array('v' => 2, 'code' => 'citrus.tszhdemo', 'encoding' => SITE_CHARSET); $arSendInfo["sites"] = Array(); $rsSites = CSite::GetList($by="sort", $order="desc", Array()); while ($arSite = $rsSites->Fetch()) { $strSiteInfo = "[{$arSite['LID']}] {$arSite['NAME']} ({$arSite['DIR']}) "; $strSiteInfo .= trim(", " . implode(', ', Array($arSite["SERVER_NAME"], $arSite["EMAIL"], $arSite["DOMAINS"])), ', '); $arSendInfo["sites"][$arSite["LID"]] = $strSiteInfo; } include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client_partner.php"); if (class_exists('CUpdateClientPartner')) { $arSendInfo['key_code'] = md5("BITRIX".CUpdateClientPartner::GetLicenseKey()."LICENCE"); } $arSendInfo['server']['IP'] = $_SERVER['SERVER_ADDR']; $arSendInfo['server']['Host'] = $_SERVER['HTTP_HOST']; $arSendInfo['server']['E-Mail'] = $_SERVER['SERVER_ADMIN']; $arSendInfo['server']['Name'] = $_SERVER['SERVER_NAME']; $arSendInfo['server']['Software'] = $_SERVER['SERVER_SOFTWARE']; $arModuleStatus = Array( MODULE_NOT_FOUND => 'Not found', MODULE_INSTALLED => 'Installed', MODULE_DEMO => 'Demo', MODULE_DEMO_EXPIRED => 'Expired demo', ); $arSendInfo["modules"] = Array(); $rsInstalledModules = CModule::GetList(); while ($ar = $rsInstalledModules->Fetch()) { $moduleID = $ar["ID"]; $arModuleInfo = Array(); $arModuleInfo["ID"] = $moduleID; $arModuleInfo["Date installed"] = $ar["DATE_ACTIVE"]; $nModuleStatus = CModule::IncludeModuleEx($moduleID); if (array_key_exists($nModuleStatus, $arModuleStatus)) { $obModule = CModule::CreateModuleObject($moduleID); if (is_object($obModule)) { $arModuleInfo["Name"] = $obModule->MODULE_NAME . " (" . $obModule->MODULE_VERSION . ")"; } $arModuleInfo["Status"] = $arModuleStatus[$nModuleStatus]; } else { $arModuleInfo["Status"] = 'unknown'; } $arSendInfo["modules"][] = $arModuleInfo; } $arSite = $APPLICATION->GetSiteByDir(); $defaultEmail = $arSendInfo['mail'] = strlen($arSite['EMAIL']) > 0 ? $arSite['EMAIL'] : COption::GetOptionString("main", "email_from"); $arSendInfo['options'] = Array(); $rsOptions = $DB->Query("select module_id, name, value from b_option where module_id = 'citrus.tszhdemo' or (module_id='main' and (name like 'new_%' or name like 'server_%')) order by module_id, name asc", true); while (is_object($rsOptions) && $arOption = $rsOptions->Fetch()) $arSendInfo['options'][] = $arOption; $arPostRequest = tszhPostRequest('http://jkh.citrus-soft.ru/lic.php', Array('notify' => 1, 'info' => serialize(array_merge($arSendInfo, Array('server' => $_SERVER))))); $bSent = is_array($arPostRequest) && $arPostRequest['status'] == 'ok' && $arPostRequest['content'] == 'ok'; // return $bSent; ob_start(); echo "<h3>Bitrix license code key</h3>"; echo "<p>{$arSendInfo['key_code']}</p>"; if (is_array($arSendInfo['sites']) && count($arSendInfo['sites']) > 0) { echo "<h3>Sites</h3><ul>"; foreach ($arSendInfo['sites'] as $code => $value) echo "<li>" . $value . '</li>'; echo '</ul>'; } echo '<h3>Server info</h3><dl>'; foreach ($arSendInfo['server'] as $key => $value) { ?> <dt><?=$key?></dt> <dd><?=$value?></dd> <? } echo '</dl>'; echo '<h3>Installed modules</h3><dl>'; foreach ($arSendInfo['modules'] as $arModule) { ?> <dt><?=$arModule["ID"]?></dt> <dd><?=implode(' ', Array($arModule["Date installed"], $arModule["Status"], $arModule["Name"]))?></dd> <? } echo '</dl>'; $html = ob_get_contents(); ob_end_clean(); $subject = '[citrus.tszhdemo] installation: ' . $_SERVER['HTTP_HOST']; $headers = "From: $defaultEmail\r\n"; $headers .= "Content-type: text/html; charset=" . SITE_CHARSET . "\r\n"; return mail ($toEmail, $subject, $html, $headers) && $bSent; } function tszhNotify($siteID) { if (strlen($siteID) <= 0) return; $bSent = COption::GetOptionString('citrus.tszhdemo', 'tszh.notify.domains', false, $siteID); $nLastTry = abs(COption::GetOptionInt('citrus.tszhdemo', 'tszh.notify.lasttry', 0, $siteID)); $bNextTry = time() - $nLastTry >= 2*60*60 || $nLastTry > time() || $nLastTry == 0; if (!$bSent && $bNextTry) { COption::SetOptionInt('citrus.tszhdemo', 'tszh.notify.lasttry', time(), '', $siteID); if (tszhSendUsage($siteID, 'jkh@citrus-soft.ru')) { COption::SetOptionString('citrus.tszhdemo', 'tszh.notify.domains', 1, '', $siteID); } } } if (!defined("ADMIN_SECTION")) { tszhNotify(SITE_ID); } ?>