Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Moodle: l'API PAGE

Moodle: come funziona e come si usa l'API PAGE, l'interfaccia di programmazione del CMS che permette di personalizzare il layout dei corsi online.
Moodle: come funziona e come si usa l'API PAGE, l'interfaccia di programmazione del CMS che permette di personalizzare il layout dei corsi online.
Link copiato negli appunti

L'API PAGE è il cuore di ogni pagina di Moodle, controllare esattamente il funzionamento di questa interfaccia ci permette di personalizzare i layout.

Il contesto

Prima di procedere è però necessario chiarire in primo luogo il concetto di contesto: in Moodle quando parliamo di contesto intendiamo uno spazio al quale possiamo assegnare ruoli, questo meccanismo permette sia di assegnare ruoli a contesti generici ed ereditarli negli elementi contenuti, sia di assegnare ruoli particolari con estrema capillarità. Quindi, la categoria è un contesto, il corso che appartiene alla categoria è un contesto, un'attività può essere definita all'interno del contesto del corso.

Lo scopo di questa costruzione è quello di definire i permessi di ogni singolo utente sugli elementi di contenuto specifici, seguendo una logica che permette di andare dal generale al particolare ma non di risalire.

Ogni contesto può avere un ruolo diverso assegnato a un utente.

è possibile assegnare a un utente autorizzazioni diverse in base a un contesto specifico. Ad esempio, a un utente potrebbe essere assegnato il ruolo di "studente" per un corso, ma verrà assegnato il ruolo di un insegnante nel contesto di un forum specifico. Oppure un utente può essere un insegnante di un corso e uno studente in un altro corso.

Molti contesti di Moodle hanno un posto dove concedere eccezioni a ruoli specifici all'interno di quel contesto. Queste eccezioni non sono trasferibili da quel contesto. Cioè, un'eccezione può essere applicata al successivo contesto verso il basso, ma non può essere applicata lateralmente o al rialzo da quel contesto.

Modulo del corso

Il secondo concetto da chiarire è quello relativo a "modulo del corso" che rappresenta ciascuna delle attività o delle risorse trovate in un corso, contiene le informazioni rispetto a quale corso debba essere visualizzata l'attività, i dettagli relativi alla visualizzazione e lo stato di completamento dell'attività stessa.

Uso dell'API PAGE

A questo punto possiamo iniziare a vedere l'API PAGE in azione per il settaggio di alcuni semplice elementi come l'URL o il title di un modulo. Per questo prendiamo il file view.php del modulo del glossario che si trova sul percorso /mod/glossary/view.php. Questo file ha il compito di mostrare una particolare istanza di glossario.

Le righe che ci interessano sono quelle che si trovano a partire dalla 275 e il cui contenuto è abbastanza esplicito:

$PAGE->set_title($glossary->name);
$PAGE->set_heading($course->fullname);
$url = new moodle_url('/mod/glossary/view.php', array('id'=>$cm->id));
if (isset($mode)) {
   $url->param('mode', $mode);
}
$PAGE->set_url($url);

$PAGE non è definita in questa pagina ma è una variabile globale definita nel file lib/setup.php che viene caricato mediante l'inclusione del file config.php presente nella radice.

In pratica includendo config.php avremo a disposizione $PAGE, infatti per ogni richiesta di pagina Moodle imposta un paio di strutture globali di cui di fatto avremo sempre bisogno: $DB, l'oggetto del database, e $CFG che memorizza la configurazione. Per la manipolazione dei dati si useranno i metodi pubblici dell'oggetto $DB.

Il core Moodle si occupa di impostare la connessione al database in base ai valori specificati in config.php. L'oggetto globale $DB viene istanziato durante la fase di bootstrap dell'applicazione e quindi è disponibile nello scope globale subito dopo aver incluso config.php. $PAGE è quindi un'istanza moodle_page che memorizza le informazioni e viene utilizzata dalla libreria $OUTPUT durante la visualizzazione della pagina.

E' importante notare la differenza tra $PAGE e $OUTPUT, $PAGE si occupa dei settaggi della pagina mentre $OUTPUT della sua visualizzazione. $PAGE contiene la logica, $OUTPUT si occupa della generazione del codice HTML.

Per poter funzionare, nell'esempio precedente si dovrà necessariamente impostare l'URL o la pagina mostrerà un errore. L'altro elemento chiave è invece la definizione del contesto che servirà anche per verificare i permessi dell'utente:

$context = context_module::instance($cm->id);
require_capability('mod/glossary:view', $context);

Il prossimo step sarà quello di impostare il layout della pagina:

$PAGE->set_pagelayout('standard');

Il valore "standard" è uno dei valori possibili. Quando si imposta il layout della pagina è opportuno utilizzare il layout che corrisponde maggiormente alla pagina che si sta creando. I layout sono usati dai temi per determinare cosa viene mostrato sulla pagina.

La differenza più evidente tra i layout sono la regione di blocco che supportano. Per vedere quali sono i valori disponibili dobbiamo accedere al nostro tema, per esempio "boost", nel file config.php abbiamo la lista dei layout disponibili. Quando si crea un nuovo tema è consigliabile crearlo come tema figlio in modo che si possa ricorrere sempre al tema padre e quindi non si abbiano layout non supportati.

Ti consigliamo anche