afbeelding van duoweb

Drupal 7: form overriden met PHPTemplate

Ik vroeg me af hoe ik met PHPTemplate op de meest eenvoudige manier een Drupal 7 formulier kan overriden. Momenteel heb ik nog wat problemen daarmee.

Ik heb een pagina met een formulier en bijkomende informatie.

Wat ik heb:

foo.module
<?php
function foo_add_form($form, &$form_state, $foo) {

...

$form['#theme'] = 'foo_add';

return $form;
}

function foo_theme($existing, $type, $theme, $path) {
return array(
'foo_add' => array(
'template' => 'foo-add',
'render element' => 'form',
),
);
}
?>
foo-add.tpl.php

<?php
// First form
print drupal_render_children($form);
?>

    ...

...

...

Zowel het formulier als de bijkomende informatie worden afgebeeld. Echter wordt het 2e formulier (id="second-form") verwijderd. Ik kan het zien in de broncode, maar als ik het element inspecteer met chrome/firefox, is het verdwenen. Wel kan ik nog de ,

    en elementen zien.

    Heeft iemand dit toevallig reeds geprobeerd?

Drupalversie: 
7.x
Auteur: 
duoweb
Door Kristof V op 11 maart, 2011 - 01:12

Nog niet geprobeerd in d7. Maar het lijkt mij alleszins vrij bizar om een custom form-element te gaan includen in je drupal-code. Dat is echt not-done !

Waarom zou je zoiets willen doen ? Kan je niet bvb je eerste form uitbreiden, en in de module-logica kijken welk onderdeel van de form is ingevuld ? Of gewoon 2 forms renderen ?

afbeelding van duoweb
Door duoweb op 11 maart, 2011 - 08:49

Het is uiteraard niet de bedoeling dat te laten staan. Het tweede formulier zal later worden geïmplementeerd, maar tot het zo ver is staat het daar puur ter illustratie. Echter is de opmaak nu foutief, daar de form tag van rond mijn fieldset verdwenen is.

De vraag sloeg dus meer op het feit waarom het komt dat het tweede form element plots weg is.

Alvast bedankt voor de respons!

Door Kristof V op 12 maart, 2011 - 15:52

Geen idee waarom die weg is, maar ik denk dat het gewoon komt omdat het een slechte manier van werken is. Drupal zal die tag er waarschijnlijk uitfilteren ofzo. ik heb het nog nooit zo gedaan ...

afbeelding van Xano
Door Xano op 12 maart, 2011 - 16:49

hook_form_alter() implementeren in je theme.

My name is Bart - web & events
iDEAL, OmniKassa, en meer.

Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.

onomatopee