<

Funzioni ad uso interno

Ultima modifica: 7 Agosto 2026

Le funzioni descritte in questa pagina sono usate internamente dal framework e soggette a probabili e drastici cambiamenti. Sono da considerarsi come documentazione privata oppure per capire come funziona la base del framework.

Callbacks-blocks.php

  • Posizione: /php/callbacks/callbacks-blocks.php

Insieme di funzioni relative ai blocchi gutenberg Gpci.

GpciRenderBlockHead

Callback non diretto del blocco head: assegna le variabili globali che verranno generate nella head.

Parametri

Sono gli stessi dell'hook render_block:

  1. block_content
  2. block
  3. instance

Return

Null, in quanto il contenuto del blocco non deve essere generato.

Usata in

  • /php/hooks/render_block/switch_block.php

GpciClassicMenuDefaultRender

Funzione predefinita per generare il blocco menu classico.

Parametri

Sono gli stessi dell'hook render_block:

  1. block_attributes
  2. content

Return

Stringa html finale che rappresenta il menu.

Usata in

  • /blocks/classicmenu.php

GpciClassicMenuDefaultBuild

Funzione ricorsiva che costruisce i submenu e i tag li nel blocco menu classico (è chiamata dalla funzione precedente).

Parametri

Sono gli stessi dell'hook render_block:

  1. block_attributes
  2. items
  3. parent_id

Return

Stringa html che rappresenta il submenu e i tag li.

Usata in

  • /php/callbacks/callbacks-blocks.php

Callbacks-internal.php

GpciGetCurrentPostId (VERIFICARE)

Ottiene il post id corrente in vari contesti. Si basa sulla funzione di wordrpress get_page_by_path.

  1. prova a ottenere dalla funzione interna get_the_ID
  2. se richiesta ajax e post id in $_REQUEST['post_id'] ritorna quello
  3. se schermata admin e post id in $_GET['post'] ritorna quello

Parametri

Nessuno.

Return

Post id del post corrente oppure 0.

Documentazione rilevante


GpciCacheData

Gestisce i gruppi di caches predefiniti dal framework (per ora post types e tags).

Parametri

  1. $action - stringa - valori possibili:
    delete - elimina tutte le caches specificate
    check - controlla se le caches specificate sono impostate nel parametro $caches, altrimenti le controlla tutte
    write - scrive le caches specificate
  2. $caches - stringa o array di stringhe - default: postTypes, tags -
    se non specificato: applica l'azione a tutte le caches.
    se stringa: applica l'azione alla cache specificata
    se array di stringhe: applica l'azione alla/le caches specificate

Valori possibili

Se specificata la cache i valori possibili sono:

  • postTypes - applica l'azione alle caches relative i post types
  • tags - applica l'azione alle caches relative i tags

Return

Nulla.

Esempi

//svuota tutte le caches predefinite
GpciCacheData( $action='delete' );

//scrive tutte le caches predefinite
GpciCacheData( $action='write' );

//controlla se esistono tutte le caches predefinite
GpciCacheData( $action='check' );

//controlla se esistono le caches relative i post types
GpciCacheData( $action='check', $caches='postTypes' );
//oppure
GpciCacheData( $action='check', $caches=['postTypes'] );

Risorse collegate:

  • funzione CacheData
  • costanti php relative i post types
  • costanti php relative i tags

GpciUpdateThemeJson

Aggiorna il file theme.json (se modificato) del tema child dai controlli all'interno della sezione theme.json del customizer.

Parametri

Nessuno.

Return

Nulla.

Usata in

  • hook customize_save_after

GpciUpdateStyleCss

Aggiorna il file style.css (se modificato) del tema child unendo:

Parametri

Nessuno.

Return

Nulla.

Usata in

  • hook customize_save_after
  • hook post_updated

GpciCheckBlockNames

Controlla i nomi dei blocchi gutenberg passati allo shortcode render_blocks.

Parametri

  1. $blocks - array ottenuto da parse_blocks

Return

True se tutti i blocchi sono permessi, false se almeno un blocco non è autorizzato.

Risorse collegate:

  • globale php $GLOBALS['gpci']['whitelist']['blocks']

GpciRecursiveActionFromFolder

(da rivedere InitializeTemp)

Esegue un'azione ricorsiva dai file inseriti in una cartella (se sono dell'estensione specificata), comprendendo anche le sottocartelle. Se il parametro ActionOnFile è una funzione inesistente verrà generato in console un messaggio di errore.

Parametri

  1. $folder_path - percorso di una cartella senza slash finale
  2. $ActionOnFile - stringa - nome di un'azione o di funzione che verrà eseguita sui files interni a ogni cartella (che sono dell'estensione specificata). Le azioni sono:
    • includephpfile
    • addiconsfromfile
    • wp_enqueue_script
    • addpathtoarray (usare insieme a $GLOBALS['gpci']['temp']) - aggiunge i percorsi alla globale temporanea
    Se l'azione è una funzione dovrà avere il file come parametro in ingresso
  3. $ExtTarget - stringa - estensione bersaglio
  4. $InitializeTemp - booleano - default: false - settare a true se serve inizializzare la global temp
  5. $IsReturningString - booleano - default: false - settare a true se la funzione deve ritornare una stringa (probabilmente codice html)
  6. $AdditionalArgs - qualsiasi - default: [] - se servono parametri aggiuntivi specificare come chiavi/valori. parametri correnti:
    deps, args, ver=>filemtime(la versione del file sarà calcolata a ogni caricamento pagina), include_once

