0

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

2 回答 2

0

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

于 2011-07-25T12:32:53.630 回答
0

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

唯一的答案是修复您的 HTML。您可能想使用 Drupal 的 HTML 校正器来查看这是否确实是问题所在:

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

但我不建议保持这种方式,因为您的 HTML 中存在错误可能只是您应该修复的更大错误的症状。

于 2011-07-25T14:47:25.563 回答