Reply to comment
CCK formatters - 3
Csináltam egy harmadik példát is ami date típusú mezőt jelenít meg táblázatban, de mivel az előző kettőnél már mindent leírtam amit akartam, különösebben nem részletezném. Annyit azért mindenképpen el kell mondjak, hogy a sminkelés alapját képező theme_date_display_combination() függvényből elég sok mindent kigyomláltam ezért csak olyan speciális date mezőknél használható tesztelhető ahol a Tól-Ig dátumok kitöltése kötelező.
<?php // $Id$ /** * @file * myftr3.module */ /** * Implementation of hook_theme(). */ function myftr3_theme() { ), ); } /** * Implementation of hook_field_formatter_info(). */ function myftr3_field_formatter_info() { 'multiple values' => CONTENT_HANDLE_MODULE ), ); } function theme_myftr3_formatter_date_table($element) { $node = $element['#node']; $field_name = $element['#field_name']; $type_name = $element['#type_name']; $field = content_fields($field_name); // Get the formatter settings, either the default settings for this node // type or the View settings stored in $node->date_info. $options = date_formatter_get_settings($field_name, $type_name, $context); $options = $node->date_info->formatter_settings; } $delta_from = $delta_to = FALSE; // If this is a full node or a pseudo node created by grouping // multiple values, see exactly which values are supposed to be visible. $node = date_prepare_node($node, $field, $type_name, $context, $options); // Adjust the $element values to match the changes. $element['#node'] = $node; } else { $max_count = $options['multiple']['multiple_number']; // If no results should be shown, empty the values and return. return ''; } $delta_from = $options['multiple']['multiple_from'] - 1; $delta_to = $delta_from + $max_count; } } $delta_to = $options['multiple']['multiple_to'] ; } } $diff_sum = 0; $gran = 4; // Did the current value get removed by formatter settings? } elseif ($delta_from !== FALSE AND $delta_from > $delta) { continue; } elseif ($delta_to !== FALSE AND $delta_to <= $delta) { break; } $element['#item'] = $element[$delta]['#item']; $dates = date_formatter_process($element); // Pull the timezone, if any, out of the formatted result and tack it // back on at the end, if it is in the current formatted date. $timezone = $dates['value']['formatted_timezone']; if ($timezone) { $timezone = ' ' . $timezone; } switch ($options['fromto']['fromto']) { case 'value': break; case 'value2': break; default: $diff_sum += $diff; break; } } ); if ($options['fromto']['fromto'] != 'both') { } else { '</thead><tfoot><tr><td colspan="3" align="right"><strong>%s</strong> %s</td></tr></tfoot><tbody>', ); } }
Cikksorozat részei:

