<

Moduli

Ultima modifica: 3 Ottobre 2025

Nel wordpress Gpci framework i moduli sono componenti aggiuntivi equivalenti ai plugins di wordpress ma sono esclusivi e integrati nel tema, in quanto per funzionare si interfacciano con la struttura del framework e ne estendono le funzionalità. Va comunque chiarito che i moduli sono sempre indipendenti gli uni dagli altri. Per abilitare uno o più moduli è sufficiente utilizzare lo switch visivo nel backend in Gpci/componenti aggiuntivi, ma ci sono altri metodi che seguono un certo ordine per rispettare le priorità (più è alta più avrà la precedenza):

  1. settare una costante php per l'abilitazione di default
  2. abilitare tramite switch visivo
  3. settare una costante php per l'abilitazione forzata
  4. settare una costante php di inclusione
  5. utilizzare la funzione php IncludeComponents

Abilitare i moduli tramite switch

Il modo più semplice per attivare o disattivare un modulo è andare nel backend in Gpci/componenti aggiuntivi e utilizzare lo switch corrispondente. Appena salvate le modifiche appariranno opzioni aggiuntive relative al modulo, come i post types a cui applicarlo o sotto moduli da abilitare o disabilitare. Questo dovrebbe essere già sufficiente per la maggior parte dei siti, comunque per opzioni avanzate e condizioni è possibile usare le costanti php come descritto sotto.

wordpress gpci framework schermata componenti aggiuntivi
schermata componenti aggiuntivi

Costanti e globali

I moduli utilizzano costanti e globali per includere le funzionalità aggiuntive ma anche per alcune configurazioni. In linea di massima:

  • per includere un modulo o un sotto componente sarà utilizzata una costante, in quanto il codice php una volta incluso non può essere rimosso
  • se il componente ha una sola valutazione nella pagina (come nel caso di codice css/javascript o icone) sarà utilizzata una costante in quanto il codice sarà generato tramite un hook e non ha più senso rimuoverlo
  • per configurare componenti come limiti o attributi immagine sarà utilizzata una globale in quanto nella stessa pagina potrebbero ad esempio essere utilizzati caricamenti/applicazione di attributi multipli con comportamenti diversi

Struttura delle costanti

la struttura delle costanti php per l'abilitazione/disabilitazione dei moduli è: gpci\modules\tipo di abilitazione\nome modulo e il valore può essere 0 oppure 1. Vanno definite nel file options.php dove è già presente una struttura che rispecchia i moduli esistenti al momento.

Tipo di abilitazione

Il tipo di abilitazione può essere uno o più tra i seguenti(lo switch non è una costante ma l'ho inserito qui solo per dare un'idea delle priorità):

  1. default: questo stato serve ad abilitare/disabilitare il modulo come condizione default che può ancora essere abilitato o disabilitato dallo switch e dallo stato forced
  2. switch: ha la priorità sullo stato default ma il modulo può ancora essere abilitato o disabilitato dallo stato forced
  3. forced: ha la priorità su default e sullo switch, quando utilizzato forced lo switch diventerà rosso per segnalare all'utente che non è possibile modificarne lo stato
  4. included: è il tipo di abilitazione più importante in quanto il modulo sarà abilitato o disabilitato solo in base al valore di questa costante(che sarà calcolata, se non specificata, automaticamente in base ai punti precedenti)

Utilizzando le costanti è possibile ad esempio:

  • dare un'impostazione di default per tipo di sito
  • segnalare visivamente i componenti necessari all'applicazione
  • specificare delle condizioni per cui il modulo sarà abilitato o escluso

Esempi di abilitazioni dei moduli con php

//Disabilita il modulo "aggiunte di codice" di default
define( 'gpci\modules\default\additions', 0 );
//Abilita il "modulo aggiunte di codice" di default
define( 'gpci\modules\default\additions', 1 );
//Disabilita il modulo permessi e impedisce all'utente di abilitarlo tramite switch
define( 'gpci\modules\forced\permissions', 0 );
//Disabilita il modulo icone se l'id del post è 2(sia backend che frontend)
if( gpci\currentPostId == 2 ){ define( 'gpci\modules\included\icons', 0 ); }
//Disabilita il modulo icone se l'id del post è 2(solo backend)
if( gpci\currentPostId == 2 AND gpci\isGutenbergBackend ){ define( 'gpci\modules\included\icons', 0 ); }

Post types dei moduli

Alcuni moduli, ossia quelli che hanno componenti a livello di pagina singola, possono essere abilitati e disabilitati anche soltanto in certi post types. Questo segue la stessa logica vista sopra con l'unica differenza che nel caso di abilitazione con php la costante è un array di stringhe invece di un numero. Esempio:

//Abilita il modulo aggiunte di codice soltanto per le pagine
define( 'gpci\modules\included\additions\additions-posttypes', ['page' ] );

Abilitare i singoli componenti dei moduli