Return

Se $IsReturningString true ritorna una stringa, altrimenti nulla.

Usata in

  • /functions.php (azione includephpfile)
  • /modules/icons/after_setup_theme.php (azione includephpfile)
  • /modules/additions/rwmb_meta_boxes.php (azione addpathtoarray)

Esempi

dal file /functions.php:

if( file_exists( gpci\themeChildDir.'/private/php/auto-includes' ) ){
  GpciRecursiveActionFromFolder( $folder_path=gpci\themeChildDir.'/private/php/auto-includes', $ActionOnFile='includephpfile', $ExtTarget='php' );
}

dal file /modules/icons/after_setup_theme.php:

if( file_exists( gpci\themeChildDir.'/private/icons' ) ){	
  $globalSvgIcons .= GpciRecursiveActionFromFolder( $folder_path=gpci\themeChildDir.'/private/icons', $ActionOnFile='addiconsfromfile', $ExtTarget='html', $InitializeTemp=true, $IsReturningString=true );
}

esempi dal risultato identico con funzione:

//Include files php
function GpciIncludePhpFile( $file_path ){ include $file_path; }
GpciRecursiveActionFromFolder( $folder_path=gpci\themeChildDir.'/private/php/auto-includes', $ActionOnFile='GpciIncludePhpFile', $ExtTarget='php' );

//Crea una stringa di icone
function GpciAddIconsFromFile( $file_path ){ $GLOBALS['gpci']['temp'] .= file_get_contents( $file_path ); }
$globalSvgIcons .= GpciRecursiveActionFromFolder( $folder_path=gpci\themeChildDir.'/private/icons', $ActionOnFile='GpciAddIconsFromFile', $ExtTarget='html', $InitializeTemp=true, $IsReturningString=true );

esempio di accodamento scripts con versione come il tema padre:

GpciRecursiveActionFromFolder( $folder_path=gpci\themeDir.'/js/enqueue_block_editor_assets/hooks/editor.BlockEdit/parts', $ActionOnFile='wp_enqueue_script', $ExtTarget='js', $InitializeTemp=false, $IsReturningString=false, $AdditionalArgs=[
  'deps' => 'gpci-editor-blockedit',
  'args' => [ 'strategy'=>'defer', 'in_footer'=>true ]
] );

esempio di inclusione modulodi stampa in una pagina singola, ma disabilitato nel resto del sito:

define( 'gpci\modules\included\print\print-posttypes', [ gpci\CurrentPostType ] );
define( 'gpci\modules\included\print\single-print', 1 );
GpciRecursiveActionFromFolder( $folder_path=gpci\modulesDir.'print', $action='includephpfile', $ExtTarget='php', $InitializeTemp=false, $IsReturningString=false, $AdditionalArgs=[ 'include_once'=>true ] );

GpciDefineIncludedConst

Calcola e definisce costanti included dalle eventuali costanti default/forced/opzione database e, se pagina impostazioni specificata, aggiorna l'opzione corrispondente.

Parametri

  1. $option - array
    id dell'opzione che contiene la key. Il nome della key è sempre uguale al nome della costante
  2. $ComponentTypeConst - array - default: []
    array di chiavi->valori che corrispondono al nome costante/chiave opzione->tipo di componente
  3. $UpdatePage - stringa - default: ''
    query string della pagina a cui aggiornare il database

Return

Nulla.

Usata in

  • /php/inclusions.php

Note

Chiamare 1 volta per ogni pagina impostazioni utile.

Esempi

GpciDefineIncludedConst( $option='gpci-additional-components', $ComponentTypeConst=[

  //Plugins
  'mb-admin-columns'	=> 'plugins',
  'mb-blocks'           => 'plugins',
  'mb-custom-table'     => 'plugins',
  ...................................

  //Modules
  'additions'  => 'modules',
  'cache'      => 'modules',
  'icons'      => 'modules',
....................................

  //Components
  'sitemap'		=> 'components'

], $UpdatePage='page=gpci-additional-components' );
GpciDefineIncludedConst( $option='gpci-options-tweaks', $ComponentTypeConst=[

  'run_wptexturize'    => 'tweaks',
  'capital_p_dangit'   => 'tweaks'

], $UpdatePage='page=gpci-options-tweaks' );

GpciModuleComponentIncludedValue

Come funzione precedente ma specifica per i singoli componenti dei moduli, utilizzata nella pagina impostazioni componenti aggiuntivi, forse da unire alla precedente.

