Egy erdekes, de annal idegesitobb problemaval allok szemben. A helyzet: anonymus latogato az oldalon latja a belepes blokkot es a regisztracio blokkot. A belepes blokkban mukodik a hook_form_alter(), mig a regisztracios urlapnal nem.
Nem tudtam erre megoldast talalni, viszont jott egy olyan keres, hogy a Belepes blokk mindig lathato legyen - a regisztracios oldalon is. Ezt ugy valositottam meg, hogy letrehoztam egy blokkot, majd a hozza tartozo template fajlt is eletre keltettem, ahol a blokk tartalmanak kiiratasa helyett a drupal_get_form('user_login_block')-ot hasznaltam. A blokkot csak anonymus latogatok latjak, de oldalkorlatozasok nelkul. Fooldalon meg is jelenik szepen, a hook_form_alter() kiszedi a nem kivant dolgokat, azonban a regisztracios oldalon a rendszerbeli urlap jelenik meg. Tehat mintha a hook_form_alter() implementaciojat a template.php fajlban figyelmenkivul hagyna.
Egyszeruen elkepzelesem sincs, hogy mi okozhatja ezt, remelem itt talalok valakit, aki tud segiteni!
Koszonom elore is.
function user_form_alter(&$form, $form_state, $form_id) { if ( $form_id == 'user_login_block' ) { $form['name'] = array('#type' => 'textfield', '#title' => '', '#maxlength' => USERNAME_MAX_LENGTH, '#size' => 15, '#required' => TRUE, ); $form['pass'] = array('#type' => 'password', '#title' => '', '#maxlength' => 60, '#size' => 15, '#required' => TRUE, ); $form['submit'] = array('#type' => 'image_button', '#src' => path_to_theme() .'/images/s.gif', '#title' => t('ok'), '#value' => t('ok'), ); $items = array(); $items[] = t('Ha elfelejtette jelszavát, <br />!click.', array( '!click' => l(t('ide kattintson'), 'user/password', array( 'html' => TRUE ))) ); $form['links'] = array('#value' => theme('item_list', $items)); } if ( $form_id == 'user_register' ) { $form['submit'] = array('#type' => 'image_button', '#src' => path_to_theme() .'/images/s.gif', '#title' => t('Regisztrálok'), '#value' => t('Regisztrálok'), ); } }
A user_form_alter()-t a
A user_form_alter()-t a template.php-ba tetted ?
Én eddig úgy tudtam, hogy a hook_form_alter()-t a modulokban lehet használni, ahol a nevének így kell kinéznie: SAJÁTMODULNÉV_form_alter() !
Mivel a hook_form_alter()-ben benne van minden ami általában a user_login_block()-ban definiálva van, és ezt a SAJÁTMODULNÉV_form_alter() mind megkapja a $form változóban, ezért csak azt kell megváltoztatni, amit nem kell neked oda, vagy amit pluszban hozzá akarsz adni.
...mit tudok: http://web.termuves.hu
template.php
Valoban. Ezt nem tudtam, hogy a hook_form_alter()-t csak igy lehet hasznalni. Viszont akkor nekem egy olyan megoldas kellene, ahol a template.php-bol hasznalhatok.
A masodik eszrevetellel is maximalisan egyetertek, ez is elkerulte a figyelmemet.
Koszonom!
Hogy-hogy nem találod
Amikor volt itt a fórumon nemrég és az http://api.drupal.org-on és elég jól le van írva. :D
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu