Drupal Front Page Markup

时间:2012-04-04 18:48:51

标签: drupal drupal-7 drupal-views drupal-theming drupal-hooks

我正在尝试更改drupal网站首页上显示的文章的标记,以便我可以将它们集成到幻灯片中。 (我不能使用幻灯片模块)。我有一个页面 - front.tpl.php文件,但我需要添加比我在这里可以做的更多的特定标记。

如何更改首页特定区域的标记?

我相信我需要编写一个预处理钩子,但我不确定如何只在头版上定位文章节点。这是我想要生成的标记:

<div class="slidewrap" data-autorotate="5000">
    <ul class="slidecontrols">
        <li><a href="#sliderName" class="next">Next</a></li>
        <li><a href="#sliderName" class="prev">Prev</a></li>
    </ul>
    <ul class="slider" id="sliderName">
        <li class="slide">  
            <h2 class="slidehed">First Slide</h2>
            <img src="1.jpg" />
            <p>In hac habitasse platea dictumst. Nam pulvinar, odio sed rhoncus suscipit, sem diam ultrices mauris, eu consequat purus metus eu velit. Proin metus odio, aliquam eget molestie nec, gravida ut sapien. Phasellus quis est sed turpis sollicitudin venenatis sed eu odio. Praesent eget neque eu eros interdum malesuada non vel leo. Sed fringilla porta ligula egestas tincidunt. Nullam risus magna, ornare vitae varius eget, scelerisque a libero.</p>
        </li>
        <li class="slide">  
            <h2 class="slidehed"><a href="#">Second Slide</a></h2>
            <img src="2.jpg" />
            <p>In hac habitasse platea dictumst. Nam pulvinar, odio sed rhoncus suscipit, sem diam ultrices mauris, eu consequat purus metus eu velit. Proin metus odio, aliquam eget molestie nec, gravida ut sapien.</p>
        </li>
        <li class="slide">  
            <h2 class="slidehed">Third Slide</h2>
            <img src="3.jpg" />
            <p>Phasellus quis est sed turpis sollicitudin venenatis sed eu odio. Praesent eget neque eu eros interdum malesuada non vel leo. Sed fringilla porta ligula egestas tincidunt. Nullam risus magna, ornare vitae varius eget.</p>
        </li>
        <li class="slide">  
            <h2 class="slidehed"><a href="#">Fourth Slide</a></h2>
            <p>In hac habitasse platea dictumst. Nam pulvinar, odio sed rhoncus suscipit, sem diam ultrices mauris, eu consequat purus metus eu velit. Proin metus odio, aliquam eget molestie nec, gravida ut sapien. Phasellus quis est sed turpis sollicitudin venenatis sed eu odio.</p>
        </li>
        <li class="slide">  
            <h2 class="slidehed">Fif' Slide</h2>
            <p>In hac habitasse platea dictumst. Nam pulvinar, odio sed rhoncus suscipit, sem diam ultrices mauris, eu consequat purus metus eu velit. Proin metus odio, aliquam eget molestie nec, gravida ut sapien.</p>
        </li>
    </ul>
</div>

我一直在尝试使用视图模块执行此操作。但是,当我创建一个新模板时,我收到以下错误消息:     警告:为include()中的foreach()提供的参数无效(/d7install/path_to_theme/views-view--featured--block.tpl.php的第12行)。

这是我通过主题信息复制的模板文件:

<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<div class="<?php print $classes_array[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach; ?>

2 个答案:

答案 0 :(得分:0)

有一个简单的解决方案。为文章内容类型添加新模板。节点article.tpl.php。然后添加一个if语句,如果文章在首页上,则显示标记A,否则显示标记B.赞:

if (drupal_is_front_page()) {
    <article class='front-page'>Article</article>
}
else
{
    <article class='other-page'>Article</article>
}

答案 1 :(得分:-1)

这可以通过视图模块实现:http://drupal.org/project/views

创建一个块显示,并仅在主页上显示。不需要自定义视图模板。

您可以将.slidercontrols UL添加到视图的标题中。此外,如果你需要外部div上的属性,只需通过jQuery添加它就像这样。

$('.slidewrap').attr('data-autorotate', 5000);