Parametri

  1. $module - stringa
    modulo all'interno del qualwe si trova il campo (ossia il nome cartella che lo contiene che è uguale al suo id)
  2. $constant - stringa
    finale della costante che include un campo del modulo, ossia l'id del campo
  3. $default - numero - default: 0
    valore da usare se non è specificata nessuna costante o opzione nel database

Return

Non ritorna nulla, definisce solo la costante included spedificata.

Usata in

  • hooks rwmb_meta_boxes all'interno dei moduli

Esempi

GpciModuleComponentIncludedValue( $module='additions', $constant='additions-posttypes', $default=[] );
GpciModuleComponentIncludedValue( $module='additions', $constant='single-css', $default=1 );

GpciReturnForcedClassFromConst

Ritorna come stringa la classe forced oppure not-forced in base all'esistenza della sua variante rispetto a una costante. Utilizzata in tutti i singoli componenti/plugins/moduli.

Parametri

  1. $ComponentType - stringa
    tipo di componente della costante: modules, plugins, components
  2. $constant - stringa
    seconda parte finale del nome della costante, come additions o permissions
  3. $SubConstant - stringa - default: false
    se stringa verrà preso inconsiderazione come ultima parte della costante, esesmpio: single-css

Return

Stringa: forced oppure not-forced

Usata in

  • vari hook rwmb_meta_boxes, nella definizione del campo singolo

Esempi

'class'=>'primary-switch '.GpciReturnForcedClassFromConst( $ComponentType='components', $constant='sitemap' )

oppure

'class'=>GpciReturnForcedClassFromConst( $ComponentType='modules', $constant='additions', $SubConstant='single-css' )

GpciNoRenderOnDevice

Rimuove il blocco corrente dal frontend tramite javascript se il dispositivo è smartphone, tablet o desktop in base al controllo dedicato. Aggiunge uno script dedicato durante la gestione.

Parametri

  • block_content - stringa
    stringa html originale
  • ClientId - stringa
    ClientId del blocco
  • NoRenderOnPhone - booleano
    attributo corrispondente
  • NoRenderOnTablet - booleano
    attributo corrispondente
  • NoRenderOnDesktop - booleano
    attributo corrispondente

Return

Stringa html del blocco dopo la gestione.

Usata in

  • /php/hooks/render_block.php

GpciAddAttributesToTags

Aggiunge attributi personalizzati ai tag contenuti nella globale $GLOBALS['gpci']['AddAttributesToTags'] (se non vuota) tramite l'output buffering (per ora solo html e body). Spinta nell'output buffering dall'hook template_redirect. Vedere la descrizione della globale per il formato.

Parametri

  • buffer - stringa
    stringa buffer

Return

Buffer modificato oppure no.

Usata in

  • /php/hooks/template_redirect.php

GpciApplyAttributesServerSide

Aggiunge al blocco corrente gli attributi impostati nel controllo dedicato tramite l'hook render_block.

Parametri

  • AttributesDefinition - array
    definizione attributi del blocco
  • block_content - stringa
    stringa html del blocco

Return

Stringa html block_content eventualmente modificata dagli attributi.

Usata in

  • /php/hooks/render_block.php

GpciStringToFieldId

Converte una stringa a un id valido per un campo personalizzato. Il formato diventa:

  • solo lettere minuscole, numeri e underscores
  • spazi e trattini medi vengono convertiti ad underscores
  • altri caratteri speciali vengono rimossi
  • underscores multipli e a inizio o fine stringa vengono rimossi

Parametri

  • string - stringa
    stringa da convertire

Return

Stringa modificata.

Usata in

  • /modules/additions/rwmb_meta_boxes.php

GpciControlContentType

Definisce le opzioni contenute nel select del contenuto dinamico. Usato per passare le opzioni a metabox nel formato corretto.

Parametri

  1. $options - array di stringhe - default:tutti i valori della conversione dinamica escluso none - opzioni che saranno generate
  2. $ExtraOptions - array associativo - default:[] - opzioni aggiuntive che saranno accodate in foramto chiave/valore

Return

Array associativo con valore/label. Rimane da aggiungere l'helper.

Esempii

