<< Indietro
Messaggi di questa discussione
Mittente Testo dei messaggi
Dessì Antonello

Noavatar
Post fatti : 112
> Profilo
Scritto il : 03/10/2007 16:59 ( più di un mese )
Oggetto : Linee guida di sviluppo moduli

Sarebbe bello che in occasione dell'uscita della 3.5 venissero stilate delle linee guida per lo sviluppo di moduli di terze parti.
In questo modo si potrebbero sviluppare nuovi moduli per Docebo con la garanzia (per quanto possibile) di non avere problemi al momento dell'installazione di patch e upgrade.

A mio avviso non servirebbe molto, basterebbe definire in modo preciso:

  1. poche e brevi annotazioni sulle funzioni che è necessario sviluppare per un nuovo modulo e sulla posizione dei relativi file;
  2. uno standard sull'uso dei nomi dei moduli, sull'uso dei nomi delle funzioni/oggetti in PHP, sull'uso delle chiavi del linguaggio, in modo da evitare ogni possibile conflitto anche sul codice che sarà sviluppato in futuro per Docebo;
  3. quali modifiche è lecito fare sul database, ovvero quali sono le operazioni sicuramente indolori, quelle a rischio e quelle assolutamente da evitare;
  4. quali estensioni si possono fare sul codice e dove vanno collocati nuovi file PHP esterni ad un modulo (esempio: ho installato la libreria FPDF sulla mia 3.0.6 e per fortuna ho scelto una giusta directory ove collocarla, così da non creare conflitti con quella presente nella 3.5beta);
  5. una procedura da seguire per l'installazione di un nuovo modulo, in modo che questa possa anche essere automatizzata

 

Ciao!

http://edu.altervista.org  

 
Erba Claudio

Avatar
Post fatti : 2688
> Profilo
Scritto il : 03/10/2007 17:36 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Ciao Antonello,
Il problema è che siamo talmente incasinati che non riusciamo a farlo. Proposta:
  • O vieni in ufficio da noi e ci costringi (inseieme a te) a prenderci mezza giornata per scriverceli (e tu ci aiuti)
  • O organiziamo un due ore al Docebo Day per fare questo tipo di attività
Cla!
Docebo CEO and Founder
www.docebo.com
 
karmine Carmine-Pizza

Avatar
Post fatti : 2482
> Profilo
Scritto il : 03/10/2007 18:21 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Per questa cosa sono disponibile anche io.
Credo che aumenterebbe enormemente le possibilità e le potenzialità di Docebo.... poi magari mi sbaglio...
Cmnq se serve un modulo per caffè espresso io ci sono   : )
Forum Moderator
docere-movere-delectare.
 
Dessì Antonello

Noavatar
Post fatti : 112
> Profilo
Scritto il : 04/10/2007 16:18 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Writted by: Erba Claudio

Ciao Antonello,
Il problema è che siamo talmente incasinati che non riusciamo a farlo. Proposta:
  • O vieni in ufficio da noi e ci costringi (inseieme a te) a prenderci mezza giornata per scriverceli (e tu ci aiuti)
  • O organiziamo un due ore al Docebo Day per fare questo tipo di attività

Cla!

Venire da voi mi viene un po' difficile... :)
Pero' posso, appena mi libero un po', provare a buttar giu' una proposta, limitatamente alle mie conoscenze del codice (essenzialmente la parte CMS).
L'importante è cominciare a parlarne.

Ciao!

http://edu.altervista.org  

 
Dessì Antonello

Noavatar
Post fatti : 112
> Profilo
Scritto il : 06/10/2007 15:54 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Allora, io ci provo...
Quella che segue è solo una bozza, riguardante soltanto la creazione di un nuovo modulo di blocco nella piattaforma CMS. Le convenzioni che indico sono solo una proposta, da integrare e correggere. 
Spero sia utile.



*************************************************
 LINEE GUIDA PER LO SVILUPPO DI MODULI IN DOCEBO
 (bozza non ufficiale)
*************************************************



CMS - MODULO PER BLOCCHI 
========================
Una pagina del CMS è composta da uno o più blocchi, posizionati secondo una 
certa disposizione.
Per realizzare un nuovo tipo di blocco è necessario definire una parte che 
riguarda la configurazione del blocco ed una che riguarda la sua 
visualizzazione.


