true, 'group' => false, 'label' => Loc::getMessage('BX_COND_CATALOG_SETTINGS_CONTROLGROUP_LABEL'), 'showIn' => static::GetShowIn($arParams['SHOW_IN_GROUPS']), 'children' => array() ); foreach ($controlList as &$control) { $jsControl = array( 'controlId' => $control['ID'], 'group' => ($control['GROUP'] == 'Y'), 'label' => $control['LABEL'], 'showIn' => static::GetShowIn($arParams['SHOW_IN_GROUPS']), 'control' => array() ); if ($control['ID'] == 'CondCatalogRenewal') { $jsControl['control'] = array( array( 'id' => 'prefix', 'type' => 'prefix', 'text' => $control['PREFIX'], ), static::GetValueAtom($control['JS_VALUE']) ); } else { $jsControl['control'] = array( array( 'id' => 'prefix', 'type' => 'prefix', 'text' => $control['PREFIX'], ), static::GetLogicAtom($control['LOGIC']), static::GetValueAtom($control['JS_VALUE']) ); } $result['children'][] = $jsControl; } unset($jsControl, $control, $controlList); return $result; } public static function GetConditionShow($arParams) { if (!isset($arParams['ID'])) return false; if ($arParams['ID'] == 'CondCatalogRenewal') { $control = static::GetControls($arParams['ID']); if ($control === false) return false; return array( 'id' => $arParams['COND_NUM'], 'controlId' => $control['ID'], 'values' => array('value' => 'Y') ); } else { return parent::GetConditionShow($arParams); } } public static function Parse($arOneCondition) { if (!isset($arOneCondition['controlId'])) return false; if ($arOneCondition['controlId'] == 'CondCatalogRenewal') { $control = static::GetControls($arOneCondition['controlId']); if ($control === false) return false; return array('value' => 'Y'); } else { return parent::Parse($arOneCondition); } } public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = false) { $strResult = ''; if (is_string($arControl)) { $arControl = static::GetControls($arControl); } $boolError = !is_array($arControl); if (!$boolError && $arOneCondition['value'] === 'Y') { $strField = $arParams['ORDER']."['RECURRING_ID']"; $strResult = 'isset('.$strField.') && '.$strField; } return (!$boolError ? $strResult : false); } public static function GetShowIn($arControls) { return array(CSaleCondCtrlGroup::GetControlID()); } public static function GetControlID() { return array( 'CondCatalogRenewal' ); } /** * @param bool|string $strControlID * @return bool|array */ public static function GetControls($strControlID = false) { $controlList = array( 'CondCatalogRenewal' => array( 'ID' => 'CondCatalogRenewal', 'PARENT' => false, 'EXECUTE_MODULE' => 'catalog', 'EXIST_HANDLER' => 'Y', 'MODULE_ID' => 'catalog', 'MODULE_ENTITY' => 'catalog', 'ENTITY' => 'DISCOUNT', 'FIELD' => 'RENEWAL', 'FIELD_TABLE' => 'RENEWAL', 'FIELD_TYPE' => 'char', 'MULTIPLE' => 'N', 'GROUP' => 'N', 'LABEL' => Loc::getMessage('BX_COND_CATALOG_RENEWAL_LABEL'), 'PREFIX' => Loc::getMessage('BX_COND_CATALOG_RENEWAL_PREFIX'), 'JS_VALUE' => array( 'type' => 'hidden', 'value' => 'Y', ), ) ); if ($strControlID === false) { return $controlList; } elseif (isset($controlList[$strControlID])) { return $controlList[$strControlID]; } else { return false; } } }