%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/lists.element.attached.crm/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/lists.element.attached.crm/lazyload.ajax.php |
<?php
define('NO_KEEP_STATISTIC', 'Y');
define('NO_AGENT_STATISTIC','Y');
define('NO_AGENT_CHECK', true);
define('PUBLIC_AJAX_MODE', true);
define('DisableEventsCheck', true);
$siteID = isset($_REQUEST['site']) ? substr(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['site']), 0, 2) : '';
if ($siteID !== '') define('SITE_ID', $siteID);
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
if (!check_bitrix_sessid()) die();
if (isset($_REQUEST["download"]) && $_REQUEST["download"] === "y")
{
Bitrix\Main\Localization\Loc::loadMessages($_SERVER["DOCUMENT_ROOT"].'/bitrix/components/bitrix/lists.file/component.php');
if (!Bitrix\Main\Loader::includeModule('lists'))
completeLazyLoad(GetMessage("CC_BLF_MODULE_NOT_INSTALLED"));
$IBLOCK_ID = is_array($arParams["~IBLOCK_ID"])? 0: intval($arParams["~IBLOCK_ID"]);
$ELEMENT_ID = is_array($arParams["~ELEMENT_ID"])? 0: intval($arParams["~ELEMENT_ID"]);
$iblockId = !empty($_REQUEST['list_id']) ? intval($_REQUEST['list_id']) : 0;
$elementId = !empty($_REQUEST['element_id']) ? intval($_REQUEST['element_id']) : 0;
$fieldId = !empty($_REQUEST['field_id']) ? $_REQUEST['field_id'] : '';
$fileId = !empty($_REQUEST['file_id']) ? intval($_REQUEST['file_id']) : 0;
$iblockTypeId = '';
$queryObject = CIBlock::getList(array(), array('ID' => $iblockId));
if ($iblock = $queryObject->fetch())
$iblockTypeId = $iblock['IBLOCK_TYPE_ID'];
$listsPerm = CListPermissions::checkAccess($USER, $iblockTypeId, $iblockId);
if (!CListPermissions::checkFieldId($iblockId, $fieldId))
{
completeLazyLoad(GetMessage('CC_BLF_UNKNOWN_ERROR'));
}
elseif ($listsPerm < 0)
{
switch ($listsPerm)
{
case CListPermissions::WRONG_IBLOCK_TYPE:
completeLazyLoad(GetMessage('CC_BLF_WRONG_IBLOCK_TYPE'));
break;
case CListPermissions::WRONG_IBLOCK:
completeLazyLoad(GetMessage('CC_BLF_WRONG_IBLOCK'));
break;
case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED:
completeLazyLoad(GetMessage('CC_BLF_LISTS_FOR_SONET_GROUP_DISABLED'));
break;
default:
completeLazyLoad(GetMessage('CC_BLF_UNKNOWN_ERROR'));
}
}
elseif ($elementId > 0 && $listsPerm <= CListPermissions::CAN_READ &&
!CIBlockElementRights::userHasRightTo($iblockId, $elementId, 'element_read'))
{
completeLazyLoad(GetMessage('CC_BLF_ACCESS_DENIED'));
}
$canFullEdit = ($elementId > 0 && ($listsPerm >= CListPermissions::IS_ADMIN
|| CIBlockRights::UserHasRightTo($iblockId, $iblockId, 'iblock_edit')));
$files = array();
if($elementId > 0)
{
$queryObject = CIBlockElement::getList(
array(),
array(
'IBLOCK_ID' => $iblockId,
'=ID' => $elementId,
'CHECK_PERMISSIONS' => 'N',
'SHOW_NEW' => ($canFullEdit ? 'Y' : 'N')
),
false,
false,
array('ID', $fieldId)
);
while($element = $queryObject->getNext())
{
if (isset($element[$fieldId]))
{
$files[] = $element[$fieldId];
}
elseif (isset($element[$fieldId.'_VALUE']))
{
if (is_array($element[$fieldId.'_VALUE']))
$files = array_merge($files, $element[$fieldId.'_VALUE']);
else
$files[] = $element[$fieldId.'_VALUE'];
}
}
}
if(!in_array($fileId, $files))
{
completeLazyLoad(GetMessage('CC_BLF_WRONG_FILE'));
}
else
{
$file = CFile::getFileArray($fileId);
if (is_array($file))
CFile::viewByUser($fileId, array('content_type' => $file['CONTENT_TYPE'], 'force_download' => true));
}
completeLazyLoad();
}
$componentData = isset($_REQUEST['PARAMS']) && is_array($_REQUEST['PARAMS']) ? $_REQUEST['PARAMS'] : array();
$componentParams = isset($componentData['params']) && is_array($componentData['params']) ?
$componentData['params'] : array();
global $APPLICATION;
Header('Content-Type: text/html; charset='.LANG_CHARSET);
$APPLICATION->ShowAjaxHead();
$APPLICATION->IncludeComponent('bitrix:lists.element.attached.crm',
isset($componentData['template']) ? $componentData['template'] : '',
$componentParams,
false,
array('HIDE_ICONS' => 'Y')
);
completeLazyLoad();
function completeLazyLoad($message = '')
{
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');
die($message);
}