2012-03-06 8 views
0

私はブロックを作成しました...ノードを表示しています(ノードをロードしています)。それはページ上のすべてのコンテンツをレンダリングするが、私はブロック内のみNODEのコンテンツを表示したい、私は、ヘッダー、メニュー、およびフッタがブロックに表示しないようページ全体を口にしたブロックにノードを表示するレンダリング

function my_module_block_info() { 
    $blocks = array(); 
    $blocks['my-block-id'] = array(
    'info' => t('Block Name'), 
); 
    return $blocks; 
} 

function my_module_block_view($delta='') { 
    $block = array(); 
    switch ($delta) { 
    case 'my-block-id': 
     $block['subject'] = t('Block Name'); 
     $block['content'] = my_module_contents(); 
     break; 
    } 
    return $block; 
} 

function my_module_contents() { 
    return 'iframe width="560" height="315" src="http://localhost/try/node/27" frameborder="0" allowfullscreen /iframe'; 
} 

としてはインラインフレームを使用しています。あなたのブロックがある場合、ノードが完全なノードが、これだけ作品としてレンダリングさんのコード下記のとおり、私はnode_viewを実装する場合

:以下

は画像、感謝

enter image description here

が更新されますブロックが別のパスにある場合、ノード上ではadmin/structure/nodequeueというと動作しません。だから私はこのような道でこの仕事をすることができますか? Plsは

function my_module_contents() { 
return drupal_render(node_view(node_load(27), 'full')); 
} 

FINAL解決しようSOLUTION *以下

が働いていたコードであるのに役立ちます。あなたのお手伝いをしていただきありがとうございます

function customvishal_block_info() { 
$blocks = array(); 
$blocks['my-block-id'] = array(
'info' => t('Block Name'), 
); 
return $blocks; 
} 

function customvishal_block_view($delta='') { 
$block = array(); 
switch ($delta) { 
    case 'my-block-id': 
    $block['subject'] = t('Block Name'); 
    $block['content'] = my_module_contents(); 
    break; 
    } 
    return $block; 
    } 

function my_module_contents() { 
$customvishalfull= drupal_render(node_view(node_load(155), 'full')); 

// print_r($customvishalfull); 
// Example of creating and calling "strike" theme function. 
$output .= '<h2>Custom "strike" theme function</h2>'; 
$output .= theme('customvishal_strike', array('string' =>$customvishalfull)); 


return $output; 

} 





function customvishal_theme() { 
return array(
'customvishal_strike' => array(
    'variables' => array('string' => array()), 
    'template' => 'property', 
), 
); 
} 

答えて

1

ご使用のiframeを使用しているため、経験したようにページ全体が読み込まれます。ノード情報のみを表示するには、drupal_render()node_load()、およびnode_view()を使用することを検討してください。

function my_module_contents() { 
    return drupal_render(node_view(node_load(27), 'full')); 
} 

ます。また、ノードのティーザーを示すために、「ティーザー」から「完全な」変更することができます:あなたは my_module_contents()に変更することができます。

+0

あなたのヒントは私の半分を得ました。私はあなたがそれを言及したように今それをロードすることができますが、私は私が私のノードcustomtype.tplで作成した私が望む特別なformatingを緩く私はこれを得ることができる方法はありますか? –

+0

私は自分の質問を更新しました。ノードページでは正常に動作しますが、admin/structure/nodequeueを使用すると動作しません。歓声 –

+0

あなたのコンテンツをテーマに[[hook_theme() '](http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_theme/7)の使用を検討してください。 (例のコメントを参照してください) – Laxman13

関連する問題