Вывод пользовательского контента Drupal 7 hook_theme

У меня есть пользовательский модуль, созданный в Drupal 7, и я хочу, чтобы он отображал HTML-контент. Вот как я это сделал.

Но не работает, что я делаю не так?

<?php

/**
 * Implements hook_block_info().
 */
function submenus_block_info() {
    $blocks = array();

    $blocks['info'] = array(
        'info' => t('The submenu zone')
    );

    return $blocks;
}

/**
 * Implements hook_block_view().
 *
 */
function submenus_block_view($delta = '') {
    $block = array();
    $users = "edf";
    $title = "sdfsd";
    $block['subject'] = t('Submenu');
    $block['content'] = theme('submenus_output', array('users' => $users, 'title' => $title));
        return $block;
}

/**
 * Implement hook_theme()
 */
function submenus_theme() {
    return array(
        'submenus_output' => array(
            'variables' => array('users' => NULL, 'title' => NULL),
        ),
    );
}

/**
 * Display output
 */
function theme_submenus_output($somearray) {
    $content = '<div>TEST</div>';

    return $content;
}

?>

person Ek Kosmos    schedule 02.03.2011    source источник


Ответы (1)


Проверил, ничего страшного в этом коде нет: новый блок доступен в списке блоков, и если его привязать к региону, то блок вызывается и отображается код из функции кастомной темы.


Итак, вы можете попробовать следующие вещи:

  • в Administration > Configuration > Development > Performance очистите кеши

  • в Administration > Structure > Blocks убедитесь, что блок назначен существующей области (например, «Контент»), и если это так, щелкните ссылку «Configure», чтобы увидеть, есть ли фильтр, предотвращающий его отображение.

person wildpeaks    schedule 02.03.2011
comment
Спасибо, проблема была в очистке кеша. Однако теперь отображается дважды, я проверю это. - person Ek Kosmos; 02.03.2011