Как настроить порядок отображения


Структура HTML выглядит следующим образом:

   <div id="contentp">
     <p>.........</p>
     <p>.........</p>
     <div id="rate-node-18-1-1" class="rate-widget rate-widget-1 clear-block rate-processed">...</div>
   </div><!--contentp  end ----!>

Часть между <div id="contentp"> и </div> <!--contentp end ----!> генерируется в node.tpl.php следующим фрагментом:

  <div id="contentp">
      <?php print $content; ?>
  </div>

Часть <div id="rate-node-18-1-1"> генерируется модулем скорости.

Я хочу поместить часть <div id="rate-node-18-1-1">...</div> за пределы </div> <!--contentp end ----!>.

Как я должен это сделать?

Author: SoftArtisans, 2011-03-18

1 answers

Поскольку Fivestar фактически добавляет свою разметку в нижнюю часть содержимого узла (вместо использования ссылок, например), это немного сложнее.

В идеале вы должны создать отдельный шаблон узла для вашего типа контента, т.Е.: node-story.tpl.php или что-то в этом роде (зависит от вашей темы).

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

<?php
$my_node_content = $node->content['body']['#value'];
$my_fivestar_widget = $node->content['fivestar_widget']['#value'];
?>

Затем вместо <?php print $content; ?> сделайте: <?php print $my_node_content; ?>

Таким образом, только фактическое содержимое тела вашего узла будет распечатан.

Затем, где бы вы ни захотели, просто распечатайте код виджета fivestar!

Вот как это будет выглядеть при использовании вашей разметки:

<div id="contentp">
  <?php print $my_node_content; ?>
</div><!--contentp  end ----!>

<div id="my_fivestar_container">
  <?php print $my_fivestar_widget; ?>
</div><!--my_fivestar_container end ----!>
 2
Author: Alex Weber, 2011-03-18 13:53:18