PAFacilePremium Documentazione tecnica Versione documento 1.2 Data ultima stesura 20131127 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 mioaddon.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('miomodulo', 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 20131127 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__) . "/mioaddon.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__) . "/mioaddon.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 20131127 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__) . "/mioaddon.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('miomodulo', new PAFacileAddon_mioModulo() ); 3 ATTENZIONE!!! DIVIETO ASSOLUTO DI DIFFUSIONE DI QUESTO MATERIALE SENZA AUTORIZZAZIONE ESPLICITA DELL’AUTORE