Index: db_tag_processor.php =================================================================== --- db_tag_processor.php (revision 14653) +++ db_tag_processor.php (working copy) @@ -184,10 +184,10 @@ /** * Formats time interval using given text for hours and minutes * - * @param int $intervalmMinutes + * @param int $interval minutes * @param string $hour_text Text for hours * @param string $min_text Text for minutes - * @return unknown + * @return string */ function _formatInterval($interval, $hour_text = 'h', $min_text = 'min') { @@ -1362,7 +1362,9 @@ } } else { - if ( $no_prev_page_block = $this->SelectParam($params, 'no_prev_page_render_as,block_no_prev_page') ) { + $no_prev_page_block = $this->SelectParam($params, 'no_prev_page_render_as,block_no_prev_page'); + + if ( $no_prev_page_block ) { $block_params['name'] = $no_prev_page_block; $o .= $this->Application->ParseBlock($block_params); } @@ -1407,7 +1409,9 @@ } } else { - if ( $no_next_page_block = $this->SelectParam($params, 'no_next_page_render_as,block_no_next_page') ) { + $no_next_page_block = $this->SelectParam($params, 'no_next_page_render_as,block_no_next_page'); + + if ( $no_next_page_block ) { $block_params['name'] = $no_next_page_block; $o .= $this->Application->ParseBlock($block_params); } @@ -1549,10 +1553,9 @@ $sorting_prefix = getArrayValue($list_sortings, $this->Special) ? $this->Special : ''; $user_sorting_start = 0; - if ( $forced_sorting = getArrayValue($list_sortings, $sorting_prefix, 'ForcedSorting') ) { - $user_sorting_start = count($forced_sorting); - } - return $user_sorting_start; + $forced_sorting = getArrayValue($list_sortings, $sorting_prefix, 'ForcedSorting'); + + return $forced_sorting ? count($forced_sorting) : $user_sorting_start; } /** @@ -1734,10 +1737,12 @@ * * @param Array $params * @return bool + * @deprecated */ function FieldEquals($params) { $object =& $this->getObject($params); + /* @var $object kDBItem */ return $object->GetDBField( $this->SelectParam($params, 'name,field') ) == $params['value']; } @@ -2017,6 +2022,8 @@ function ConfigFormElement($params) { $object =& $this->getObject($params); + /* @var $object kDBItem */ + $field = $params['field']; $helper =& $this->Application->recallObject('InpCustomFieldsHelper'); @@ -2032,18 +2039,16 @@ case 'select': case 'multiselect': case 'radio': - $field_options = $object->GetFieldOptions($field, 'options'); - if ($object->GetDBField('DirectOptions')) { // used for custom fields - $field_options['options'] = $object->GetDBField('DirectOptions'); + $options = $object->GetDBField('DirectOptions'); } else { // used for configuration - $field_options['options'] = $helper->GetValuesHash( $object->GetDBField($params['value_list_field']) ); + $options = $helper->GetValuesHash( $object->GetDBField($params['value_list_field']) ); } - $object->SetFieldOptions($field, $field_options); + $object->SetFieldOption($field, 'options', $options); break; case 'text': @@ -2186,6 +2191,10 @@ $ret .= '['.$params['type'].']'; } + if (array_key_exists('as_preg', $params) && $params['as_preg']) { + $ret = preg_quote($ret, '/'); + } + return $ret; } @@ -2308,15 +2317,19 @@ /** * Returns object used in tag processor * + * @param Array $params * @access public - * @return kDBBase + * @return kDBItem|kDBList */ function &getObject($params = Array()) { $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); - if (isset($params['requery']) && $params['requery']) { - $this->Application->HandleEvent($q_event, $this->getPrefixSpecial().':LoadItem', $params); + /* @var $object kDBItem */ + + if ( isset($params['requery']) && $params['requery'] ) { + $this->Application->HandleEvent($q_event, $this->getPrefixSpecial() . ':LoadItem', $params); } + return $object; } @@ -2594,17 +2607,21 @@ function PrintSerializedFields($params) { - $object =& $this->getObject(); + $object =& $this->getObject($params); + /* @var $object kDBItem */ + $field = $this->SelectParam($params, 'field'); $data = unserialize($object->GetDBField($field)); $o = ''; $std_params['name'] = $params['render_as']; $std_params['field'] = $params['field']; $std_params['pass_params'] = true; + foreach ($data as $key => $row) { $block_params = array_merge($std_params, $row, array('key'=>$key)); $o .= $this->Application->ParseBlock($block_params); } + return $o; } /**