CCK Forms verändern z.B BIO Modul
am 21.02.2008 - 12:04 Uhr in
Hallo zusammen!
Welches ist den die beste Methode eine Form im Aufbau(Reihenfolge und Anzeige)zu verändern, bzw bestimmte Felder anzuzeigen oder auch nicht.
Ich habe das Modul Bio(baut auf CCK auf) als Profile Modul im Einsatz und möchte jetzt die Form verändern z.B bestimmte Felder nebeneinander oder Felder beim Registrieren anzeigen beim Bearbeiten aber nicht.
Bei normalen CCK Nodetypes geht es ja so dass ich beim anlegen in der template.php abfragen kann;
if (arg(0) == 'node' && arg(1) == 'add' && arg(2) == 'myNodeType'){
function phptemplate_node_form($form) {
// Vorschau Button löschen
unset($form['preview']);
return _phptemplate_callback('myNodeType_edit', array('user' => $user, 'form' => $form));
}
}
oder beim editieren, was nicht sehr schön ist da node_load aufgerufen wird um zu schauen was für ein node das ist.
if (arg(0) == 'node' && arg(2) == 'edit'){
$node = node_load(arg(1));
if ($node->type=='myNodeType') {
function phptemplate_node_form($form) {
return _phptemplate_callback('myNodeType_edit', array('user' => $user, 'form' => $form));
}
}
}
Mein Problem ist dass, das für das Bio Modul auch gar nicht funktioniert, da die Parameter add oder edit ja nicht übergeben werden.
Auch sowas in der template.php geht nicht. ,
function _mytheme_node_bio_form($form) {
if (isset($form['bio_node_form'])) {
unset($form['group_agb']);
}
return drupal_render($form);
}
Was mache ich falsch, bzw. wie geht man am besten vor wenn mann Formulare verändern will (wie gesagt nicht CSS sondern die Struktur).
Danke vielmals für jeden Tip.
- Anmelden oder Registrieren um Kommentare zu schreiben
hook_form_alter
am 22.02.2008 - 21:14 Uhr
Auf Modul-Basis funktioniert das per @hock_form_alter@: http://www.drupalcenter.de/search/node/form_alter
Evtl. hilft auch das als Einstieg: http://www.drupalcenter.de/handbuch/4698
--
bv - drupalcenter.de
Danke hat sehr geholfen,
am 24.02.2008 - 16:01 Uhr
muss halt nur richtig schauen wie der value der form_id ist dann klappt das auch. Statt _mytheme_node_bio_form _mytheme_bio_node_form zusammen mit _phptemplate_callback.
1000 Dank nochmals