Как устроить блоки в Drupal 6?
Я новичок в 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 ответа
Я не уверен, что вы подразумеваете под "нарушает все границы темы". Если это означает, что ваша тема работает неправильно, когда вы используете этот блок, то ответ прост: ваш HTML неверен - например, он может содержать закрытые теги HTML.
Единственный ответ на это - исправить ваш HTML. Вы можете использовать HTML-корректор Drupal, чтобы увидеть, действительно ли это проблема:
function get_tree_data() {
/* fill $output */
return filter_filter('process', 3, -1, $output); /* Call htmlcorrector filter */
}
Но я бы не советовал сохранять это таким образом, поскольку наличие ошибки в вашем HTML может быть просто симптомом более серьезной ошибки, которую вы должны исправить.
У вас есть файл TPL для блока? Если нет, то создайте файл tpl для такого блока, как block-NAME.tpl.php, и определите теги HTML div в соответствии с вашей темой. Просто ознакомьтесь с темой гирлянды по умолчанию для block.tpl.php для справки. И я думаю, что не очень хорошая идея иметь HTML-код в модуле, вы можете поместить эту HTML-структуру в файл TPL.