'fields' => [
  [
    'name' => 'Tipo di valore',
    'id'   => 'cond1type',
    'type' => 'select',
    'options' => GpciControlContentType( $options=[ 'string', 'GET' ] )
]

'fields' => [
  [
    'name' => 'Tipo di valore',
    'id'   => 'cond1type',
    'type' => 'select',
    'options' => GpciControlContentType( $options=[ 'string', 'GET' ], $ExtraOptions=[ 'search_columns'=>'Colonne' ] )
]

Risorse collegate:


GpciRenderingConditions

Processa le condizioni di rendering.

Parametri

  1. $RenderingConditionsPhpGroup - array di array/false - default:false - valore dell'attributo RenderingCondPhpGroup
  2. $RenderingCondPhpOperator - stringa - - default:'' - operatore logico
  3. $block_content - stringa/false - default:false - se stringa ritorna la stringa se le condizioni sono rispettate, null se le condizioni non sono rispettate, stringa di errore se ci sono errori di sintassi
  4. $ConditionsFromCustomFields - booleano - default:false - rimappa i valori usati internamente se arriva da un campo personalizzato

Return

Se $block_content ritorna la stringa/null/errore, altrimenti true o false.

Note

Se il parametro $RenderingCondPhpOperator non è specificato la funzione ritornerà false.

Esempi

Hook render_block

$block_content = GpciRenderingConditions( $RenderingConditionsPhpGroup, $RenderingCondPhpOperator, $block_content );

Hook pre_render_block

if( !GpciRenderingConditions( $RenderingConditionsPhpGroup, $RenderingCondPhpOperator ) ){ $pre_render = ''; };

Blocco condizionale

if( GpciRenderingConditions( $BlockCondition['attrs']['RenderingCondPhpGroup'] ?? false, $BlockCondition['attrs']['RenderingCondPhpOperator'] ?? 'and' ) ){}

Modulo permessi

if( !GpciRenderingConditions( $perm_single_vis_cond, $perm_single_operator, $block_content=false, $ConditionsFromCustomFields=true ) ){}

GpciConditionComparator

Compara la condizione singola, ritornando true o false - usata nelle comparazioni.

Parametri

  • cond1Value - stringa - primo operando
  • operator - stringa - operatore
  • cond2Value - stringa - secondo operando

Return

True o false in base alla comparazione.

Esempi

$risultato = GpciConditionComparator( $value1, $comparator, $value2 );$RenderingConditionCond2Value ) );
array_push( $conditionsResults, GpciConditionComparator( $RenderingConditionCond1Value, $RenderingConditionComparator, $RenderingConditionCond2Value ) );

Risorse collegate:


GpciControlComparator

Definisce le opzioni contenute nel select dei comparatori. Usato per passare le opzioni a metabox nel formato corretto.

Parametri

Nessuno.

Return

Array associativo di opzioni come chiave=>valore.

Esempi

$options = GpciControlComparator();

Risorse collegate:


GpciContentTypeConversion

Converte il valore verso il tipo scelto cercando la globale inerente.

Parametri

  1. $content - stringa - contenuto da convertire - default:''
  2. $type - stringa - tipo di contenuto (vedi lista valori qui sotto) - default:'string'
  3. $returnArray - booleano - se ritornare il valore di tipo array (altrimenti verrà convertirlo a stringa) - default:false

Return

Contenuto convertito, null se il tipo è none.

Note

Se il parametro type contiene virgole il valore verrà utilizzato nel seguente modo di esempio:

$var = GpciContentTypeConversion( $content='post,page', $type='posttypespublic,arraystrings' );
//Risultato: ['post','page'] - In gutenberg ci sarà un controllo valore associato (vedi gpci/query post types)

$var = GpciContentTypeConversion( $content='', $type='date,string,date' );
//Risultato: 'date' - In gutenberg NON ci sarà un controllo valore associato (vedi gpci/query order)

Esempi

//titolo post corrente
$PostTitle = GpciContentTypeConversion( $content='title,id', $type='wp' );

//permalink post con id 34
$PostTitle = GpciContentTypeConversion( $content='permalink,34', $type='wp' );
//valore campo metabox con id comunicazione relativo al post corrente
$PostTitle = GpciContentTypeConversion( $content='comunicazione,id', $type='mb' );
//Conversione verso il risultato della funzione con nome funzionePersonalizzata
$var = GpciContentTypeConversion( $content='funzionePersonalizzata', $type='function' );
//tipo none
$AnchorType = $block['attrs']['AnchorType'] ?? 'none';
$anchor = GpciContentTypeConversion( $anchor, $AnchorType );
if( !is_null( $anchor ) ){ $WpProcessor = true; }

//oppure
$InitialValueType = $block['attrs']['InitialValueType'] ?? 'none';
$InitialValue = $block['attrs']['InitialValue'] ?? '';
$InitialValue = GpciContentTypeConversion( $InitialValue, $InitialValueType );
if( !is_null( $InitialValue ) ){
  if( $InitialValue != ''  ){ $block_content.="<script>GetCurrentBlockFromCurrentScript().querySelector( '$tag' ).value='$InitialValue';</script>"; }
}

Frontend

$finalContent = GpciContentTypeConversion( $finalContent, $block_attributes['ContentType'] );

Backend

$UrlContent=GpciContentTypeConversion( $_POST['UrlContent'], $_POST['UrlContentType'], $block_attributes['PostId'] );

Risorse collegate:


GpciMaintenanceMode

Modifica l'output buffering in template manutenzione.

Parametri

  • buffer - stringa - contenuto html corrente

Return

Stringa html modificata.

Esempi

array_push( $GLOBALS['gpci']['outputbuffering'], [ 'GpciMaintenanceMode', 20 ] );

GpciDataToWhitelistedFunctions

Processa i dati passandoli alle funzioni specificate ma verificando prima se le funzioni sono permesse.

Parametri

  1. data - stringa - dati che saranno processati dalle funzioni se se passano i controlli - default:''
  2. functions - stringa/array - nomi delle funzioni in whitelist che processeranno i dati separate da una virgola - default:''

