我创建了一个Block ...并且正在显示一个节点(在其中加载一个节点)。
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';
}
由于我正在使用iframe,因此它会呈现页面上的所有内容,但我想在块中仅显示NODE内容,我不希望页眉,菜单和页脚出现在块中。
下面是图片,谢谢
更新:
如果我按照下面的代码实现node_view,那么节点会被渲染为一个完整的节点,但只有当你的块在一个节点上时,如果该块在另一个路径上,如果管理员/结构/ nodequeue然后它不起作用,这只能工作。那么我怎样才能在这样的道路上开展这项工作呢?请帮忙
function my_module_contents() {
return drupal_render(node_view(node_load(27), 'full'));
}
最终解决方案*
以下是有效的代码。谢谢拉克斯曼的帮助
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',
),
);
}
答案 0 :(得分:1)
由于您使用的是iframe,因此会按照您的体验加载整个页面。请考虑使用drupal_render()
,node_load()
和node_view()
来仅显示节点信息。您
可以将my_module_contents()
更改为:
function my_module_contents() {
return drupal_render(node_view(node_load(27), 'full'));
}
您也可以更改“完整”字样。到了预告片&#39;显示节点的预告片。