--- gallery_field.module 2008-09-29 19:16:02.000000000 +0400 +++ patch/gallery_field.module 2008-09-30 23:36:28.000000000 +0400 @@ -110,6 +110,20 @@ '#default_value' => isset($field['thumbnail_show']) ? $field['thumbnail_show'] : array('title', 'heading'), '#options' => $param_map, '#description' => t('Choose the item metadata you would like to display.'), + ); + $form['thumbnail']['thumbnail_n'] = array( + '#type' => 'textfield', + '#title' => t('Default number of images'), + '#default_value' => isset($field['thumbnail_n']) ? $field['thumbnail_n'] : '1', + '#required' => FALSE, + '#description' => t('How many images you want the block to show.') + ); + $form['thumbnail']['thumbnail_link_target'] = array( + '#type' => 'textfield', + '#title' => t('Thumbnail link target'), + '#default_value' => isset($field['thumbnail_link_target']) ? $field['thumbnail_link_target'] : '', + '#required' => FALSE, + '#description' => t('Enter a link target (e.g. "_blank", "_new").') ); // Inline settings $form['inline'] = array( @@ -146,11 +160,14 @@ } if (!is_numeric($field['inline_size']) || $field['inline_size'] < 1) { form_set_error('inline_size', t('Image size must be a number greater zero.')); + } + if (!is_numeric($field['thumbnail_n']) || $field['thumbnail_n'] < 1) { + form_set_error('thumbnail_n', t('Number of images must be a number greater zero.')); } break; case 'save': return array('entity_types', 'thumbnail_maxcols', 'thumbnail_size_method', 'thumbnail_size', - 'thumbnail_show', 'inline_size_method', 'inline_size'); + 'thumbnail_show', 'thumbnail_n', 'thumbnail_link_target', 'inline_size_method', 'inline_size'); case 'database columns': $columns['g2id'] = array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'sortable' => TRUE); return $columns; @@ -225,10 +242,19 @@ function theme_gallery_field_formatter_default($element) { if (!gallery_field_content_is_empty($element['#item'])) { $field = content_fields($element['#field_name'], $element['#type_name']); - $params['itemId'] = $element['#item']['g2id']; - $params['blocks'] = 'specificItem'; + $params['itemId'] = $element['#item']['g2id']; $field['thumbnail_show'] = array_filter($field['thumbnail_show']); - + + if ($field['thumbnail_n'] > 1) { + $blocks = array_fill(0, $field['thumbnail_n'], 'recentImage'); + $params['blocks'] = implode('|', $blocks); + } + else { + $params['blocks'] = 'specificItem'; + } + if (isset($field['thumbnail_link_target'])) { + $params['linkTarget'] = $field['thumbnail_link_target']; + } $params['show'] = empty($field['thumbnail_show']) ? 'none' : implode('|', $field['thumbnail_show']); if ($field['thumbnail_size_method'] == 'maxsize') { $params['maxSize'] = $field['thumbnail_size'];