如何在Drupal 6中安排块?
-
25-10-2019 - |
题
我是Drupal的新手,我刚刚创建了一个模块并尝试显示。但是块HTML代码打破了主题的所有边界。我们如何控制块中的HTML?
例如,我的块代码是
function node_example_block($op='list',$delta=0){
switch($op){
case "list":
$block[0]['info'] = t('THIS IS EXAMPLE NODE EXAMPLE ');
return $block;
case "view":
$block['subject'] = "THIS MY FIRST SAMPLE BLOCK";
$block['content'] = get_tree_data();
return $block;
}
}
function get_tree_data(){
/*
$output = HTML CODES HERE .....
*/
}
return $output;
}
解决方案
我不确定您的意思是“打破主题的所有界限”。如果这意味着当您使用该块时您的主题出错,那么答案就是您的HTML是错误的 - 例如,它可能包含未锁定的HTML标签。
唯一的答案是修复您的HTML。您可能需要使用Drupal的HTML校正器来查看这是否确实是问题:
function get_tree_data() {
/* fill $output */
return filter_filter('process', 3, -1, $output); /* Call htmlcorrector filter */
}
但是我不会推荐这种方式,因为您的HTML中有一个错误可能只是您应该解决的较大错误的症状。
其他提示
您有一个tpl文件吗?如果没有,请为block-name.tpl.php等块创建一个tpl文件,并根据您的主题定义html div标签。只需查看block.tpl.php的默认花环主题以获取参考即可。我认为将HTML代码放在模块中不是一个好主意,您可以将此HTML结构放在tpl文件中
不隶属于 StackOverflow