Return

Dati dopo essere passati dalle funzioni se esistono e sono in whitelist, altrimenti una stringa di errore/nulla in base alla funzione ErrorMessage.

Eccezioni

Ho inserito alcune eccezioni che quindi non hanno bisogno di essere inserite in whitelist in quanto sempre usabili:

  • ++ - aumenta il valore, se numerico, di 1

Esempi

Creare la funzione e metterla in whitelist

function ConvertiData( $data ){
  if( !is_numeric( $data ) ){ $data = strtotime( $data ); }
  if( is_numeric( $data ) ){
    $formatter = new IntlDateFormatter( 'it_IT', IntlDateFormatter::LONG, IntlDateFormatter::MEDIUM );
    $formatter->setPattern('d MMMM yyyy, HH:mm');
    $data = $formatter->format($data);
  }	
  return $data;
}

Usare la funzione

if( $functions ){
  $data = GpciDataToWhitelistedFunctions( $data, $functions='ConvertiData' );
}

Risorse collegate:


GpciBlocksRegistration

Registra i blocchi gutenberg personalizzati del tema padre e figlio. La funzione è ricorsiva, cerca anche nelle sottocartelle in questo modo:

  • file .js - registrerà lo script con handle $caller-block-nome file, la versione del file sarà calcolata in tempo reale per i blocchi del tema figlio e la versione del tema padre per gli altri
  • se esiste un file php omonimo lo includerà e userà la funzione interna per generare il blocco via php (la funzione dovrà obbligatoriamente chiamarsi block_nome file)

Parametri

  1. $BlocksPathList - stringa - percorso senza slash finale della cartella che contiene i files dei blocchi
  2. $caller - stringa - gpci se sono blocchi del tema padre, custom se di quello figlio

Return

Nulla.

Esempi

GpciBlocksRegistration( gpci\themeDir.'/blocks', $caller='gpci' );

//oppure
if( file_exists( gpci\themeChildDir.'/private/blocks' ) ){ GpciBlocksRegistration( gpci\themeChildDir.'/private/blocks', $caller='custom' ); }

Esempio file php:

<?php

function block_filename( $block_attributes, $content ){
  $htmlString = '....';
  return htmlString ;
}

Risorse collegate:


GpciSetRenderGlobals

Imposta le globali di render nei filtri contenuto.

Parametri

  1. $params - array associativo o array vuoto - chiave dell'array $GLOBALS['gpci']['render'] e valore da impostare. Se array vuoto i valori della globale saranno impostati ai valori base - default:[]

Return

Nulla.

Valori base

I valori prima e dopo l'esecuzione della funzione (quindi esterni ai filtri contenuto)

$GLOBALS['gpci']['render']['current_hook'] = '';
$GLOBALS['gpci']['render']['pre_render'] = null;
$GLOBALS['gpci']['render']['parsed_block'] = [];
$GLOBALS['gpci']['render']['parent_block'] = null;
$GLOBALS['gpci']['render']['source_block'] = [];
$GLOBALS['gpci']['render']['block_content'] = '';
$GLOBALS['gpci']['render']['block'] = [];
$GLOBALS['gpci']['render']['instance'] = null;
$GLOBALS['gpci']['render']['postId'] = 0;
$GLOBALS['gpci']['render']['postType'] = false;
$GLOBALS['gpci']['render']['commentId'] = '0';
$GLOBALS['gpci']['render']['query'] = [];
$GLOBALS['gpci']['render']['page '] = 0;

Notare che il framework imposta a priorità 0, tramite questa funzione, le proprie globali di render per alcuni contesti interni e per rendere disponibili le globali nella conversione dinamica. Saranno resettate a priorità 101.

Esempi

//inserisce nella globale i valori del blocco corrente più quelli di contesto
GpciSetRenderGlobals( [
  'block'     => $block,
  'instance'  => $instance,
  'postId'    => $instance->context['postId'] ?? 0,
  'commentId' => $instance->context['commentId'] ?? '0'
] );

//imposta i valori ai predefiniti (hook render_block priorità 101)
GpciSetRenderGlobals();

Altre risorse collegate:


GpciHtmlQuery

Esegue una query in formato css su una stringa html utilizzando php HTMLDocument. Se non esiste verrà auto incluso e utilizzato symphony CssSelector Component.

Parametri

  1. $html - stringa html su cui eseguire la query - default:''
  2. $query - stringa - query in formato css - default:'*'
  3. $args- array associativo - argomenti aggiuntivi - default:[]

Return

Array contenente il dom inizializzato e i nodi trovati dalla query.

Esempi

//inserisce i nomi validi del form nella globale inerente
list( $dom, $nodes ) = GpciHtmlQuery( $block_content, '[name]' );
$names = [];
foreach( $nodes as $node ){
  if( $node->hasAttribute( 'name' ) ){
    $name = $node->getAttribute('name');
    if( !in_array( $name, $names ) ){ $names[] = $node->getAttribute('name'); }
  }
}
$GLOBALS['gpci']['forms'][$id]['ValidNames'] = $names;

