Salve.
Vengo da una programmazione PHP molto orientata agli oggetti e mi trovo in difficoltà a capire come lavora Drupal dato che noto sempre più spesso che ha una visione molto funzionale basata su parole chiave riservate.
Vi faccio un esempio.
PROGRAMMAZIONE OO
Ho un oggetto di tipo bicicletta che ha 2 proprietà: ruote, marce.
diciamo che lo scriverei così:
class bicicletta
{
private $_ruote = null;
private $_marce = null;
function __construct($ruote,$marce){
$this->_ruote = $ruote;
$this->_marce = $marce;
}
/**** METODI SET E GET DEI DUE PARAMETRI ****/
public function buildForm(){
/* CREO UN OGGETTO FORM TRAMITE UN FRAMEWORK (es. Zend o Pear) */
return $form;
}
}
Nell'idea quindi ho un oggetto bicicletta che ha un metodo per stampare una form mappata sulle sue proprietà. Nell'esempio stamperei probabilmente una form con due campi TEXT di tipo numerico ed un tasto submit.
Chi fa la new bicicletta, richiama il metodo buildForm() e stamperà il codice tramite una probabile $form->buildCode(); o $form->render(); ecc...
Qualcosa insomma che traduce un oggetto in HTML secondo l'oggetto stesso.
Ho quindi tentato di fare la stessa cosa in Drupal cercando quindi di usare i suoi hook quando obbligato ma tentando di oggettizzare dove possibile. Fino ai DAO ancora si può fare ma con la form per esempio ho scoperto un blocco che spero possiamo illuminare.
Diciamo che nel mio file giroitalia.module creo un blocco che dovrebbe stamparmi la form. Avrò quindi una roba tipo:
function png_creator_block_view($delta = '') {
switch($delta){
case 'hello_world':
$block['subject'] = t('My Hello World');
if(user_access('access content')){
//Use our custom function to retrieve data.
$result = funzione_crea_form();
$block['content'] = $result;
}
}
return $block;
}