Вставка кода внутрь представления

Порой бывает необходимость вставить какой-либо код внутрь представления. Это может быть код от РСЯ, Адсенса или же просто нужно внутри отрендерить ноду, блок, вьюс и так далее. Самый элементарный способ сделать подобное, это вывести нужный код внутри шаблона представления.

Итак допустим, что вьюс выводится в неформатированном стиле и имя вьюса news. Соответственно шаблон для такого вывода представления будет views-view-unformatted--news.tpl.php . Создаем файл views-view-unformatted--news.tpl.php в папке с установленной темой и туда копируем содержимое файла views-view-unformatted.tpl.php, который находится внутри модуля views в папке theme.

Далее нужно файл минимально подправить для вставки кода внутрь представления. Если нужно вывести код после вывода к примеру 2-й строки представления, то код шаблона будет следующий:


<?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
  <?php if ($id == 2): ?>
    <!-- Здесь выводим необходимое -->
  <?php endif; ?>
  <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"';  } ?>>
    <?php print $row; ?>
  </div>
<?php endforeach; ?>

Если же код нужно вставить посередине представления, то шаблон примет следующий вид:


<?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
  <?php if ($id == floor(count($rows)/2)): ?>
    <!-- Здесь выводим необходимое  -->
  <?php endif; ?>
  <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"';  } ?>>
    <?php print $row; ?>
  </div>
<?php endforeach; ?>