CONFIGURAZIONE DEL BLOCCO
-------------------------

  * Convenzioni sui nomi dei blocchi:             
    I nuovi moduli per la gestione dei blocchi devono avere un nome nel formato 
    "ext_xxx", dove il prefisso "ext_" sta ad indicare una estensione esterna al 
    codice di Docebo e "xxx" indica il nome desiderato per il blocco.

  * Inserimento del nuovo tipo di blocco:
    Per rendere visibile il nuovo blocco nell'apposita pagina di scelta è 
    necessario inserire i valori opportuni nella tabella "cms_blocktype":
	    
	    INSERT INTO cms_blocktype ( name, folder, label ) 
        VALUES ( 'ext_xxx', '', '_BLK_EXT_XXX');
    
    Il campo "name" indica il nome del nuovo blocco, che sarà del tipo "ext_xxx".
    
    Il campo "folder" indica la directory dove trovare il codice del blocco: 
    se si lascia in bianco viene utilizzato il nome del blocco stesso. Questa 
    opzione è utilizzata per blocchi che si differenziano poco tra di loro, per 
    cui è opportuno ragruppare il codice (es. il blocco "Notizie" ed il blocco 
    "Notizie (specifico)" ).
    
    Il campo "label" indica la chiave del linguaggio che contiene il nome del 
    blocco da visualizzare: deve essere nel formato "_BLK_EXT_XXX".
    
  * Codice per la configurazione del blocco:
    Una volta inserito un blocco all'interno di una pagina è possibile 
    configurarne i parametri di visualizzazione.  
    Il codice che si occupa della gestione dei parametri di configurazione si 
    trova nella directory:
      doceboCms/admin/modules/block_ext_xxx/
    All'interno di questa directory deve trovarsi il file "util.ext_xxx.php". 
    Questo file deve a sua volta contenere la definizione delle funzioni:
      
      function ext_xxxBlockEdit(& $out, & $lang, & $form, $block_id, $sub_id) 
        Questa funzione visualizza il form che contiene tutte le opzioni 
        configurabili per il blocco.
        
      function ext_xxxBlockAdd($block_id, $sub_id) 
        Questa funzione permette di definire i valori di default per i parametri 
        del blocco.
        
      function ext_xxxBlockSave($block_id, $sub_id)
        Questa funzione permette di memorizzare i valori specificati per i 
        parametri del blocco.
        
      function ext_xxxBlockDel($block_id, $sub_id)
        Questa funzione è opzionale (può non essere presente) e viene 
        richiamata al momento della rimozione del blocco: è pensata per 
        gestire delle operazioni di cancellazione non standard, come può 
        essere il caso della eliminazione di valori da tabelle non 
        appartenenti a Docebo.

    Utilizzando un modulo esistente come esempio non è difficile scrivere il 
    codice desiderato per il nuovo blocco.
    In caso sia necessario definire funzioni di utilità, bisogna nominarle 
    secondo questo standard: "ext_xxxYyy", dove Yyy è il nome che caratterizza 
    la funzione.
    Se le funzioni di utilità possono essere utilizzate in più parti 
    dell'applicazione (come ad esempio al momento della visualizzazione del 
    blocco), è opportuno inserirle in un apposito file presente nella stessa 
    directory e chiamato "functions.php", che sarà richiamato con l'istruzione 
    "require_once" del PHP.
    
  * Definizione delle chiavi del linguaggio:
    Per rendere visibile il nuovo blocco nell'apposita pagina di scelta è 
    necessario definire 2 chiavi di linguaggio, entrambe appartenenti alla 
    piattaforma "CMS" ed al modulo di gestione "admin_manpage":
      _BLK_EXT_XXX che contiene il nome del blocco;
      _BLK_EXT_XXX_DESC che contiene una breve descrizione delle funzionalità 
        del blocco.
  
    Tutti gli altri messaggi necessari per la gestione dei parametri del 
    blocco devono essere definiti come chiavi di linguaggio, appartenenti alla 
    piattaforma "CMS" ed al modulo di gestione "admin_manpage", usando la 
    convenzione "_EXT_XXX_YYY", dove YYY è il nome desiderato per la chiave del 
    linguaggio.
    Nel caso di messaggi già presenti come chiavi di linguaggio, onde evitare 
    ogni possibile conflitto con gli aggiornamenti di Docebo, è senz'altro 
    preferibile creare nuove chiavi.
    

	