Vari moduli sono composti da più componenti; per esempio il modulo di aggiunte di codice permette di aggiungere alle singole pagine:

  • css
  • javascript nella head
  • javascript nel footer

Dato che potrebbero essere utilizzate soltanto una parte delle funzioni(ad esempio nel modulo aggiunte di codice la maggior parte delle volte verranno usati solo css e javascript) è possibile abilitare e disabilitare anche i singoli componenti dei moduli esattamente come visto prima. Ovviamente il modulo deve essere abilitato per fare questo. Esempio:

//Abilita il modulo gsap solo se l'id del post è 2
if( gpci\currentPostId == 2 ){ define( 'gpci\modules\included\additions\single-gsap', 1 ); }

Va detto che il controllo dei post types viene fatto prima del controllo dei singoli componenti quindi:
Supponiamo di essere in una pagina singola(post type: page)

define( 'gpci\modules\included\additions\additions-posttypes', [ 'page' ] );
define( 'gpci\modules\included\additions\single-css', 1 );
//Funzionerà
define( 'gpci\modules\included\additions\additions-posttypes', [ 'post' ] );
define( 'gpci\modules\included\additions\single-css', 1 );
//NON funzionerà

Abilitare moduli dal modulo snippets (php)

E' possibile, avendo il modulo snippets con php attivato, abilitare un modulo solo per la pagina corrente. Ad esempio in questo sito ho abilitato il modulo stampa solo per la pagina stampa. E' bene precisare che probabilmente ci saranno dei risultati inattesi (nel mio caso il css di stampa globale non sarà sincronizzato con quello del sito) quindi non è un metodo da utilizzare spesso ma riservato solo a casi particolari. per farlo: disabilitare innanzitutto il modulo in oggetto dalla pagina impostazioni dei componenti aggiuntivi oppure selezionare post types differenti, poi utilizzare la funzione IncludeComponents nel controllo php:

//include il modulo icone solo nel frontend
if( !is_admin() ){ IncludeComponents( $components='module\icons' ); }

//include il modulo icone solo nel backend
if( is_admin() ){ IncludeComponents( $components='module\icons' ); }

//include il modulo icone sia nel frontend che nel backend
IncludeComponents( $components='module\icons' );

Tabella costanti

La tabella delle costanti relativa i moduli è consultabile in qualsiasi pagina admin/gutenberg, come spiegato prima al posto di included può essere utilizzato default o forced.

CostanteFormatoDescrizione
gpci\modules\included\additions0/1Include il modulo snippets
gpci\modules\included\additions\additions-posttypesarray di stringheDefinisce i post types a cui sarà applicato il modulo
gpci\modules\included\additions/single-css0/1Aggiunge il controllo css alle pagine singole nei post types selezionati
gpci\modules\included\additions/single-js-head0/1Aggiunge il controllo javascript head alle pagine singole nei post types selezionati
gpci\modules\included\additions/single-js-footer0/1Aggiunge il controllo javascript footer alle pagine singole nei post types selezionati
gpci\modules\included\additions/single-js-libraries0/1Aggiunge il controllo librerie javascript aggiuntive alle pagine singole nei post types selezionati
gpci\modules\included\additions/single-php0/1Aggiunge il controllo php alle pagine singole nei post types selezionati
gpci\modules\included\cache0/1Include il modulo cache
gpci\modules\included\icons0/1Include il modulo icone
gpci\modules\included\icons\icons-posttypesarray di stringheDefinisce i post types a cui sarà applicato il modulo
gpci\modules\included\media0/1Include il modulo media
gpci\modules\included\meta0/1Include il modulo meta
gpci\modules\included\meta\meta-posttypesarray di stringheDefinisce i post types a cui sarà applicato il modulo
gpci\modules\included\permissions0/1Include il modulo permessi
gpci\modules\included\permissions\permissions-post-types
gpci\modules\included\permissions\visibilità pagina singola
(DA VERIFICARE)
?(DA VERIFICARE)
gpci\modules\included\print0/1Include il modulo stampa
gpci\modules\included\print\print-posttypes0/1Definisce i post types a cui sarà applicato il modulo

Se un modulo aggiunge altre costanti saranno documentate all'interno della pagina relativa il modulo.

Lista moduli

Questa è la lista dei moduli attivabili nel framework:

  • Ai

    Ultima modifica:

  • Cache

    Ultima modifica:

  • Icone

    Ultima modifica:

    Permette di definire icone a livello di pagina singola.

  • Media

    Ultima modifica:

    Modulo per la gestione dei media e ottimizzazione delle immagini.

  • Meta

    Ultima modifica:

  • Permessi

    Ultima modifica:

    Modulo per la gestione dei permessi, ruoli utente e capacità del sito.

  • Snippets (aggiunte di codice)

    Ultima modifica:

    Modulo per l'aggiunta di librerie di terze parti e codice personalizzato alle pagine singole del sito.

  • Stampa

    Ultima modifica:

    Modulo per la gestione delle stampe delle pagine del sito.