%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.personal.profile.list/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/sale.personal.profile.list/class.php |
<?php
/**
* Bitrix Framework
* @package bitrix
* @subpackage sale
* @copyright 2001-2016 Bitrix
*/
use Bitrix\Main,
Bitrix\Main\Localization\Loc,
Bitrix\Main\Loader;
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
class PersonalProfileList extends CBitrixComponent
{
const E_SALE_MODULE_NOT_INSTALLED = 10000;
const E_NOT_AUTHORIZED = 10001;
/** @var Main\ErrorCollection $errorCollection*/
protected $errorCollection;
/**
* Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
* @param mixed[] $params List of unchecked parameters
* @return mixed[] Checked and valid parameters
*/
public function onPrepareComponentParams($params)
{
$this->errorCollection = new Main\ErrorCollection();
$params["PATH_TO_DETAIL"] = trim($params["PATH_TO_DETAIL"]);
if (strlen($params["PATH_TO_DETAIL"]) <= 0)
{
$params["PATH_TO_DETAIL"] = htmlspecialcharsbx(Main\Context::getCurrent()->getRequest()->getRequestedPage()."?ID=#ID#");
}
$params["PER_PAGE"] = ((int)($params["PER_PAGE"]) <= 0 ? 20 : (int)($params["PER_PAGE"]));
return $params;
}
public function executeComponent()
{
global $APPLICATION, $USER;
Loc::loadMessages(__FILE__);
$this->setFrameMode(false);
$this->checkRequiredModules();
$this->arResult['ERRORS'] = array();
if (!$USER->IsAuthorized())
{
if(!$this->arParams['AUTH_FORM_IN_TEMPLATE'])
{
$APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED"), false, false, 'N', false);
}
else
{
$this->arResult['ERRORS'][self::E_NOT_AUTHORIZED] = GetMessage("SALE_ACCESS_DENIED");
}
}
if($this->arParams["SET_TITLE"] == 'Y')
$APPLICATION->SetTitle(GetMessage("SPPL_DEFAULT_TITLE"));
$request = Main\Context::getCurrent()->getRequest();
$errorMessage = "";
$deleteElementId = (int)($request->get("del_id"));
if ($deleteElementId > 0 && check_bitrix_sessid())
{
$dbUserProps = CSaleOrderUserProps::GetList(
array(),
array(
"ID" => $deleteElementId,
"USER_ID" => (int)($USER->GetID())
)
);
if ($arUserProps = $dbUserProps->Fetch())
{
if (!CSaleOrderUserProps::Delete($arUserProps["ID"]))
{
$errorMessage = GetMessage("SALE_DEL_PROFILE");
}
}
else
{
$errorMessage = GetMessage("SALE_NO_PROFILE");
}
if(strlen($errorMessage) > 0)
LocalRedirect($APPLICATION->GetCurPageParam("del_id=".$deleteElementId, Array("del_id", "sessid")));
else
LocalRedirect($APPLICATION->GetCurPageParam("success_del_id=".$deleteElementId, Array("del_id", "sessid")));
}
if((int)($_REQUEST["del_id"]) > 0)
$errorMessage = GetMessage("SALE_DEL_PROFILE", array("#ID#" => (int)($_REQUEST["del_id"])));
elseif((int)($_REQUEST["success_del_id"]) > 0)
$errorMessage = GetMessage("SALE_DEL_PROFILE_SUC", array("#ID#" => (int)($_REQUEST["success_del_id"])));
if(strlen($errorMessage) > 0)
{
$this->arResult["ERROR_MESSAGE"] = $errorMessage;
$this->arResult['ERRORS'][] = $errorMessage;
}
$by = (strlen($_REQUEST["by"])>0 ? $_REQUEST["by"]: "DATE_UPDATE");
$order = (strlen($_REQUEST["order"])>0 ? $_REQUEST["order"]: "DESC");
$dbUserProps = CSaleOrderUserProps::GetList(
array($by => $order),
array("USER_ID" => (int)($GLOBALS["USER"]->GetID()))
);
$dbUserProps->NavStart($this->arParams["PER_PAGE"]);
$this->arResult["NAV_STRING"] = $dbUserProps->GetPageNavString(GetMessage("SPPL_PAGES"));
$this->arResult["PROFILES"] = Array();
while($arUserProps = $dbUserProps->GetNext())
{
$arResultTmp = $arUserProps;
$personTypeList = Bitrix\Sale\PersonType::load(SITE_ID, $arUserProps["PERSON_TYPE_ID"]);
$arResultTmp["PERSON_TYPE"] = $personTypeList[$arUserProps["PERSON_TYPE_ID"]];
$arResultTmp["PERSON_TYPE"]["NAME"] = htmlspecialcharsEx($arResultTmp["PERSON_TYPE"]["NAME"]);
$arResultTmp["URL_TO_DETAIL"] = CComponentEngine::MakePathFromTemplate($this->arParams["PATH_TO_DETAIL"], Array("ID" => $arUserProps["ID"]));
if (empty($this->arParams['PATH_TO_DELETE']))
{
$arResultTmp["URL_TO_DETELE"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?del_id=".$arUserProps["ID"]."&".bitrix_sessid_get());
}
else
{
$arResultTmp["URL_TO_DETELE"] = CComponentEngine::MakePathFromTemplate($this->arParams["PATH_TO_DELETE"], Array("ID" => $arUserProps["ID"]))."&".bitrix_sessid_get();
}
$this->arResult["PROFILES"][] = $arResultTmp;
}
if ($request->get('SECTION'))
{
$this->arResult["URL"] = htmlspecialcharsbx($request->getRequestedPage()."?SECTION=".$request->get('SECTION')."&");
}
else
{
$this->arResult["URL"] = htmlspecialcharsbx($request->getRequestedPage()."?");
}
$this->includeComponentTemplate();
}
/**
* Function checks if required modules installed. If not, throws an exception
* @throws Main\SystemException
* @return void
*/
protected function checkRequiredModules()
{
if (!Loader::includeModule('sale'))
{
throw new Main\SystemException(Loc::getMessage("SALE_MODULE_NOT_INSTALL"), self::E_SALE_MODULE_NOT_INSTALLED);
}
}
}