Search code examples
phpdrupaldrupal-7form-api

Drupal 7 Form API - Custom Select Theme


I have been searching all day but unable to find any answers - I am sure I am doing it right as worked fine in Drupal 6 and should work fine in Drupal 7.

I want to give a custom theme function to my select element in my form

$form['field_name'] = array(
'#type' => 'select',
'#title' => t('Title Here'),
'#theme' => 'custom_select',
'#options' => $values,
);

I have the theme hook right to declare the new custom theme function but my problem is when using that custom theme function as above I get an empty $variables array which just reads

Array([element] => null)

can anyone see what I may be doing wrong? cleared cache, done everything I can think of - any ideas why Drupal is not passing the element data to the theme function? thanks


Solution

  • well finally figured this one out incase any one else has the problem - make sure you set render element in hook_theme and not variables!

    before

    function hook_theme(){

    return array(
    'select_currency' => array(
    'variables' => array('element' => null),
    'file' => 'module_name.theme.inc',
    ));

    }

    after

    function hook_theme(){

    return array(
    'select_currency' => array(
    'render element' => 'element',
    'file' => 'module_name.theme.inc',
    ));

    }

    I was pulling my hair out until I remembered the render element!