Как настроить порядок отображения
Структура 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 ----!>
.
Как я должен это сделать?
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 ----!>