Как в div поля ноды добавить класс - счётчик с количеством значений?
Например, если в поле Изображение загружена одна картинка, то отображать класс "1", и т.д.
Круто, но непонятно. Если таким образом, то мне нужны более детальные подсказки.
Вообще-то у меня установлен Field Formatter Class, но столкнулся с тем, что нет соответствующего токена. Если б найти или реализовать такой токен, то для меня это был бы лучший вариант.
Ну что ж. Денису, оказалось, сложно дать более подробную подсказку. Впрочем, и на этом спасибо!
Для потомков оставляю код решения.
На всякий случай, если Вы не знаете даже того, куда его добавить, то в конец template.php лежащего в Вашей теме. Заменив theme названием Вашей темы.
<?php function theme_field($variables) { $output = '';
// Render the label, if it's not hidden. if (!$variables['label_hidden']) { $output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ': </div>'; }
Комментарии
Круто, но непонятно. Если таким образом, то мне нужны более детальные подсказки.
Вообще-то у меня установлен Field Formatter Class, но столкнулся с тем, что нет соответствующего токена. Если б найти или реализовать такой токен, то для меня это был бы лучший вариант.
Если несложно, пожалуйста, подскажите, куда это здесь вставить?
<?php
// Render the label, if it's not hidden.
// Render the items.
// Render the top-level DIV.
function theme_field($variables) {
$output = '';
if (!$variables['label_hidden']) {
$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ': </div>';
}
$output .= '<div class="field-items"' . $variables['content_attributes'] . '>';
foreach ($variables['items'] as $delta => $item) {
$classes = 'field-item ' . ($delta % 2 ? 'odd' : 'even');
$output .= '<div class="' . $classes . '"' . $variables['item_attributes'][$delta] . '>' . drupal_render($item) . '</div>';
}
$output .= '</div>';
$output = '<div class="' . $variables['classes'] . '"' . $variables['attributes'] . '>' . $output . '</div>';
return
$output;}
?>
Чтобы получилось:
<div class="field-items">
<div class="field-item even">
<img width="" height="" alt="" src="xxx.jpg" typeof="foaf:Image">
</div>
</div>
</div>
Ну что ж. Денису, оказалось, сложно дать более подробную подсказку. Впрочем, и на этом спасибо!
Для потомков оставляю код решения.
На всякий случай, если Вы не знаете даже того, куда его добавить, то в конец template.php лежащего в Вашей теме. Заменив theme названием Вашей темы.
<?php
// Render the label, if it's not hidden.
// Render the items.
// Render the top-level DIV.
function theme_field($variables) {
$output = '';
if (!$variables['label_hidden']) {
$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ': </div>';
}
$output .= '<div class="field-items"' . $variables['content_attributes'] . '>';
foreach ($variables['items'] as $delta => $item) {
$classes = 'field-item ' . ($delta % 2 ? 'odd' : 'even');
$output .= '<div class="' . $classes . '"' . $variables['item_attributes'][$delta] . '>' . drupal_render($item) . '</div>';
}
$output .= '</div>';
$output = '<div class="' . $variables['classes'] . ' ' . count($variables['items']) . '"' . $variables['attributes'] . '>' . $output . '</div>';
return
$output;}
?>
А если для двух полей? Придётся всё это два раза дублировать или можно как-нибудь сразу два указать?