GetGroupRight("sender"); if($POST_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("sender_group_adm_tab_grp"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("sender_group_adm_tab_grp_title")), array("DIV" => "edit2", "TAB" => GetMessage("sender_group_adm_tab_param"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("sender_group_adm_tab_param_title")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $ID = intval($ID); // Id of the edited record $message = null; $bVarsFromForm = false; if($REQUEST_METHOD == "POST" && ($save!="" || $apply!="") && $POST_RIGHT=="W" && check_bitrix_sessid()) { $arError = array(); $NAME = trim($NAME); $arFields = Array( "ACTIVE" => ($ACTIVE <> "Y"? "N":"Y"), "NAME" => $NAME, "SORT" => $SORT, "DESCRIPTION" => $DESCRIPTION, ); $res = false; if(is_array($CONNECTOR_SETTING) && count($CONNECTOR_SETTING)>0) { if($ID > 0) { $groupUpdateDb = \Bitrix\Sender\GroupTable::update($ID, $arFields); if($groupUpdateDb->isSuccess()) { $res = ($ID > 0); } else { $arError = $groupUpdateDb->getErrorMessages(); } } else { $groupAddDb = \Bitrix\Sender\GroupTable::add($arFields); if($groupAddDb->isSuccess()) { $ID = $groupAddDb->getId(); $res = ($ID > 0); } else { $arError = $groupAddDb->getErrorMessages(); } } } else { $arError[] = GetMessage('sender_group_conn_not_selected'); } if($res) { if(is_array($CONNECTOR_SETTING)) { $groupConnectorsDataCount = 0; \Bitrix\Sender\GroupConnectorTable::delete(array('GROUP_ID' => $ID)); $arEndpointList = \Bitrix\Sender\ConnectorManager::getEndpointFromFields($CONNECTOR_SETTING); foreach ($arEndpointList as $endpoint) { $connector = \Bitrix\Sender\ConnectorManager::getConnector($endpoint); if ($connector) { $connector->setFieldValues($endpoint['FIELDS']); $connectorDataCount = $connector->getDataCount(); $arGroupConnectorAdd = array( 'GROUP_ID' => $ID, 'NAME' => $connector->getName(), 'ENDPOINT' => $endpoint, 'ADDRESS_COUNT' => $connectorDataCount ); $groupConnectorAddDb = \Bitrix\Sender\GroupConnectorTable::add($arGroupConnectorAdd); if($groupConnectorAddDb->isSuccess()) { $groupConnectorsDataCount += $connectorDataCount; } } } \Bitrix\Sender\GroupTable::update($ID, array('ADDRESS_COUNT' => $groupConnectorsDataCount)); } if($apply!="") LocalRedirect("/bitrix/admin/sender_group_edit.php?ID=".$ID."&lang=".LANG."&".$tabControl->ActiveTabParam()); else LocalRedirect("/bitrix/admin/sender_group_admin.php?lang=".LANG); } else { if(!empty($arError)) $message = new CAdminMessage(implode("
", $arError)); $bVarsFromForm = true; } } //Edit/Add part ClearVars(); $str_SORT = 100; $str_ACTIVE = "Y"; $str_VISIBLE = "Y"; if($ID>0) { $rubric = new CDBResult(\Bitrix\Sender\GroupTable::getById($ID)); if(!$rubric->ExtractFields("str_")) $ID=0; } $endpointList = array(); if($ID>0) { $groupConnectorDb = \Bitrix\Sender\GroupConnectorTable::getList(array('filter'=>array('GROUP_ID'=>$ID))); while($groupConnector = $groupConnectorDb->fetch()) { if(!empty($groupConnector['ENDPOINT'])) $endpointList[] = $groupConnector['ENDPOINT']; } } if($bVarsFromForm) $DB->InitTableVarsForEdit("b_sender_group", "", "str_"); if(isset($CONNECTOR_SETTING)) $arConnectorSettings = $CONNECTOR_SETTING; else $arConnectorSettings = array(); if(count($endpointList)>0) { $arConnectorSettings = \Bitrix\Sender\ConnectorManager::getFieldsFromEndpoint($endpointList); } $arAvailableConnectors = array(); $arExistedConnectors = array(); $arConnector = \Bitrix\Sender\ConnectorManager::getConnectorList(); /** @var \Bitrix\Sender\Connector $connector */ foreach($arConnector as $connector) { if(array_key_exists($connector->getModuleId(), $arConnectorSettings)) $arFieldsValues = $arConnectorSettings[$connector->getModuleId()][$connector->getCode()]; else $arFieldsValues = array(); $connector->setFieldPrefix('CONNECTOR_SETTING'); $connectorIdCount = 0; $arAvailableConnectors[$connector->getId()] = array( 'ID' => $connector->getId(), 'NAME' => $connector->getName(), 'FORM' => $connector->getForm().'' ); if( array_key_exists($connector->getModuleId(), $arConnectorSettings) ) { if( array_key_exists($connector->getCode(), $arConnectorSettings[$connector->getModuleId()]) ) { $connectorIdCount = 0; $arFieldsValuesConnector = $arConnectorSettings[$connector->getModuleId()][$connector->getCode()]; foreach($arFieldsValuesConnector as $fieldValues) { $connector->setFieldFormName('post_form'); $connector->setFieldValues($fieldValues); $arExistedConnectors[] = array( 'ID' => $connector->getId(), 'NAME' => $connector->getName(), 'FORM' => str_replace('%CONNECTOR_NUM%', $connectorIdCount, $connector->getForm().''), 'COUNT' => $connector->getDataCount() ); $connectorIdCount++; } } } } \CJSCore::Init(array("sender_admin")); $APPLICATION->SetTitle(($ID>0? GetMessage("sender_group_title_edit").$ID : GetMessage("sender_group_title_add"))); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT"=>GetMessage("sender_group_list"), "TITLE"=>GetMessage("sender_group_list_title"), "LINK"=>"sender_group_admin.php?lang=".LANG, "ICON"=>"btn_list", ) ); if($ID>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT"=>GetMessage("sender_group_add"), "TITLE"=>GetMessage("sender_group_add_title"), "LINK"=>"sender_group_edit.php?lang=".LANG, "ICON"=>"btn_new", ); $aMenu[] = array( "TEXT"=>GetMessage("sender_group_del"), "TITLE"=>GetMessage("sender_group_del_title"), "LINK"=>"javascript:if(confirm('".GetMessage("sender_group_del_confirm")."'))window.location='sender_group_admin.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';", "ICON"=>"btn_delete", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); ?> 0) CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("rub_saved"), "TYPE"=>"OK")); if($message) echo $message->Show(); elseif($rubric->LAST_ERROR!="") CAdminMessage::ShowMessage($rubric->LAST_ERROR); ?>
Begin(); ?> BeginNextTab(); ?> > BeginNextTab(); ?>