Contenuti

Che succede 'sotto il cofano' di Drupal per visualizzare una pagina web?

Stato documento: Alfa

Drupal tecnicamente usa il Front Controller Pattern [Edit: link in italiano?], cioè tutte le richieste passano per un punto centrale - index.php. E' anche uno degli file PHP più piccoli di Drupal (perchè delega il lavoro all'infrastruttura), ma segue tre operazioni importanti:

  1. Inizializzazione: Caricamento (bootstrapping) del minimo codice necessario per completare il processo
  2. Temizzare il contenuto: Conversione (theming) del contenuto salvato nel db in un documento parziale di HTML
  3. Temizzaze la pagina: Conversione (theming) del resto della pagina (HTML completo, blocchi e contenuto)

Vedi anche I componenti della pagina web.

Bootstrapping.
Il bootstrapping (inizializzazione) e' uno dei compiti più importanti nel sistema, dove Drupal tenta di caricare la minima quantità di codice possibile per completare l'operazione richiesta. Il codice di bootstrapping si trova in includes/bootstrap.inc. Questo processo segue delle fasi distinte:

  1. Configurazione: Carica codice contenente la configurazione specificata nel file settings.php.
  2. Caching immediato: Sostituendo (nella configurazione) il normale immagazzinamento delle pagine (caching) è possibile restituire pagine già costruite precedentemente, con un minimo costo di tempo di elaborazione, utilizzando strumenti al di fuori di Drupal. Se la pagina viene trovata, l'esecuzione di Drupal termina qui.
  3. Database: Carica codice per comunicare con il database, compreso la connessione ad esso.
  4. Accesso: Carica codice per controllare se l'utente (o meglio il host o suo IP) può accedere alla pagina.

Argomenti:

Aggiungere un bottone 'Salva e continua' nella pagina di edit per i contenuti

Stato documento: Alfa

In fondo alla pagina ci sono tre bottoni 'Salva' 'Antiprima' ed 'Elimina'. Quando clicciamo su 'Salva' viene si, salvato il contenuto modificato, ma poi ci troviamo sulla pagina di elenco contenuti, o la pagina del contenuto stesso. Quando clicciamo su 'Antiprima' vediamo (più o meno) come verrà visualizzato la pagina. Ma se abbiamo altri browser aperto (per controllare la visualizzazione) non viene viste le modifiche in antiprima - e se salviamo il contenuto dobbiamo poi cliccare il link per tornare al'editor.

La pagina di edit dei Prodotti in Ubercart però ha una quarta bottone: 'Salva e continua', il che salva il contenuto ma ripresenta la pagina di edit. E' se vogliamo aggiungere questa funzionalità per tutti i tipi di contenuto (o se non interessa installare Ubercart)? Ormai anche se non siamo maestri di PHP abbiamo imparato a creare un modulo custom per conto nostro, quindi possiamo aggiungere questo quarto bottone proprio in quel modulo.

Il hook per modificare i form ha già del codice dentro, e dobbiamo solo aggiungere in quel funzione altro codice per il bottone (nuovo codice in grassetto):

function custom_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    case 'system_modules': // form della lista dei moduli
      // Bloccare la disattivazione
      $form['disabled_modules']['#value']['custom'] = true;
      $form['status']['#disabled_modules'][] = 'custom';
      // Non permette throttling
      if (isset($form['throttle']) && isset($form['throttle']['#process'])) {
        $form['throttle']['#process'][] = 'custom_throttle_checkbox_disable';
      }
      return;
case 'page_node_form':
$form['buttons']['save_continue'] = array(
'#type' => 'submit',
'#value' => t('Save and continue'),
'#weight' => 7,

Argomenti:

Moduli aggiuntivi - dove iniziare?

Stato documento: Alfa

Una (volutamente) breve lista di moduli disponibile su http://drupal.org/modules importante per quasi tutti i siti Drupal.
Non è detto che serve proprio ogni modulo in questa lista. Dipende molto del scopo del sito che state costruendo.
Caldamente consigliato ai nuovi Drupalisti.

Amministrazione
Admin menu - irrispettivo della tema di amministrazione scelta, questo modulo aggunge un menù "drop-down" gerarchico con tutti i principale sezioni e sotto sezioni di amministrazione, e con qualche funzione proprio. Un grande risparmiatore di tempo.

Aiuto
Advanced Help - utilizzato da altri moduli, aggiunge documentazione e aiuto locale nel utilizzo di essi. Puoi utilizzarlo per produrre documentazione del proprio sito (tipo HTML statico), senza aggiungere codice PHP. Abbiamo bisogno di tutto l'aiuto che possiamo trovare.

Estensioni per i tipi di contenuto
Content Construction Kit - ormai il metodo "de facto" per aggiungere campi ai tipi di contenuto. Oltre ai campi forniti da CCK, ci sono tanti altri forniti da altri moduli. Vedi la sua categoria. Il coltello svizzero per i tipi di contenuto.

Gestione di immagini già caricati (uploaded)
ImageCache - semplice meccanismo per generare "al volo" immagine di diverse dimensioni dai file immagine originale. Risolve il problema di creare thumbnails, o immagini di dimensioni tutti uguali, e cosi via.

Salvataggio e ripristinazione del database

Argomenti:

Drupal rispetta i requisiti della legge italiana sull'accessibilità dei contenuti web?

[Informazioni tratte da un caso di utilizzo reale, descritto originariamente in questa discussione: http://www.drupalitalia.org/node/5441]

Legge Stanca e accessibilità dei siti scolastici.
Drupal si presta molto bene per la legge Stanca ed è un'ottima scelta per le scuole:

  1. Drupal fa uso di codice web xhtml 1.0 strict valido con instestazioni corrette, almeno per il tema predefinito Garland. Certo, poi dipende da come tu generi le pagine web: se usi FCKeditor e fai il copia incolla da word il requisito 1 va a farsi friggere (requisito 1)
  2. Drupal non fa uso di frame, almeno per il front office (requisito 2)
  3. Per i testi alternativi alle immagini devi stare attento tu a inserirli quando pubblichi le immagini all'interno dei nodi (requisito 3)
  4. Per non vincolare informazioni e funzionalità alla possibilità di percepire i colori devi inserire almeno la sottolineatura dei link nelle pagine con il testo. Qui devi modificare il CSS del tema grafico scelto (requisito 4)
  5. Per gli oggetti lampeggianti devi stare attento tu a che tipo di banner o GIF intendi inserire. Spesso soprattutto le insegnanti amano inserire effetti luna park di ogni genere (requisito 5)
  6. Per i contrasti tra foreground e lo sfondo devi stare attento a quali colori intendi usare (requisito 6)
  7. Per le mappe immagine devi stare attento a come le costruisci (requisito 7-8)
  8. Per le tabelle dati devi stare attento a come le costruisci ricordandoti di inserire il Summary. Se dovessi usare il modulo Views devi controllare che nelle tabelle generate con gli elenchi dei contenuti ci sia almeno il summary (requisito 9)
  9. Per le tabelle dati più complesse tutto dipende ancora una volta da come le costruisci tu (requisito 10)
  10. Drupal usa i fogli di stile CSS (requisito 11)

Argomenti:

Documentazione

Qui sotto sono disponibili alcuni documenti che ti possono aiutare ad orientarti nell'affascinante mondo di drupal.

Argomenti:

Pagine

Abbonamento a RSS - Contenuti