//modifica anche l'html rimuovendo i nodi da cifrare
if( $node->hasAttribute( 'data-to-encrypt' ) ){
  $EncryptedData[$name] = $node->getAttribute('value');
  $node->parentNode->removeChild( $node );
}
$block_content = $dom->saveHTML();

//ordina i nodi per profondità (più profondi prima)
list( $dom, $nodes ) = GpciHtmlQuery( $html, $query, $args[ 'order'=>'depth' ] );

Documentazione rilevante:


gpci_block_core_comment_template_render_comments

Copia della funzione interna wordpress block_core_comment_template_render_comments definita nel file comment-template.php. Aggiunge l'id del commento corrente alla globale $GLOBALS['comment']. Verrà rimossa quando la modifica verrà integrata nel core in quanto le variabili di contesto sono disponibili soltanto nell'hook render_block e accedere ai commenti direttamente tramite php è molto più comodo in questo framework.

Documentazione rilevante:


gpci_render_block_core_post_template

Copia della funzione interna wordpress render_block_core_post_template definita nel file post-template.php. Aggiunge le informazioni alla variabile di contesto blocco CurrentQuery. Verrà rimossa quando le modifiche verranno integrate nel core in quanto non ho trovato altri modi semplici e puliti per ottenere le informazioni sulle queries (come indice del post corrente, numero di posts trovati, ecc...)

Documentazione rilevante:


GpciFormAction

Esegue un'azione su un form ajax o php. Creata per non ripetere il codice quando il form è inviato via php o ajax. I controlli servono perlopiù a verificare che il client non abbia modificato l'html prima di inviarlo.

Parametri

  • $action - stringa - azione da eseguire
  • $FormAttrs - array - attributi del blocco gutenberg gpci/form
  • $args - array - argomenti aggiuntivi richiesti dall'azione

Return

In base all'azione: nulla per le azioni sanitize e CopyToSession, stringa oppure true per le azioni CheckValidNames e CheckRequireds. In quest'ultimo caso la stringa sarà un messaggio di errore mentre true indica che tutti i campi inviati sono ok.

Azioni

- sanitize

Sanifica la superglobal $_GET o $_POST in base al metodo di invio e alle sanificazioni selezionate nel blocco gutenberg. Se richiesta una sanificazione di tipo auto $_FILES sarà sanificato automaticamente indipendentemente dal method.

$args

Nessuno.

Esempi
GpciFormAction( 'sanitize', $block_attributes, [] );
- CheckValidNames

Controlla che tutti i names siano validi nella superglobale di invio del form.

$args

  • ValidNames - array - default:[] - array di nomi validi
Esempi
$CheckValidNames = GpciFormAction( 'CheckValidNames', $block['attrs'], [ 'ValidNames'=>$ValidNames ] );
if( is_string( $CheckValidNames ) ){ return ErrorMessage( $ErrorOrigin, $CheckValidNames, false, true ); }
- CheckRequireds

Controlla che tutti i names required siano presenti e non siano vuoti.

$args

  • RequiredNames - array - default:[] - array di nomi required
Esempi
$CheckValidNames = GpciFormAction( 'CheckValidNames', $block['attrs'], [ 'ValidNames'=>$ValidNames ] );
if( is_string( $CheckValidNames ) ){ return ErrorMessage( $ErrorOrigin, $CheckValidNames, false, true ); }
- CheckValidValues

Controlla che tutti i campi supportati abbiamo un valore valido.

$args

  • ValidValues - array - default:[] - array di valori validi per ogni campo
Esempi
$CheckValidValues = GpciFormAction( 'CheckValidValues', $block['attrs'], [ 'ValidValues'=>$ValidValues ] );
if( is_string( $CheckValidValues ) ){ return ErrorMessage( $ErrorOrigin, $CheckValidValues, false, true ); }
- CopyToSession

Dopo le sanificazioni copia in sessione il contenuto della richiesta GET o POST.

$args

Nessuno.

Esempi
GpciFormAction( 'CopyToSession', $block_attributes, [] );

Risorse collegate:


GpciSchemaAction

Esegue un'azione riguardanti i dati strutturati ma ottimizzata per gli hooks e le procedure interne. E' pensata per semplificare l'aggiunta di dati strutturati da campi personalizzati e specificando solo una volta le proprietà direttamente nei cicli query. Usata internamente nel costruttore schema del blocco gutenberg gpci/head.

Parametri

  • $action - stringa - azione da eseguire
  • $args - array - argomenti aggiuntivi richiesti dall'azione

Return

In base all'azione.

Azioni

- GlobalToHead

Genera gli script schema dalla globale $GLOBALS['gpci']['headTags']['schema']. Se l'elemento ha una chiave di tipo stringa (schema costruttore) verrà usata come id/nome dello script, altrimenti lo script sarà generico (schema generico). Non ritorna nulla in quanto l'azione farà un echo del contenuto direttamente.

$args

Nessuno.

Esempi
//hook wp_head
GpciSchemaAction( $action='GlobalToHead', [] );
- ArrayToJson

