Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/epages.pickpoint/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/epages.pickpoint/options.php

<?
use \Bitrix\Main\Localization\Loc;
use \Epages\PickPoint\Bitrix\Tools;
use \Epages\PickPoint\Option;

Loc::loadMessages(__FILE__);

CJSCore::Init(array("jquery"));

$module_id = 'epages.pickpoint';
include $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/epages.pickpoint/constants.php';

$CAT_RIGHT = $APPLICATION->GetGroupRight($module_id);
if ($CAT_RIGHT >= 'R'):
    include $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/epages.pickpoint/fields.php';
    global $MESS;
    global $arOptions;
    include_once $GLOBALS['DOCUMENT_ROOT'].'/bitrix/modules/epages.pickpoint/include.php';
	
	//echo '<pre>'.print_r($arOptions, true).'</pre>';
	//echo '<pre>'.print_r($_REQUEST, true).'</pre>';	
	
	/*$ar = [];
	$oc = Option::collection();
	foreach ($oc as $name => $data)
	{
		$ar['OPTIONS'][$name] = Option::get($name);
	}
	echo '<pre>'.print_r($ar, true).'</pre>';
	*/	
	
	$expiredNotifyId = CAdminNotify::Add(['MESSAGE' => GetMessage("PP_VERSION_EXPIRED_NOTIFY"), 'TAG' => 'EPAGES_PICKPOINT_EXPIRED', 'MODULE_ID' => $module_id,
		'ENABLE_CLOSE' => 'Y', 'NOTIFY_TYPE' => CAdminNotify::TYPE_ERROR]);
	
	$expired = new CAdminMessage(['MESSAGE' => GetMessage("PP_VERSION_EXPIRED"), 'TYPE' => 'ERROR', 'DETAILS' => GetMessage("PP_VERSION_EXPIRED_TEXT"), 'HTML' => true]);
	echo $expired->Show();
	
	// Check required options
	if (!Option::isRequiredOptionsSet())
	{
		$optionsNotSetMessage = new CAdminMessage([
			'MESSAGE' => GetMessage("PP_MODULE_OPTIONS_NOT_SET"), 
			'TYPE' => 'ERROR', 
			'DETAILS' => GetMessage("PP_MODULE_OPTIONS_NOT_SET_TEXT"), 
			'HTML' => true
			]);
		echo $optionsNotSetMessage->Show();
	}	

    $REQUEST_METHOD = $_SERVER['REQUEST_METHOD'];
    $Update = $_REQUEST['Update'];
    $RestoreDefaults = $_REQUEST['RestoreDefaults']; 
    if ($CAT_RIGHT >= 'W' && check_bitrix_sessid()) 
	{
        if ($REQUEST_METHOD == 'GET' && strlen($RestoreDefaults) > 0) 
		{
            COption::RemoveOption($module_id);
            $z = CGroup::GetList($v1 = 'id', $v2 = 'asc', array('ACTIVE' => 'Y', 'ADMIN' => 'N'));
            while ($zr = $z->Fetch()) {
                $APPLICATION->DelGroupRight($module_id, array($zr['ID']));
            }
        }
        if ($REQUEST_METHOD == 'POST' && strlen($Update) > 0) 
		{
            ob_start();
            require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/group_rights.php');
            ob_end_clean();
            
			if (($errorsDetected = Option::validateRequiredOptions($_REQUEST)) !== false)
			{
				$APPLICATION->ThrowException(Loc::getMessage('PP_ERROR_OPTONS_DONT_SAVED').'<br><br>'.$errorsDetected);
					
            //if (!CheckPickpointLicense($_REQUEST['pp_ikn_number'])) {
            //   $APPLICATION->ThrowException(Loc::getMessage('PP_WRONG_KEY'));
            } else {
                foreach ($_REQUEST as $sCode => $Value) {
                    if (in_array($sCode, array_keys($arOptions['OPTIONS']))) {
                        if ($Value) {
                            if (is_array($Value)) {
                                $Value = serialize($Value);
                            }

                            if (!COption::SetOptionString($module_id, $sCode, $Value)) {
                                $arOptions['OPTIONS'][$sCode] = $Value;
                            }
                        } else {
                            COption::SetOptionString($module_id, $sCode, '');
                        }
                    }
                }
                if ($_REQUEST['pp_add_info']) {
                    COption::SetOptionString($module_id, 'pp_add_info', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_add_info', 0);
                }

                if ($_REQUEST['pp_order_phone']) {
                    COption::SetOptionString($module_id, 'pp_order_phone', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_order_phone', 0);
                }

                if ($_REQUEST['pp_order_city_status']) {
                    COption::SetOptionString($module_id, 'pp_order_city_status', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_order_city_status', 0);
                }

                if ($_REQUEST['pp_city_location']) {
                    COption::SetOptionString($module_id, 'pp_city_location', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_city_location', 0);
                }

                if ($_REQUEST['pp_use_coeff']) {
                    COption::SetOptionString($module_id, 'pp_use_coeff', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_use_coeff', 0);
                }

                if ($_REQUEST['pp_test_mode']) {
                    COption::SetOptionString($module_id, 'pp_test_mode', 1);
                } else {
                    COption::SetOptionString($module_id, 'pp_test_mode', 0);
                }

                $arTableOptions = $_REQUEST['OPTIONS'];

                foreach ($arTableOptions as $iPT => $arPersonTypeValues) {
                    foreach ($arPersonTypeValues as $sValueCode => $arValues) {
                        foreach ($arValues as $iKey => $arValueList) {
                            if ($arValueList['TYPE'] == 'ANOTHER') {
                                $arTableOptions[$iPT][$sValueCode][$iKey]['VALUE'] = $arValueList['VALUE_ANOTHER'];
                            }
                            unset($arTableOptions[$iPT][$sValueCode][$iKey]['VALUE_ANOTHER']);
                        }
                    }
                }
                COption::SetOptionString($module_id, 'OPTIONS', serialize($arTableOptions));

                if (!empty($_REQUEST['CITIES'])) {
                    foreach ($_REQUEST['CITIES'] as $arCityFields) {
                        if (intval($arCityFields['BX_ID'])) {
                            $arCityFields['PRICE'] = floatval($arCityFields['PRICE']);
                            if (!isset($arCityFields['ACTIVE'])) {
                                $arCityFields['ACTIVE'] = 'N';
                            }
                            CPickpoint::SetPPCity($arCityFields['PP_ID'], $arCityFields);
                        }
                    }
                }

                if (!empty($_REQUEST['ZONES'])) {
                    foreach ($_REQUEST['ZONES'] as $zoneId => $arZoneFields) {
                        $arZoneFields['PRICE'] = floatval($arZoneFields['PRICE']);
                        CPickpoint::SetPPZone($zoneId, $arZoneFields);
                    }
                }
                $arOptions = array();
                if (!(COption::GetOptionString($module_id, 'pp_service_types_all', ''))) {
                    COption::SetOptionString($module_id, 'pp_service_types_all', serialize($arServiceTypes));
                }
                if (!(COption::GetOptionString($module_id, 'pp_enclosing_types_all', ''))) {
                    COption::SetOptionString($module_id, 'pp_enclosing_types_all', serialize($arEnclosingTypes));
                }

                $iTimestamp = COption::GetOptionInt($module_id, 'pp_city_download_timestamp', 0);

                if (time() > $iTimestamp
                    || !file_exists(
                        $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/epages.pickpoint/cities.csv'
                    )
                ) {
                    CPickpoint::GetCitiesCSV();
                }

                $arOptions = array();
                $arOptions['OPTIONS']['pp_add_info'] = COption::GetOptionString($module_id, 'pp_add_info', '1');
                $arOptions['OPTIONS']['pp_order_phone'] = COption::GetOptionString($module_id, 'pp_order_phone', '1');
                $arOptions['OPTIONS']['pp_order_city_status'] = COption::GetOptionString($module_id, 'pp_order_city_status', '1');
                $arOptions['OPTIONS']['pp_city_location'] = COption::GetOptionString($module_id, 'pp_city_location', '1');
                $arOptions['OPTIONS']['pp_ikn_number'] = COption::GetOptionString($module_id, 'pp_ikn_number', '');
                $arOptions['OPTIONS']['pp_enclosure'] = COption::GetOptionString($module_id, 'pp_enclosure', '');
                $arOptions['OPTIONS']['pp_service_types_selected'] = COption::GetOptionString(
                    $module_id,
                    'pp_service_types_selected'
                );
                $arOptions['OPTIONS']['pp_service_types_all'] = COption::GetOptionString(
                    $module_id,
                    'pp_service_types_all'
                );
                $arOptions['OPTIONS']['pp_enclosing_types_selected'] = COption::GetOptionString(
                    $module_id,
                    'pp_enclosing_types_selected'
                );
                $arOptions['OPTIONS']['pp_enclosing_types_all'] = COption::GetOptionString(
                    $module_id,
                    'pp_enclosing_types_all'
                );
                $arOptions['OPTIONS']['pp_zone_count'] = COption::GetOptionString($module_id, 'pp_zone_count', 10);
                $arOptions['OPTIONS']['pp_from_city'] = COption::GetOptionString($module_id, 'pp_from_city', '');
                $arOptions['OPTIONS']['pp_delivery_vat'] = COption::GetOptionString($module_id, 'pp_delivery_vat', '');
                $arOptions['OPTIONS']['pp_use_coeff'] = COption::GetOptionString($module_id, 'pp_use_coeff', '');
                $arOptions['OPTIONS']['pp_custom_coeff'] = COption::GetOptionString($module_id, 'pp_custom_coeff', '');
                $arOptions['OPTIONS']['pp_api_login'] = COption::GetOptionString($module_id, 'pp_api_login', '');
                $arOptions['OPTIONS']['pp_api_password'] = COption::GetOptionString($module_id, 'pp_api_password', '');
                $arOptions['OPTIONS']['pp_test_mode'] = COption::GetOptionString($module_id, 'pp_test_mode', '');
                $arOptions['OPTIONS']['pp_free_delivery_price'] = COption::GetOptionString(
                    $module_id,
                    'pp_free_delivery_price',
                    ''
                );
                LocalRedirect($APPLICATION->GetCurPageParam());
            }
        }
    }
    
    $arServiceTypes = strlen($arOptions['OPTIONS']['pp_service_types_all']) ? unserialize(
        $arOptions['OPTIONS']['pp_service_types_all']
    ) : $arServiceTypes;
    $arSelectedST = strlen($arOptions['OPTIONS']['pp_service_types_selected']) ? unserialize(
        $arOptions['OPTIONS']['pp_service_types_selected']
    ) : array();
    $arEnclosingTypes = strlen($arOptions['OPTIONS']['pp_enclosing_types_all']) ? unserialize(
        $arOptions['OPTIONS']['pp_enclosing_types_all']
    ) : $arEnclosingTypes;
    $arSelectedET = strlen($arOptions['OPTIONS']['pp_enclosing_types_selected']) ? unserialize(
        $arOptions['OPTIONS']['pp_enclosing_types_selected']
    ) : array();
    $arTableOptions = (unserialize(COption::GetOptionString($module_id, 'OPTIONS')));
	if (!$arTableOptions)
		$arTableOptions = array();
	
    if (isset($_REQUEST['OPTIONS'])) {
        $arTableOptions = $_REQUEST['OPTIONS'];
    }
    foreach ($arOptions['OPTIONS'] as $sKey => $sValue) {
        if (isset($_REQUEST[$sKey])) {
            $arOptions['OPTIONS'][$sKey] = (is_array($_REQUEST[$sKey])) ? serialize($_REQUEST[$sKey])
                : $_REQUEST[$sKey];
        }
    }
   
   	// Tabs in module options
    $arTabs = array(
		array(
            'DIV'   => 'edit1',
            'TAB'   => Loc::getMessage('PPOINT_FAQ_TAB'),            
			'ICON'  => 'support_settings',
            'TITLE' => Loc::getMessage('PPOINT_FAQ_TAB_TITLE'),
			'PATH'  => Tools::defaultOptionPath()."FAQ.php",
        ),
        array(
            'DIV'   => 'edit2',
            'TAB'   => Loc::getMessage('MAIN_TAB_SET'),
            'ICON'  => 'support_settings',
            'TITLE' => Loc::getMessage('MAIN_TAB_TITLE_SET'),
			'PATH'  => Tools::defaultOptionPath()."setup.php",
        ),
        array(
            'DIV'   => 'edit3',
            'TAB'   => Loc::getMessage('PPOINT_ZONES_TAB'),
            'ICON'  => 'support_settings',
            'TITLE' => Loc::getMessage('PPOINT_ZONES_TAB_TITLE'),
			'PATH'  => Tools::defaultOptionPath()."zones.php",
        ),
        array(
            'DIV'   => 'edit4',
            'TAB'   => Loc::getMessage('MAIN_TAB_RIGHTS'),
            'ICON'  => 'pickpoint_settings',
            'TITLE' => Loc::getMessage('MAIN_TAB_TITLE_RIGHTS'),
			'PATH'  => Tools::defaultOptionPath()."rights.php",
        ),
    );
	
	// Allows creating custom tabs using the onTabsBuild module event
	$_arTabs = array();
    foreach (GetModuleEvents($module_id, "onTabsBuild", true) as $arEvent)	
        ExecuteModuleEventEx($arEvent, Array(&$_arTabs));

    $divId = count($arTabs);
    if (!empty($_arTabs))
	{
        foreach ($_arTabs as $tabName => $path)
            $arTabs[] = array("DIV" => "edit".(++$divId), "TAB" => $tabName, "ICON" => "support_settings", "TITLE" => $tabName, "PATH" => $path);
	}
	// --

	// this looks useless
    ShowNote(COption::GetOptionString('pickpoint', 'comment'), COption::GetOptionString('pickpoint', 'comment_type'));
		
    $tabControl = new CAdminTabControl('tabControl', $arTabs);
    Tools::getOptionsCss();
	
    if ($ex = $APPLICATION->GetException()) 
	{
		CAdminMessage::ShowOldStyleError($ex->GetString());    
	}	
	?>		
    <form method="POST" action="<?=$APPLICATION->GetCurPage()?>?mid=<?=htmlspecialcharsbx($mid)?>&lang=<?=LANG?>" name="ara">
        <?=bitrix_sessid_post();?>
		<?		
		$tabControl->Begin();
		
		foreach ($arTabs as $arTab)
		{
			$tabControl->BeginNextTab();
			include_once($_SERVER['DOCUMENT_ROOT'].$arTab["PATH"]);
		}        
        $tabControl->Buttons();
		?>
		
        <script language="JavaScript">
            function RestoreDefaults() {
                if (confirm('<?=addslashes(Loc::getMessage('MAIN_HINT_RESTORE_DEFAULTS_WARNING'))?>'))
                    window.location = "<?=$APPLICATION->GetCurPage()?>?RestoreDefaults=Y&lang=<?=LANG?>&mid=<?=urlencode($mid)?>&<?=bitrix_sessid_get()?>";
            }
        </script>
        <input type="submit" <?if ($CAT_RIGHT < 'W') { echo 'disabled'; }?> name="Update" value="<?=Loc::getMessage('MAIN_SAVE');?>" />
        <input type="hidden" name="Update" value="Y" />
        <input type="reset" name="reset" value="<?=Loc::getMessage('MAIN_RESET');?>" />
        <?$tabControl->End();?>
    </form>
<?endif;