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 に答える