Genera la stringa json da un array rappresentante le proprietà costruita con json_encode. Questa azione è specifica per il costruttore schema. Ogni proprietà del costruttore (che sarà sempre un array contenente valore effettivo e opzioni aggiuntive come la rimozione di apici) sarà valutata in base alle opzioni, al valore e al risultato della funzione json_encode. I tags html saranno rimossi tramite la funzione wp_strip_all_tags mantenendo eventuali a capo.

Ritorna la stringa json comprese le parentesi graffe di apertura e chiusura.

$args

  • props - array - array da convertire (comprendente le opzioni del costruttore)
Esempi
$json = GpciSchemaAction( 'ArrayToJson', [ 'props'=>$value ] );

GpciVirtualPosts

Ritorna posts virtuali pre mappati nei contesti in cui posso essere selezionati semplicemente (pagina impostazioni ajax azioni su query e blocco gutenberg gpci/query-loop).

Parametri

  • $type - stringa
  • $args - array - argomenti aggiuntivi richiesti dall'azione

Return

Array di posts virtuali

$Type

- FolderActionFiles

Post virtuali mappati da files in una cartella di partenza secondo questa tabella:

Descrizione/campoCampo filtrabile
Nome file senza estensionepost_title
Nome file con estensionepost_name
Mime completopost_mime_type
Data modifica file convertito in sqlpost_modified
Contenuto file (se umanamente leggibile e quindi filtrabile)post_content
Grandezza file in bytesize
Larghezza immagine (0 se non applicabile)width
Altezza immagine (0 se non applicabile)height
Estensione fileextension

$args

Nessuno.

Esempi
$VirtualPostsType = 'FolderActionFiles';
$query['virtual_posts'] = GpciVirtualPosts( $VirtualPostsType, [ 'folder'=>'wp_upload', 'posts_per_page'=>$query['offset'], 'offset'=>$query['offset'] ] );

GpciReturnValueOnConditions

Ritornerà il valore in base a eventuali condizioni contenute.

Parametri

  • $value - qualsiasi - valore da processare - default: null

Return

Il valore dopo essere stato processato in questo modo:

  1. se il valore non è un array la funzione ritornerà il valore originale
  2. se ci sono condizioni da controllare le processa, e ritorna il resto dell'array come valore (null se il controllo non passa)

Esempi

$value = [
           'conditions' => [
             'operator'=>'OR',
               [ 'condizione1' => 'condizione1' ],
               [ 'condizione2' => 'condizione2' ]
           ],
           'value' => 'Valore!'
]
​
//da funzione php GetConfig
if( $process_conditions === true ){ $value = GpciReturnValueOnConditions( $value ); }

GpciCheckShortcodesAndOutput (RIMUOVERE!)

Controlla se ci sono shortcodes in una stringa e la ritorna con gli shortcodes eseguiti. Quando la funzione è utilizzata nella conversione dinamica viene eseguita prima di convertire il valore al tipo scelto.

Parametri

  • string - stringa

Return

Stringa con eventuali shortcodes convertiti.

Esempi

$content = GpciCheckShortcodesAndOutput( $content );

Risorse collegate:


GpciValueIterable

Converte il valore a stringa iterabile.

Parametri

  • data - stringa - contenuto da convertire - default:''
  • nesting - stringa - chiavi dell'array separate da una virgola, se -1 non ci sarà nesting - default:'-1'

Return

Contenuto convertito.

Esempi

$data = GpciValueIterable( $data, $nesting='chiave,sottochiave', $readable=true );

Risorse collegate:


GpciAjaxAction

Esegue le operazioni interne ajax:

  • sovrascrive le superglobali
  • filtra i dati
  • imposta/resetta $GLOBALS['gpci']['ajax']['current_args']
  • esegue le queries dalla pagina impostazioni

Parametri

  • $action - stringa - azione da eseguire
  • $args - array associativo - argomenti dell'azione - default:[]

Return

in base all'azione.

Esempi
//sovrascrive GET o POST con i dati decifrati (per i controlli nel form)
GpciAjaxAction( 'MergeDecryptedDataWithMethod', [ 'DecryptedData'=>$DecryptedData ] );

//setta la globale che contiene gli argomenti utilizzabili
GpciAjaxAction( 'SetCurrentArgs', [ 'data'=>$DecryptedData, 'UnsetDefaultData'=>true ] );

Altre risorse collegate:


GpciMetaboxAction

Esegue operazioni php specifiche chiamate direttamente da una metabox.

Parametri

  • $action - stringa - azione da eseguire
  • $args - array associativo - argomenti dell'azione - default:[]

Return

in base all'azione.

Esempi
GpciMetaboxAction( 'gpci_core_options_ajaxactions' )

$meta_boxes[$k]['fields'] = GpciMetaboxAction( 'conditions_to_fields', [ 'fields'=>$meta_box['fields'] ] );

Altre risorse collegate:


GpciGetSubArrays

