0

drupal サイトのフロント ページに表示される記事の周りのマークアップを変更して、記事をスライドショーに統合できるようにしようとしています。(スライドショー モジュールは使用できません)。page--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>

ビューモジュールを使用してこれを実行しようとしています。ただし、新しいテンプレートを作成すると、次のエラー メッセージが表示されます。 .

テーマ情報からコピーしたテンプレート ファイルは次のとおりです。

<?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; ?>
4

2 に答える 2

0

簡単な解決策があります。記事のコンテンツタイプ用の新しいテンプレートを追加します。node-article.tpl.php。次に、それにifステートメントを追加します。記事がフロントページにある場合は、マークアップAを表示し、そうでない場合はマークアップBを表示します。

if (drupal_is_front_page()) {
    <article class='front-page'>Article</article>
}
else
{
    <article class='other-page'>Article</article>
}
于 2012-04-06T02:58:12.683 に答える
-1

これはすべて、ビューモジュールによって実現できます:http: //drupal.org/project/views

ブロック表示を作成し、ホームページにのみ表示するようにします。カスタムビューテンプレートは必要ありません。

ビューのヘッダーに.slidercontrolsULを追加できます。また、外部divの属性が必要な場合は、jQueryを介して次のように追加するだけです。

$('.slidewrap').attr('data-autorotate', 5000);
于 2012-04-05T20:43:16.417 に答える