On-line documentation
  • English
  • Arabic
  • French
  • German
  • Italian
  • Portuguese-br
  • Russian
  • Simplified chinese
  • Spanish
Scrittura del codice PHP

Quelle che seguono sono alcune convenzioni usate nella scrittura del codice PHP in Docebo.

OUTPUT BUFFERIZZATO

Per mostrare il codice HTML della pagina si devono evitare le funzioni print ed echo del PHP ed usare invece le funzioni della classe PageWriter. L'istanza della classe PageWriter è spesso passata alle funzioni attraverso un parametro indicato con $out, ma è comunque ricavibile con il codice seguente: 

  $out=& $GLOBALS['page'];

Le funzioni della classe PageWriter permettono di memorizzare il codice HTML in più buffer, separati logicamente ed indicati come "zone". In ognuna di queste zone è possibile aggiungere del codice HTML sia all'inizio che alla fine. Le principali funzioni sono:

  function getWorkingZone()
    restituisce la zona attualmente utilizzata

  function setWorkingZone($zone)
    definisce la zona attualmente utilizzata (deve essere una di quelle previste)
    
  function add($content, $zone = null)   
    aggiunge il testo al contenuto della zona indicata, o quella attualmente utilizzata se non è stata specificata.   

Le zone predefinite sono le seguenti:

    'page_head'
      il testo è inserito all'interno dell'header della pagina HTML (all'interno del tag HEAD)

    'blind_navigation'     
      il testo è inserito nella parte dedicata ai link non visibili, presenti per rispettare i requisiti di accessibilità del sito

    'header'
      il testo è inserito nella parte dell'intestazione (all'interno del tag BODY)

    'menu_over'
      il testo è inserito nel menu orizzontale principale

    'menu'
      il testo è inserito nella parte dei menu della pagina

    'content'
      il testo è inserito nella parte dei contenuti della pagina

    'footer'
      il testo è inserito nella parte del piè di pagina

    'debug'
      il testo è inserito nella parte dedicata al debug
 
Per approfondire la conoscenza dell'output bufferizato in Docebo, si faccia riferimento al file:
  doceboCore/lib/lib.pagewriter.php

 

USO DEI FORM

Nello scrivere i form si deve evitare di utilizzare direttamente i tag HTML. E' presente una classe Form che semplifica la gestione dei moduli e garantisce che vengano scritti nel rispetto dello standard XHTML. La classe Form ha come funzioni principali:

function openForm( $id , $action, $css_form = false, $method = false, $enctype = '', $other = '' )
apre il tag FORM con i relativi attributi

function closeForm()
chiude il tag FORM

function openElementSpace( $css_class = 'form_elem' )
inizia lo spazio dedicato al contenuto del form

function closeElementSpace( )
termina lo spazio dedicato al contenuto del form

function openButtonSpace($css_div = false)
inizia lo spazio dedicato ai pulsanti

function closeButtonSpace( )
termina lo spazio dedicato ai pulsanti

function getTextBox( $text , $css_line = 'form_line_text', $inline = false )
crea un box di testo

function getLineBox( $span_text, $text , $css_line = 'form_line_l', $css_f_effect = 'label_effect' )
crea una riga di testo

function getHidden( $id, $name, $value, $other_param = '' )
crea un campo HIDDEN

function getTextfield( $label_name, $id, $name, $maxlenght, $value = '', $alt_name = '', $other_after = '', $other_before = '')
crea un campo di testo

function getDatefield( $label_name, $id, $name, $value = '', $date_format = FALSE, $sel_time = FALSE, $alt_name = '', $other_after = '', $other_before = '' )
crea un campo data

function getPassword( $label_name, $id, $name, $maxlenght, $alt_name = '', $other_after = '', $other_before = '' )
crea un campo PASSWORD

function getFilefield( $label_name, $id, $name, $value = '', $alt_name = '', $other_after = '', $other_before = '' )
crea un campo per la scelta di un file

function getDropdown( $label_name, $id, $name, $all_value , $selected = '', $other_after = '', $other_before = '' )
crea un campo con menu a discesa

function getListbox( $label_name, $id, $name, $all_value, $selected = FALSE, $multiple = TRUE, $other_after = '', $other_before = '' )
crea un campo di tipo lista

function getCheckbox( $label_name, $id, $name, $value, $is_checked = false, $other_param = '' )
crea un campo di tipo checkbox

function getRadio( $label_name, $id, $name, $value, $is_checked = false )
crea un campo di tipo radio button

function getRadioSet( $group_name, $id, $name, $all_value , $selected = '', $other_after = '', $other_before = '' )
crea un insieme di campi di tipo radio button

function getButton( $id, $name, $value, $css_button = 'button', $other_param = '' )
crea un pulsante

Altre informazioni si possono ottenere esaminando il file:
doceboCore/lib/lib.form.php

 

USO DELLE CHIAVI DI LINGUAGGIO

Per consentire una facile traduzione di tutti i messaggi visualizzati nelle applicazioni, deve essere sempre evitato l'inserimento nel codice dei messaggi da visualizzare. Si utilizzerà invece una chiave di linguaggio, cioè una costante simbolica che fa riferimento ad un messaggio che può essere presente in più lingue all'interno del database di Docebo.

La gestione delle lingue è presente nell'interfaccia di amministrazione e permette di aggiungere nuove chiavi, di modificare quelle esistenti, e di inserire nuove traduzioni per le chiavi non ancora tradotte in una data lingua.

Dal punto di vista del programmatore è importante tenere presente che i nomi scelti per le nuove chiavi di linguaggio devono avere un apposito prefisso, in modo che non vadano a sovrapporsi con altre chiavi previste in Docebo.

Per visualizzare il contenuto di un messaggio si usa un'istanza della classe DoceboLanguage, che può essere ottenuta nel seguente modo: 
  $lang=& DoceboLanguage::createInstance($module, $platform, $lang_code);
dove i parametri hanno i significati seguenti:
  $module = nome del modulo che contiene le chiavi di linguaggio (es. 'admin_content')
  $platform = la piattaforma in uso (cms, lms, framework, ecc.)
  $lang_code = lingua da utilizzare (se omesso, si considera la lingua in uso)

A questo punto i messaggi si possono estrarre con il codice seguente:
  $msg = $lang->def($key);
dove il parametro $key è la chiave di linguaggio desiderata (es. '_BACK_TOLIST').

Per maggiori informazioni sulla classe DoceboLanguage si può consultare il file:
    doceboCore/lib/lib.lang.php