PAFacilePremium
Documentazione tecnica
Versione documento 1.2
Data ultima stesura 2013­11­27
autore: toSend.it di Luisa Marra
Creare un addon per PAFacilePremium
Progetto PAFacile Pemium
Regole di base per la produzione di un addon
Hook di PAFacilePremium
Esempio di plugin che non fa nulla
index.php
mio­addon.php
Regole di base per la produzione di un addon
L’addon di PAFacile Premium dovrà essere un file PHP (collocato ovunque sul server, purchè l’utente
owner del servizio Apache abbia diritto di accesso completo allo script).
Lo script dovrà seguire poche regole fondamentali:
➔ Dovrà essere definita una Classe con prefisso PAFacileAddon_.
class PAFacileAddon_mioModulo{ ... }
➔ L’instanziamento della classe deve avvenire secondo la seguente sintassi:
PAFacilePremium::getInstance()­>
setModule('mio­modulo', new PAFacileAddon_mioModulo() );
➔
Il costruttore di classe dovrà agganciare l’hook PAFACILE_PREMIUM_ACTION_INIT e
implementare un metodo init.
class PAFacileAddon_mioModulo{
public function PAFacileAddon_mioModulo(){
add_action( PAFACILE_PREMIUM_ACTION_INIT, array($this, 'init') );
}
public function init(PAFacilePremium $pa){
// Esegue tutte le operazioni di inizializzazione
}
}
➔
Per agganciare il modulo a PAFacile Premium, il file contenente lo script classe PHP dovrà
essere incluso tramite il filtro PAFACILE_PREMIUM_FILTER_LOAD_MODULES ed
1
ATTENZIONE!!! DIVIETO ASSOLUTO DI DIFFUSIONE DI QUESTO
MATERIALE SENZA AUTORIZZAZIONE ESPLICITA DELL’AUTORE
PAFacilePremium
Documentazione tecnica
Versione documento 1.2
Data ultima stesura 2013­11­27
autore: toSend.it di Luisa Marra
aggiungere all’array il percorso completo allo script da caricare.
add_filter( PAFACILE_PREMIUM_FILTER_LOAD_MODULES, function($moduli){
$moduli[] = dirname(__FILE__) . "/mio­addon.php"
return $moduli;
});
➔ A garanzia di caricamento di tutte le librerie di base di PAFacile Premium, il codice dovrà essere
inglobato nel filtro plugins_loaded come esemplificato di seguito.
add_filter( 'plugins_loaded', function(){
add_filter( PAFACILE_PREMIUM_FILTER_LOAD_MODULES, function($moduli){
$moduli[] = dirname(__FILE__) . "/mio­addon.php"
return $moduli;
});
});
➔ Per migliorare la compatibiltià dei plugin sarebbe utile indicare quale versione minima di
PAFacilePremium è supportata. Quando un modulo di PAFacilePremium viene caricato il
sistema verificherà la presenza di un metodo pubblico dell’addon denominato
minVersionAllowed(). Se esso sarà presente dovrà restituire il numero minimo di versione di
PAFacile con il quale è stato verificato il modulo.
public function minVersionAllowed(){
return '20131001'; # Versione di PAFacilePremium.
}
Se invece il metodo dovesse restituire un numero di versione successivo a quello attualmente
installato sarà generata un’eccezione del server, registrando l’anomalia nell’error log di Apache.
Hook di PAFacilePremium
Tutti gli hook di PAFacilePremium sono censiti nel file filters.php nella directory del plugin.
2
ATTENZIONE!!! DIVIETO ASSOLUTO DI DIFFUSIONE DI QUESTO
MATERIALE SENZA AUTORIZZAZIONE ESPLICITA DELL’AUTORE
PAFacilePremium
Documentazione tecnica
Versione documento 1.2
Data ultima stesura 2013­11­27
autore: toSend.it di Luisa Marra
Esempio di plugin che non fa nulla
index.php
<?php
/*
Plugin Name: PAFacile Example Addon
Plugin URI: http://tosend.it
Description: Addon dimostrativo per PAFacile
Author: toSend.it di Luisa Marra
Version: 20130901
Author URI: http://tosend.it
*/
add_filter('plugins_loaded', function(){
add_filter( PAFACILE_PREMIUM_FILTER_LOAD_MODULES, function($moduli){
$moduli[] = dirname(__FILE__) . "/mio­addon.php"
return $moduli;
});
});
mio-addon.php
<?php
class PAFacileAddon_mioModulo{
public function PAFacileAddon_mioModulo(){
add_action( PAFACILE_PREMIUM_ACTION_INIT, array($this, 'init') );
}
public function minVersionAllowed(){
return '20131001'; # Versione di PAFacilePremium.
}
public function init(PAFacilePremium $pa){
// Esegue tutte le operazioni di inizializzazione
add_action('admin_notices', array($this, 'showAdminMessages') );
}
public function showAdminMessages(){
?>
<div id="message" class="updated">
Questo è un ADDON per PAFacile Premium
</div>
<?php
}
}
PAFacilePremium::getInstance()­>
setModule('mio­modulo', new PAFacileAddon_mioModulo() );
3
ATTENZIONE!!! DIVIETO ASSOLUTO DI DIFFUSIONE DI QUESTO
MATERIALE SENZA AUTORIZZAZIONE ESPLICITA DELL’AUTORE
Scarica

Creare un addon per PAFacilePremium