Вы здесь

Как в шаблоне вывести поле Body без обрезаемой части?

0

Создал в теме файлик node--page.tpl.php.
В ноде выводится несколько полей: field_pic (изображение), body...
Стоит CKEditor. В body после 1-2 абзацев проставляется break. Анонса в статьях нет (но проставлена галка для возможности его создания). Задача вывести изображение после брэйка (trimmed текста). Использую для этого код:

print render(field_view_field('node', $node, 'body', array(
  'label'=>'hidden', 
  'type' => 'text_summary_or_trimmed'
))); 
print render($content['field_pic']);

При выводе ноды дальше body генерируется полностью с текстом до брэйка.

print render($content);

Также нашёл пример вывода целого блока посередине body. Пытался адаптировать под вывод изображения, но ничего не происходит:

$added_string = render($content['field_pic']);
$content_array = explode("<p>", render($content));
$content_array_half_size = count($content_array) / 2;
array_splice($content_array, $content_array_half_size, 0, $added_string);
$final_content = implode("<p>", $content_array);
print $final_content;
Версия Drupal: 
7.x
Категория: 
Theming
Вопрос задан 12.01.2017 - 00:46

примерно так
$full_body = $node->body['und']['0']['value'];
$content_array = explode("Тег брейк", $full_body );
if(isset($content_array[1])) {
print $content_array[1];
}

Комментарий оставлен 12.01.2017 - 01:13

Спасибо! Вы мне очень помогли. Всё работает

Комментарий оставлен 12.01.2017 - 21:18

лучше чуть поправить:

if(isset($node->body[LANGUAGE_NONE]['0']['value'])) {
  $full_body = $node->body[LANGUAGE_NONE]['0']['value'];
  $content_array = explode("Тег брейк", $full_body );
  if(isset($content_array[1])) {
    print $content_array[1];
  }
}
Комментарий оставлен 5 дней назад

Ответы