drupal 7 theme user_login_block

scoundrel képe

sziasztok!

a user_login_block -ot próbálom átalakítani, kevés sikerrel.
Boobaa fordítása és a api.drupal.org hook_theme -re vonatkozó leírása alapján kezdtem neki.

a submit gombot át is alakítja rendesen úgy ahogy szeretném, viszont
eltűnik az egész eredeti form.

template.php -ben a kód:

function mytheme_theme() {
  return array(
    'user_login_block' => array(
      'variables' => array('form' => NULL),
    ),
  );
}
function mytheme_user_login_block($variables) {
  $form = $variables['form'];
  $form['actions']['submit']['#type'] = 'image_button';
  $form['actions']['submit']['#src'] = drupal_get_path('theme', 'mytheme') . '/images/icon.png';
  $output = 'text1';
  $output .= drupal_render($form['name']);
  $output .= 'text2';
  $output .= drupal_render_children($form);
  $output .= 'text3';
  return $output;
}

Boobaa írja, h a hook_theme -ben a d6-al ellenben 'render element' -et kell használni, nálam az mindig hibával elszállt...
's még azt is írja h minden elemet végig kell hajtani a drupal_render() fv-en, nekem a drupal_render($form['name']) sem csinál semmit.

örülnék ha érteném mit miért, előre is köszi a segítséget!

üdv.sco

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Fórum: 
segi képe

Többet segítene ha megadnád a hibaüzenetet is!

0
0

Drupal developer at Cheppers

scoundrel képe

Notice: Undefined index: form mytheme_user_login_block()

amit a

  $form = $variables['form'];

sorra ír, plusz két

Warning: Illegal offset type theme()

0
0
segi képe

Igazából a hibaüzenet arra vonatkozik, hogy mikor próbáljuk a $variables tömböl kiszedni a form indexen lévő értéket az nem létezik!
Ha kiíratjuk akkor tényleg NULL értéket ad vissza.
Igazából a megoldás az hogy a
'variables' => array('form') helyett 'render element' => 'form' kell használni.
Ez vissza fogja adni a form szerkezetét!

1
0

Drupal developer at Cheppers

scoundrel képe

most viszont eltűnt az image_button -om.

persze ha nyomok egy hook_form_alter -t a hook_theme
előtt akkor minden jó, de ezt egy fv-ben akartam.

mit szólsz?

0
0
segi képe

végiggondolva nem a legszebb megoldás a témázó függvényben belenyúlni a form szerkezetébe, erre a célra a megfelelő a hook_form_alter. A témázó függvényben ott maximum azt szabályozzunk, hogy ebből mit jelenítsen meg a .tpl-ben.

0
0

Drupal developer at Cheppers

scoundrel képe

nos a cél az volt, h a linkek (új felhasználó, új jelszó) a submit gomb alatt legyenek. a segítségeddel sikerült is.

maximális köszönet érte!

0
0