怎么在Drupal 6中安排Block?

时间:2011-07-25 11:02:46

标签: php drupal drupal-6 drupal-blocks

我是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;
}

2 个答案:

答案 0 :(得分:0)

你有块的tpl文件吗?如果没有,则为block-NAME.tpl.php之类的块创建一个tpl文件,并根据您的主题定义HTML div标签。 请查看block.tpl.php的默认garland主题以供参考。我认为在模块中使用html代码不是一个好主意,你可以将这个html结构放在tpl文件中

答案 1 :(得分:0)

我不确定你的意思是“打破主题的所有界限”。如果这意味着当您使用该块时您的主题出错,那么答案就是您的HTML错误 - 例如它可能包含未关闭的HTML标记。

唯一的答案是修复HTML。您可能希望使用Drupal的HTML校正器来确定问题是否确实存在:

function get_tree_data() {
  /* fill $output */      
  return filter_filter('process', 3, -1, $output); /* Call htmlcorrector filter */
}

但我不建议保持这种方式,因为你的HTML中有一个错误只会是你应该修复的更大错误的症状。