%PDF- %PDF-
| Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/catalog/admin/ |
| Current File : //proc/self/root/home/bitrix/www/bitrix/modules/catalog/admin/cat_store_edit.php |
<?
use Bitrix\Catalog;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/prolog.php");
global $APPLICATION;
global $DB;
global $USER;
global $USER_FIELD_MANAGER;
$selfFolderUrl = $adminPage->getSelfFolderUrl();
$listUrl = $selfFolderUrl."cat_store_list.php?lang=".LANGUAGE_ID;
$listUrl = $adminSidePanelHelper->editUrlToPublicPage($listUrl);
if (!($USER->CanDoOperation('catalog_read') || $USER->CanDoOperation('catalog_store')))
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
CModule::IncludeModule("catalog");
$bReadOnly = !$USER->CanDoOperation('catalog_store');
if($ex = $APPLICATION->GetException())
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$strError = $ex->GetString();
ShowError($strError);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
die();
}
$id = (isset($_REQUEST['ID']) ? (int)$_REQUEST['ID'] : 0);
if ($id < 0)
$id = 0;
if(!Catalog\Config\Feature::isMultiStoresEnabled())
{
$dbResultList = CCatalogStore::GetList(array());
if(($arResult = $dbResultList->Fetch()) && $id != $arResult["ID"])
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
ShowError(GetMessage("CAT_FEATURE_NOT_ALLOW"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
die();
}
}
IncludeModuleLangFile(__FILE__);
ClearVars();
$errorMessage = '';
$bVarsFromForm = false;
$userId = (int)$USER->GetID();
$entityId = "CAT_STORE";
if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_REQUEST["Update"]) > 0 && !$bReadOnly && check_bitrix_sessid())
{
$adminSidePanelHelper->decodeUriComponent();
$arPREVIEW_PICTURE = $_FILES["IMAGE_ID"];
$arPREVIEW_PICTURE["del"] = $IMAGE_ID_del;
$arPREVIEW_PICTURE["MODULE_ID"] = "catalog";
$ISSUING_CENTER = ($_POST["ISSUING_CENTER"] == 'Y') ? 'Y' : 'N';
$SHIPPING_CENTER = ($_POST["SHIPPING_CENTER"] == 'Y') ? 'Y' : 'N';
$fileId = 0;
$isImage = CFile::CheckImageFile($arPREVIEW_PICTURE);
if (trim($ADDRESS) == '')
$errorMessage .= GetMessage("ADDRESS_EMPTY")."<br>";
if (strlen($isImage) == 0 && (strlen($arPREVIEW_PICTURE["name"]) > 0 || strlen($arPREVIEW_PICTURE["del"]) > 0))
{
$fileId = CFile::SaveFile($arPREVIEW_PICTURE, "catalog");
}
elseif (strlen($isImage) > 0)
{
$errorMessage .= $isImage."<br>";
}
$arFields = array(
"TITLE" => (isset($_POST['TITLE']) ? $_POST['TITLE'] : ''),
"SORT" => (isset($_POST['CSTORE_SORT']) ? (int)$_POST['CSTORE_SORT'] : 0),
"ACTIVE" => (isset($_POST['ACTIVE']) && $_POST['ACTIVE'] == 'Y' ? 'Y' : 'N'),
"ADDRESS" => (isset($_POST['ADDRESS']) ? $_POST['ADDRESS'] : ''),
"DESCRIPTION" => (isset($_POST['DESCRIPTION']) ? $_POST['DESCRIPTION'] : ''),
"GPS_N" => (isset($_POST['GPS_N']) ? str_replace(',', '.', $_POST['GPS_N']) : ''),
"GPS_S" => (isset($_POST['GPS_S']) ? str_replace(',', '.', $_POST['GPS_S']) : ''),
"PHONE" => (isset($_POST['PHONE']) ? $_POST['PHONE'] : ''),
"SCHEDULE" => (isset($_POST['SCHEDULE']) ? $_POST['SCHEDULE'] : ''),
"XML_ID" => (isset($_POST['XML_ID']) ? $_POST['XML_ID'] : ''),
"USER_ID" => $userId,
"MODIFIED_BY" => $userId,
"EMAIL" => (isset($_POST["EMAIL"]) ? $_POST["EMAIL"] : ''),
"ISSUING_CENTER" => $ISSUING_CENTER,
"SHIPPING_CENTER" => $SHIPPING_CENTER,
"SITE_ID" => $_POST["SITE_ID"],
"CODE" => isset($_POST['CODE']) ? $_POST['CODE'] : false
);
$USER_FIELD_MANAGER->EditFormAddFields($entityId, $arFields);
if (intval($fileId) > 0)
$arFields["IMAGE_ID"] = intval($fileId);
elseif ($fileId === "NULL")
$arFields["IMAGE_ID"] = "null";
$DB->StartTransaction();
if ($errorMessage == '')
{
if ($id > 0)
{
$res = CCatalogStore::Update($id, $arFields);
}
else
{
$res = CCatalogStore::Add($arFields);
if ($res)
$id = (int)$res;
}
if (!$res)
{
if ($ex = $APPLICATION->GetException())
$errorMessage .= $ex->GetString()."<br>";
else
$errorMessage .= GetMessage('STORE_SAVE_ERROR').'<br>';
}
else
{
$ufUpdated = $USER_FIELD_MANAGER->Update($entityId, $id, $arFields);
}
}
if ($errorMessage == '')
{
$DB->Commit();
if (strlen($_REQUEST["apply"]) <= 0)
{
$adminSidePanelHelper->sendSuccessResponse("base", array("ID" => $id));
$adminSidePanelHelper->localRedirect($listUrl);
LocalRedirect($listUrl);
}
else
{
$applyUrl = $selfFolderUrl."cat_store_edit.php?lang=".LANGUAGE_ID."&ID=".$id;
$applyUrl = $adminSidePanelHelper->setDefaultQueryParams($applyUrl);
$adminSidePanelHelper->sendSuccessResponse("apply", array("reloadUrl" => $applyUrl));
LocalRedirect($applyUrl);
}
}
else
{
$bVarsFromForm = true;
$DB->Rollback();
$adminSidePanelHelper->sendJsonErrorResponse($errorMessage);
}
}
if ($id > 0)
$APPLICATION->SetTitle(str_replace("#ID#", $id, GetMessage("STORE_TITLE_UPDATE")));
else
$APPLICATION->SetTitle(GetMessage("STORE_TITLE_ADD"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$str_ACTIVE = "Y";
if($id > 0)
{
$arSelect = array(
"ID",
"ACTIVE",
"TITLE",
"ADDRESS",
"DESCRIPTION",
"GPS_N",
"GPS_S",
"IMAGE_ID",
"LOCATION_ID",
"PHONE",
"SCHEDULE",
"XML_ID",
"SORT",
"EMAIL",
"ISSUING_CENTER",
"SHIPPING_CENTER",
"SITE_ID",
"CODE"
);
$dbResult = CCatalogStore::GetList(array(), array('ID' => $id), false, false, $arSelect);
if (!$dbResult->ExtractFields("str_"))
$id = 0;
}
if ($bVarsFromForm)
$DB->InitTableVarsForEdit("b_catalog_store", "", "str_");
if(isset($str_ADDRESS))
$str_ADDRESS = (trim($str_ADDRESS) != '') ? $str_ADDRESS : '';
$aMenu = array(
array(
"TEXT" => GetMessage("STORE_LIST"),
"ICON" => "btn_list",
"LINK" => $listUrl
)
);
if ($id > 0 && !$bReadOnly)
{
$aMenu[] = array("SEPARATOR" => "Y");
$addUrl = $selfFolderUrl."cat_store_edit.php?lang=".LANGUAGE_ID;
$addUrl = $adminSidePanelHelper->editUrlToPublicPage($addUrl);
$aMenu[] = array(
"TEXT" => GetMessage("STORE_NEW"),
"ICON" => "btn_new",
"LINK" => $addUrl
);
$deleteUrl = $selfFolderUrl."cat_store_list.php?action=delete&ID[]=".$id."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."#tb";
if ($adminSidePanelHelper->isPublicFrame())
{
$deleteUrl = $adminSidePanelHelper->editUrlToPublicPage($deleteUrl);
}
$aMenu[] = array(
"TEXT" => GetMessage("STORE_DELETE"),
"ICON" => "btn_delete",
"LINK" => "javascript:if(confirm('".GetMessage("STORE_DELETE_CONFIRM")."')) top.window.location='".$deleteUrl."';",
"WARNING" => "Y"
);
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
$arSitesShop = array();
$arSitesTmp = array();
$rsSites = CSite::GetList($_REQUEST["by"] = "id", $_REQUEST["order"] = "asc", Array("ACTIVE" => "Y"));
while($arSite = $rsSites->GetNext())
{
$site = COption::GetOptionString("sale", "SHOP_SITE_".$arSite["ID"], "");
if ($arSite["ID"] == $site)
{
$arSitesShop[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]);
}
$arSitesTmp[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]);
}
$rsCount = count($arSitesShop);
if ($rsCount <= 0)
{
$arSitesShop = $arSitesTmp;
$rsCount = count($arSitesShop);
}
CAdminMessage::ShowMessage($errorMessage);?>
<?
$actionUrl = $APPLICATION->GetCurPage();
$actionUrl = $adminSidePanelHelper->setDefaultQueryParams($actionUrl);
$userFieldUrl = $selfFolderUrl."userfield_edit.php?lang=".LANGUAGE_ID."&ENTITY_ID=".$entityId;
$userFieldUrl = $adminSidePanelHelper->editUrlToPublicPage($userFieldUrl);
$userFieldUrl .= "&back_url=".urlencode($APPLICATION->GetCurPageParam('', array('bxpublic'))."&tabControl_active_tab=user_fields_tab");
?>
<form enctype="multipart/form-data" method="POST" action="<?=$actionUrl?>" name="store_edit">
<?echo GetFilterHiddens("filter_");?>
<input type="hidden" name="Update" value="Y">
<input type="hidden" name="lang" value="<?echo LANGUAGE_ID; ?>">
<input type="hidden" name="ID" value="<?echo $id ?>">
<?=bitrix_sessid_post()?><?
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("STORE_TAB"), "ICON" => "catalog", "TITLE" => GetMessage("STORE_TAB_DESCR")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$tabControl->Begin();
$tabControl->BeginNextTab();
?>
<tr>
<td align="left" colspan="2">
<a href="<?=$userFieldUrl?>"><?=GetMessage("STORE_E_USER_FIELDS_ADD_HREF");?></a>
</td>
</tr>
<?if ($id > 0):?>
<tr>
<td>ID:</td>
<td><?= $id ?></td>
</tr>
<?endif;?>
<tr>
<td width="40%"><?= GetMessage("STORE_ACTIVE") ?>:</td>
<td width="60%">
<input type="checkbox" name="ACTIVE" value="Y" <?if(($str_ACTIVE == 'Y') || ($id == 0)) echo "checked";?> size="50" />
</td>
</tr>
<tr>
<td width="40%"><?= GetMessage("ISSUING_CENTER") ?>:</td>
<td width="60%">
<input type="checkbox" name="ISSUING_CENTER" value="Y" <?if(($str_ISSUING_CENTER == 'Y') || $id == 0) echo "checked";?> size="50" />
</td>
</tr>
<tr>
<td width="40%"><?= GetMessage("SHIPPING_CENTER") ?>:</td>
<td width="60%">
<input type="checkbox" name="SHIPPING_CENTER" value="Y" <?if(($str_SHIPPING_CENTER == 'Y') || $id == 0) echo "checked";?> size="50" />
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_SITE_ID") ?>:</td>
<td>
<select id="SITE_ID" style="max-width: 300px; width: 300px;" name="SITE_ID" <?=($bReadOnly) ? " disabled" : ""?>>
<option value=""><?=GetMessage("STORE_SELECT_SITE_ID")?></option>
<? foreach($arSitesShop as $key => $val)
{
$selected = ($val['ID'] == $str_SITE_ID) ? 'selected' : '';
echo "<option ".$selected." value=".htmlspecialcharsbx($val['ID']).">".htmlspecialcharsbx($val["NAME"]." (".$val["ID"].")")."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_TITLE") ?>:</td>
<td>
<input type="text" style="width:300px" name="TITLE" value="<?=$str_TITLE?>" />
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_CODE") ?>:</td>
<td>
<input type="text" style="width:300px" name="CODE" value="<?=$str_CODE?>">
</td>
</tr>
<tr class="adm-detail-required-field">
<td class="adm-detail-valign-top"><?= GetMessage("STORE_ADDRESS") ?>:</td>
<td>
<textarea cols="35" rows="3" class="typearea" name="ADDRESS"><?= $str_ADDRESS ?></textarea>
</td>
</tr>
<tr>
<td class="adm-detail-valign-top"><?= GetMessage("STORE_DESCR") ?>:</td>
<td>
<textarea cols="35" rows="3" class="typearea" name="DESCRIPTION"><?= $str_DESCRIPTION ?></textarea>
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_PHONE") ?>:</td>
<td>
<input type="text" name="PHONE" value="<?=$str_PHONE?>" size="45" />
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_SCHEDULE") ?>:</td>
<td>
<input type="text" style="width:300px" name="SCHEDULE" value="<?=$str_SCHEDULE?>"/>
</td>
</tr>
<tr>
<td><?= "Email" ?>:</td>
<td>
<input type="text" style="width:300px" name="EMAIL" value="<?=$str_EMAIL?>"/>
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_GPS_N") ?>:</td>
<td><input type="text" name="GPS_N" value="<?=$str_GPS_N?>" size="15" />
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_GPS_S") ?>:</td>
<td><input type="text" name="GPS_S" value="<?=$str_GPS_S?>" size="15" />
</td>
</tr>
<tr>
<td><?= GetMessage("STORE_XML_ID") ?>:</td>
<td><input type="text" name="XML_ID" value="<?=$str_XML_ID?>" size="45" />
</td>
</tr>
<tr>
<td width="40%"><?= GetMessage("CSTORE_SORT") ?>:</td>
<td width="60%">
<input type="text" name="CSTORE_SORT" value="<?=$str_SORT?>" size="5" />
</td>
</tr>
<tr>
<td><?echo GetMessage("STORE_IMAGE")?>:</td>
<td>
<?echo CFile::InputFile("IMAGE_ID", 20, $str_IMAGE_ID, false, 0, "IMAGE", "", 0);?><br>
<?
if($str_IMAGE_ID)
{
echo CFile::ShowImage($str_IMAGE_ID, 200, 200, "border=0", "", true);
}
?>
</td>
</tr>
<?
$arUserFields = $USER_FIELD_MANAGER->GetUserFields($entityId, $id, LANGUAGE_ID);
foreach($arUserFields as $FIELD_NAME => $arUserField)
{
$arUserField["VALUE_ID"] = intval($id);
$strLabel = $arUserField["EDIT_FORM_LABEL"]? $arUserField["EDIT_FORM_LABEL"]: $arUserField["FIELD_NAME"];
$arUserField["EDIT_FORM_LABEL"] = $strLabel;
echo $USER_FIELD_MANAGER->GetEditFormHTML($bVarsFromForm, $GLOBALS[$FIELD_NAME], $arUserField);
$form_value = $GLOBALS[$FIELD_NAME];
if(!$bVarsFromForm)
$form_value = $arUserField["VALUE"];
elseif($arUserField["USER_TYPE"]["BASE_TYPE"]=="file")
$form_value = $GLOBALS[$arUserField["FIELD_NAME"]."_old_id"];
}
$tabControl->EndTab();
$tabControl->Buttons(array("disabled" => $bReadOnly, "back_url" => $listUrl));
$tabControl->End();
?>
</form>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");