Ottiene i sotto arrays da un array contenitore (per le configurazioni da filtrare). La funzione si comporta in questo modo:

  • se il contenitore è un oggetto lo converte ad array
  • se il contenitore non è un array ritorna un contenitore vuoto
  • rimuove i sotto arrays vuoti o senza chiave numerica
  • filtra i sotto arrays tramite la query
  • reindicizza il contenitore
  • ritorna secondo gli argomenti inerenti

Parametri

  1. container - array/oggetto - array contenitore - default: []
  2. query - array associativo - queries da eseguire. La chiavi saranno cercate nei sotto arrays. I valori possono essere:
    - EXISTS (o non specificato)
    - NOT EXISTS
    - IN (in formato array IN/valori)
    - NOT IN (in formato array IN/valori)
    - default: []
  3. args - array associativo - argomenti dell'azione - default:[]
    - get - stringa/numero intero - quale/i elementi da ottenere dopo la query: * ritornerà tutto l'array filtrato, first o 0 il primo elemento, last l'ultimo elemento, altro numero il sotto array con l'indice corrispondente - default: *
    - return - stringa - cosa ritornare: container per il contenitore filtrato, single per l'elemento singolo etratto dal contenitore (il contenitore deve contenere solo un elemento, altrimenti ritornerà un array vuoto), indexes per gli indici originali- default: container
    - same_id_maintain - stringa - cosa mantenere in caso di id dupicati (solo se il return è un container): * per tutti, last per mantenere solo l'ultimo- default: *

Return

Array vuoto/filtrato o elemento singolo.

Esempi
$container = [
               [
                 'id'       => 'lavoro1',
                 'function' => 'funzione1'
               ],
               [
                 'id'       => 'lavoro2',
                 'function' => 'funzione2'
               ],
               [
                 'id'       => 'lavoro3',
                 'function' => 'funzione3'
               ]
];

//ottiene un contenitore vuoto
$container = GpciGetSubArrays( $container, $query=[ 'chiave_non_esistente' ] );

//contenitore con tutti gli elementi
$container = GpciGetSubArrays( $container, $query=[ 'id' ] );
//stessa cosa di
$container = GpciGetSubArrays( $container, $query=[ 'id'=>'EXISTS' ] );

//contenitore vuoto
$container = GpciGetSubArrays( $container, $query=[ 'id'=>'NOT EXISTS' ] );

//contenitore contenente gli arrays con id=lavoro1 e id=lavoro3
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'IN'=>['lavoro1','lavoro3'] ] ] );

//contenitore contenente l'array con id=lavoro2
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'NOT IN'=>['lavoro1','lavoro3'] ] ] );

//contenitore contenente l'array con id=lavoro2
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'IN'=>['lavoro2','lavoro3'] ] ], $args=[ 'get'=>'first' ] );
//stessa cosa di
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'IN'=>['lavoro2','lavoro3'] ] ], $args=[ 'get'=>0 ] );

//contenitore contenente l'array con id=lavoro3
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'IN'=>['lavoro2','lavoro3'] ] ], $args=[ 'get'=>'last' ] );

//ottiene il sotto array singolo senza il contenitore
$container = GpciGetSubArrays( $container, $query=[ 'id'=>[ 'IN'=>['lavoro2','lavoro3'] ] ], $args=[ 'get'=>'last', 'return'=>'single'] );

//ottiene gli indici originali, ossia: [1]
$container = GpciGetSubArrays( $container, $query=[ 'id'=>'lavoro2' ], $args=[ 'return'=>'indexes' ] );

//in caso di id duplicati nel contenitore mantiene solo l'ultimo elemento elimininado tutti gli altri
$container = GpciGetSubArrays( $container, $query=[ 'id'=>'lavoro2' ], $args=[ 'return'=>'container', 'same_id_maintain'=>'last' ] );

Risorse collegate:


GpciInternalAction

Esegue un'azione interna. Sostituirà tutte le altre funzioni interne che ha senso spostare qui.

Parametri

  • action - stringa - azione da eseguire
  • args - array associativo - argomenti dell'azione - default:[]

Return

in base all'azione.

Azioni

SetAjaxArgs

Filtra gli argomenti dell'azione ajax corrente e li inserisce nella globale php $GLOBALS['gpci']['ajax']['current_args'].

Esempi
GpciInternalAction( 'SetAjaxArgs', [ 'DecryptedData'=>$DecryptedData ] );

Risorse collegate:

Funzioni nei moduli

Le seguenti funzioni sono solitamente nel file callbacks.php relativo il modulo.

GpciUpdatePrintCss - modulo stampa

Crea o aggiorna (se modificato) il file style-print.css del tema child partendo dal file style.css ed effettuando le seguenti sostituzioni tramite php:

Stringa originaleDiventa
max-width:781pxmax-width:209mm
@media screen and (min-width:782px) and (max-width:1279px)@media print and (min-width:210mm) and (max-width:296mm)
min-width:1280pxmin-width:297mm
@media screen and (min-width:782px)@media print and (min-width:210mm)
  • sostituisce max-width:781px con

Parametri

Nessuno.

Return

Nulla.

Usata in

  • hook customize_save_after
  • hook post_updated