VISUALIZZAZIONE DEL BLOCCO
--------------------------
  * Codice per la visualizzazione iniziale del blocco:    
    Il codice che si occupa della visualizzazione del blocco si trova nella 
    directory:
      doceboCms/modules/ext_xxx/
    All'interno di questa directory deve trovarsi il file "block.ext_xxx.php". 
    Questo file deve a sua volta contenere la definizione della funzione:
    
      function ext_xxx_showMain($idBlock, $title, $block_op) 
	      Questa funzione visualizza il blocco all'interno della pagina del CMS.
	    
    Utilizzando un modulo esistente come esempio non è difficile scrivere il 
    codice desiderato per il nuovo blocco.
    In caso sia necessario definire funzioni di utilità, bisogna nominarle 
    secondo questo standard: "ext_xxx_Yyy", dove Yyy è il nome che caratterizza 
    la funzione.
    Se le funzioni di utilità possono essere utilizzate in più parti 
    dell'applicazione è opportuno inserirle in un apposito file presente nella 
    stessa directory e chiamato "functions.php". Se invece di funzioni si vuole 
    definire una classe, è opportuno assegnare al file un nome del tipo 
    "class.ext_xxx_yyy.php" e chiamare la classe "ext_xxx_yyy", dove "yyy" è il 
    nome che la caratterizza.

  * Codice per la visualizzazione delle sottopagine del blocco:    
    Alcuni blocchi si limitano a mostrare un solo contenuto, come ad esempio il 
    blocco "Menu", altri invece permetto di mostrare anche delle sottopagine.
    Per gestire le sottopagine è necessario inserire nella directory indicata 
    in precedenza anche il file "index.php".
    Questo file contiene del codice che permette di selezionare la sottopagina 
    da mostrare, mandando in esecuzione la funzione corrispondente.
    Si può prendere come esempio il blocco "news" per scrivere il codice 
    necessario per il proprio blocco.
    In caso sia necessario definire funzioni di utilità, bisogna nominarle 
    sempre secondo lo standard: "ext_xxx_Yyy", dove Yyy è il nome che 
    caratterizza la funzione.
    E' opportuno creare delle funzioni di utilità che possono essere richiamate 
    sia dalla pagina principale (file "block.ext_xxx.php") che dalle sottopagine 
    (file "index.php") e raggrupparle nel file "functions.php".

  * Definizione delle chiavi del linguaggio:
    Ogni testo costante che si vuole visualizzare sulle pagine deve essere 
    sempre deinito come chiave di linguaggio: in questo modo si rende 
    semplice la traduzione in altre lingue.
    Le nuove chiavi di linguaggio vanno definite all'interno della 
    piattaforma "CMS" e del modulo che si sta creando.
  
    Nel caso di messaggi già presenti come chiavi di linguaggio, onde evitare 
    ogni possibile conflitto con gli aggiornamenti di Docebo, è senz'altro 
    preferibile creare nuove chiavi.

Ciao!

http://edu.altervista.org  

 
Cherubino Claudio

Avatar
Post fatti : 202
> Profilo
Scritto il : 07/10/2007 10:11 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Forse si potrebbe usare il wiki per questo tipo di documentazione.
Claudio che ne pensi?
Docebo Staff
http://www.claudiocherubino.it
 
Erba Claudio

Avatar
Post fatti : 2688
> Profilo
Scritto il : 14/10/2007 17:28 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli
Apro, incollo e autorizzo l'utente
Cla
Docebo CEO and Founder
www.docebo.com
 
Dessì Antonello

Noavatar
Post fatti : 112
> Profilo
Scritto il : 16/10/2007 18:57 ( più di un mese )
Oggetto : Re: Linee guida di sviluppo moduli

Writted by: Erba Claudio

Apro, incollo e autorizzo l'utente
Cla

Grazie. Appena posso inserisco altre informazioni nel wiki.

 

Ciao!

http://edu.altervista.org  

 
<< Indietro