Changeset View
Changeset View
Standalone View
Standalone View
branches/5.3.x/core/kernel/db/db_tag_processor.php
Show First 20 Lines • Show All 1201 Lines • ▼ Show 20 Line(s) | |||||
array_shift($options); | array_shift($options); | ||||
} | } | ||||
$selected_option_keys = $this->getSelectedOptionKeys($value); | $selected_option_keys = $this->getSelectedOptionKeys($value); | ||||
if ( isset($params['selected_only']) && $params['selected_only'] ) { | if ( isset($params['selected_only']) && $params['selected_only'] ) { | ||||
$options = $this->getSelectedOptions($options, $selected_option_keys); | $options = $this->getSelectedOptions($options, $selected_option_keys); | ||||
} | } | ||||
elseif ( isset($params['unselected_only']) && $params['unselected_only'] ) { | |||||
$options = $this->getUnselectedOptions($options, $selected_option_keys); | |||||
} | |||||
$column_changed = false; | $column_changed = false; | ||||
$option_number = $column_number = 1; | $option_number = $column_number = 1; | ||||
$option_count = count($options); | $option_count = count($options); | ||||
$column_count = isset($params['columns']) ? $params['columns'] : 1; | $column_count = isset($params['columns']) ? $params['columns'] : 1; | ||||
$options_per_column = ceil($option_count / $column_count); | $options_per_column = ceil($option_count / $column_count); | ||||
$block_params['option_count'] = $option_count; | $block_params['option_count'] = $option_count; | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | |||||
$ret[$option_key] = $option_title; | $ret[$option_key] = $option_title; | ||||
} | } | ||||
} | } | ||||
return $ret; | return $ret; | ||||
} | } | ||||
/** | /** | ||||
* Returns only options, that have not been selected. | |||||
* | |||||
* @param array $options All options. | |||||
* @param array $selected_option_keys Selected options. | |||||
* | |||||
* @return array | |||||
*/ | |||||
protected function getUnselectedOptions(array $options, array $selected_option_keys) | |||||
{ | |||||
$ret = array(); | |||||
foreach ( $options as $option_key => $option_title ) { | |||||
if ( !$this->isOptionSelected($option_key, $selected_option_keys) ) { | |||||
$ret[$option_key] = $option_title; | |||||
} | |||||
} | |||||
return $ret; | |||||
} | |||||
/** | |||||
* Determines if given option is among selected ones. | * Determines if given option is among selected ones. | ||||
* | * | ||||
* @param mixed $option_key Option key. | * @param mixed $option_key Option key. | ||||
* @param array $selected_option_keys Selected options. | * @param array $selected_option_keys Selected options. | ||||
* | * | ||||
* @return boolean | * @return boolean | ||||
*/ | */ | ||||
protected function isOptionSelected($option_key, array $selected_option_keys) | protected function isOptionSelected($option_key, array $selected_option_keys) | ||||
▲ Show 20 Lines • Show All 862 Lines • ▼ Show 20 Line(s) | |||||
} | } | ||||
$formatter_class = $object->GetFieldOption($field, 'formatter'); | $formatter_class = $object->GetFieldOption($field, 'formatter'); | ||||
switch ($element_type) { | switch ($element_type) { | ||||
case 'select': | case 'select': | ||||
case 'multiselect': | case 'multiselect': | ||||
case 'radio': | case 'radio': | ||||
case 'picker': | |||||
if ($object->GetDBField('DirectOptions')) { | if ($object->GetDBField('DirectOptions')) { | ||||
// used for custom fields | // used for custom fields | ||||
$options = $object->GetDBField('DirectOptions'); | $options = $object->GetDBField('DirectOptions'); | ||||
} | } | ||||
else { | else { | ||||
// used for configuration | // used for configuration | ||||
$options = $helper->GetValuesHash( $object->GetDBField($params['value_list_field']) ); | $options = $helper->GetValuesHash( $object->GetDBField($params['value_list_field']) ); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1020 Lines • Show Last 20 Lines |