2012-03-12 4 views
1

特定のタクソノミからランダムに選択されたノード1つのためのティーザーを示すカスタムブロックが必要です。私はhttp://drupal.org/node/135344を見つけましたが、一連のノードタイトルしか表示しません。代わりにランダムなノードのティーザーを表示するにはどうしたらいいですか?Drupal 6のカスタムブロックにノードティーザーを表示する

私はi18nを含むDrupal 6を使用しています。 Viewsモジュールを使用したくない理由は、これを多くカスタマイズする予定があるからです。初心者を助けてくれてありがとう!

答えて

1

あなたが与えたリンクを使って、あるタクソノミー用語のランダムノードをブロックに表示するためのクイックモジュールを作りました。あなた自身のモジュールがある場合は、get_block_content()で与えられた部分だけが必要です。 /すべて/モジュール/ test_block

の詳細についてはtest_block.module

<?php 
/** 
* Implementation of hook_block() 
*/ 
function test_block_block($op='list', $delta=0, $edit=array()) { 
    switch ($op) { 
    case 'list': 
     $blocks[0]['info'] = t("Random Node Block"); 
     return $blocks; 

    case 'view': 
     $blocks['subject'] = t("Random Node Block"); 
     $blocks['content'] = get_block_content(); 

     return $blocks; 
    } 
} 

/** 
* Return the HTML teaser of a random node 
* for a given taxonomy term 
*/ 
function get_block_content() { 
    // Comma separated lists of terms tid to display nodes 
    $terms = '4,6'; 

    $sql = "SELECT n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ($terms) AND n.status = 1 ORDER BY RAND() LIMIT 1"; 
    $nid = db_result(db_query($sql)); 
    if ($nid) { 
    // Return the node teaser 
    return node_view(node_load($nid), TRUE); 
    } 
    return t('No nodes available for the term(s) given.'); 
} 

name = Test Block 
description = Display a random block for given taxonomy term(s) 
dependencies[] = node 
core = 6.x 

test_block.infoモジュールは* test_blockの*と呼ばれ、これらのファイルは、サイト内に配置されていますノード表示のオプションについては、node_view()

+0

ありがとうございました!魅力のように動作します。 – Sprachprofi

関連する問題