Drupal ошибка hook_theme

Я пытаюсь применить пользовательскую тему к одной странице. Эту страницу я настроил с помощью hook_menu. Я реализовал hook_theme, но когда я обновляю веб-сайт, я получаю следующую ошибку:

Неустранимая ошибка: неподдерживаемые типы операндов в /srv/bindings/baf029321aa248e5907866cc7de3a6d6/code/includes/form.inc в строке 1044

Ниже приведен мой код:

function mymodule_menu(){
    $items['mymodule'] = array(
        'title' => 'My-module',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('mymodule_admin_page'),
        'access arguments' => array('access content'),
    );
    return $items;
}

function mymodule_admin_page(){
    drupal_set_message('My-module admin page responding');

    return theme('mymodule_template');
}

function mymodule_theme($existing, $type, $theme, $path){
    drupal_set_message('My-module theme hook responding');

    return array(
        'mymodule_template' => array(
            #'render element' => 'elements', 
            'template' => 'mytemplate',
            'path'  =>  drupal_get_path('module', 'mymodule') . '/templates',
        )
    ); 
}

Насколько я могу судить, ошибка возникает, когда я добавляю косую черту к 'path' => drupal_get_path('module', 'mymodule') . '/templates',. Если я уберу косую черту, ошибка исчезнет, ​​но затем система попытается найти mytemplate.tpl.php, но не сможет, потому что просматривает mymodule/templatemytemplate.tpl.php.


person sisko    schedule 11.04.2014    source источник
comment
переместите drupal_get_path('module', 'mymodule') . '/templates' в другую переменную, а затем используйте ее в 'path' => $myVariable   -  person Karl Michael Linantud    schedule 14.08.2015


Ответы (1)


Попробуйте это... это меню всегда вызывает функцию формы, а не функцию темы

$items['mymodule'] = array(
        'title' => 'My-module',
        'page callback' => 'drupal_get_form',//this is use a get the form
        'page arguments' => array('contactform_form'),// this is use a name of form 
        'access arguments' => array('access content'),
 );

function contactform_form($form, &$form_state)
{
     //write a form attributes
}
person Mehul Jethloja    schedule 12.04.2014