Варианты:
- подобрать formatter на org или написать свой;
- Отделить в поле single;
- На views выводить полями и в поле есть настройки количества для multiply поля.
я не вывожу полями.
я сделал на wiews создание ноды.
на рисунке в первом случае загружена 1 фото,
во втором случае 2,а если 3 будет или 4,то будет некрасиво.
с formatter не сталкивался.
/**
* Expose Field API formatter types.
*
* Formatters handle the display of field values. Formatter hooks are typically
* called by the Field Attach API field_attach_prepare_view() and
* field_attach_view() functions.
*
* @return
* An array describing the formatter types implemented by the module.
* The keys are formatter type names. To avoid name clashes, formatter type
* names should be prefixed with the name of the module that exposes them.
* The values are arrays describing the formatter type, with the following
* key/value pairs:
* - label: The human-readable name of the formatter type.
* - description: A short description for the formatter type.
* - field types: An array of field types the formatter supports.
* - settings: An array whose keys are the names of the settings available
* for the formatter type, and whose values are the default values for
* those settings.
*
* @see hook_field_formatter_info_alter()
* @see hook_field_formatter_view()
* @see hook_field_formatter_prepare_view()
*/ function hook_field_formatter_info(){ returnarray( 'text_default' =>array( 'label' =>t('Default'), 'field types' =>array('text', 'text_long', 'text_with_summary'), ), 'text_plain' =>array( 'label' =>t('Plain text'), 'field types' =>array('text', 'text_long', 'text_with_summary'), ),
// The text_trimmed formatter displays the trimmed version of the // full element of the field. It is intended to be used with text // and text_long fields. It also works with text_with_summary // fields though the text_summary_or_trimmed formatter makes more // sense for that field type. 'text_trimmed' =>array( 'label' =>t('Trimmed'), 'field types' =>array('text', 'text_long', 'text_with_summary'), ),
// The 'summary or trimmed' field formatter for text_with_summary // fields displays returns the summary element of the field or, if // the summary is empty, the trimmed version of the full element // of the field. 'text_summary_or_trimmed' =>array( 'label' =>t('Summary or trimmed'), 'field types' =>array('text_with_summary'), ), ); }
/**
* Build a renderable array for a field value.
*
* @param $entity_type
* The type of $entity.
* @param $entity
* The entity being displayed.
* @param $field
* The field structure.
* @param $instance
* The field instance.
* @param $langcode
* The language associated with $items.
* @param $items
* Array of values for this field.
* @param $display
* The display settings to use, as found in the 'display' entry of instance
* definitions. The array notably contains the following keys and values;
* - type: The name of the formatter to use.
* - settings: The array of formatter settings.
*
* @return
* A renderable array for the $items, as an array of child elements keyed
* by numeric indexes starting from 0.
*/ function hook_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display){ $element = array(); $settings = $display['settings'];
switch($display['type']){ case'sample_field_formatter_simple': // Common case: each value is displayed individually in a sub-element // keyed by delta. The field.tpl.php template specifies the markup // wrapping each value. foreach($itemsas$delta =>$item){ $element[$delta] = array('#markup' =>$settings['some_setting'] . $item['value']); } break;
case'sample_field_formatter_themeable': // More elaborate formatters can defer to a theme function for easier // customization. foreach($itemsas$delta =>$item){ $element[$delta] = array( '#theme' =>'mymodule_theme_sample_field_formatter_themeable', '#data' =>$item['value'], '#some_setting' =>$settings['some_setting'], ); } break;
case'sample_field_formatter_combined': // Some formatters might need to display all values within a single piece // of markup. $rows = array(); foreach($itemsas$delta =>$item){ $rows[] = array($delta, $item['value']); } $element[0] = array( '#theme' =>'table', '#header' =>array(t('Delta'), t('Value')), '#rows' =>$rows, ); break; }
Комментарии
Варианты:
- подобрать formatter на org или написать свой;
- Отделить в поле single;
- На views выводить полями и в поле есть настройки количества для multiply поля.
я не вывожу полями.
я сделал на wiews создание ноды.
на рисунке в первом случае загружена 1 фото,
во втором случае 2,а если 3 будет или 4,то будет некрасиво.
с formatter не сталкивался.
Это правильно
* Expose Field API formatter types.
*
* Formatters handle the display of field values. Formatter hooks are typically
* called by the Field Attach API field_attach_prepare_view() and
* field_attach_view() functions.
*
* @return
* An array describing the formatter types implemented by the module.
* The keys are formatter type names. To avoid name clashes, formatter type
* names should be prefixed with the name of the module that exposes them.
* The values are arrays describing the formatter type, with the following
* key/value pairs:
* - label: The human-readable name of the formatter type.
* - description: A short description for the formatter type.
* - field types: An array of field types the formatter supports.
* - settings: An array whose keys are the names of the settings available
* for the formatter type, and whose values are the default values for
* those settings.
*
* @see hook_field_formatter_info_alter()
* @see hook_field_formatter_view()
* @see hook_field_formatter_prepare_view()
*/
function hook_field_formatter_info() {
return array(
'text_default' => array(
'label' => t('Default'),
'field types' => array('text', 'text_long', 'text_with_summary'),
),
'text_plain' => array(
'label' => t('Plain text'),
'field types' => array('text', 'text_long', 'text_with_summary'),
),
// The text_trimmed formatter displays the trimmed version of the
// full element of the field. It is intended to be used with text
// and text_long fields. It also works with text_with_summary
// fields though the text_summary_or_trimmed formatter makes more
// sense for that field type.
'text_trimmed' => array(
'label' => t('Trimmed'),
'field types' => array('text', 'text_long', 'text_with_summary'),
),
// The 'summary or trimmed' field formatter for text_with_summary
// fields displays returns the summary element of the field or, if
// the summary is empty, the trimmed version of the full element
// of the field.
'text_summary_or_trimmed' => array(
'label' => t('Summary or trimmed'),
'field types' => array('text_with_summary'),
),
);
}
/**
* Build a renderable array for a field value.
*
* @param $entity_type
* The type of $entity.
* @param $entity
* The entity being displayed.
* @param $field
* The field structure.
* @param $instance
* The field instance.
* @param $langcode
* The language associated with $items.
* @param $items
* Array of values for this field.
* @param $display
* The display settings to use, as found in the 'display' entry of instance
* definitions. The array notably contains the following keys and values;
* - type: The name of the formatter to use.
* - settings: The array of formatter settings.
*
* @return
* A renderable array for the $items, as an array of child elements keyed
* by numeric indexes starting from 0.
*/
function hook_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings'];
switch ($display['type']) {
case 'sample_field_formatter_simple':
// Common case: each value is displayed individually in a sub-element
// keyed by delta. The field.tpl.php template specifies the markup
// wrapping each value.
foreach ($items as $delta => $item) {
$element[$delta] = array('#markup' => $settings['some_setting'] . $item['value']);
}
break;
case 'sample_field_formatter_themeable':
// More elaborate formatters can defer to a theme function for easier
// customization.
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#theme' => 'mymodule_theme_sample_field_formatter_themeable',
'#data' => $item['value'],
'#some_setting' => $settings['some_setting'],
);
}
break;
case 'sample_field_formatter_combined':
// Some formatters might need to display all values within a single piece
// of markup.
$rows = array();
foreach ($items as $delta => $item) {
$rows[] = array($delta, $item['value']);
}
$element[0] = array(
'#theme' => 'table',
'#header' => array(t('Delta'), t('Value')),
'#rows' => $rows,
);
break;
}
return $element;
}
К чему такие сложности? Картинки прикрепленные правильно? Во вьюс есть возможность группировки. Группировка и даст Вам счастье!
В скриптах я особо не варю.
Группировки это как?Можно конкретнее? =)спасибо .
Решил с помощью dysplay sute.