# PHP Built-In Functions

Le Built-In functions di DiviChild sono delle funzioni che estendono il normale funzionamento di Divi.
Queste funzioni sono di fatto dei blocchi di codice attivabili attraverso il file di configurazione del tema.

Le Built-In functions possono essere usate senza scrivere una riga di codice in quanto sono pensate per "agganciarsi" agli hook del tema parent o per essere usate come shortcode in template custom realizzati anche con il builder di Divi.

Per uno sviluppo più avanzato, basato su file template realizzati in PHP, è possibile usare le Built-In functions direttamente nel codice.

Attenzione!

Le Built-In functions devono essere attivate dal file di configurazione solo se si intende utilizzarle come estensione del tema (funzione automatica), e se si vuole utilizzare lo shortcode.
L'uso delle funzioni PHP è invece sempre disponibile.

Override dei template

È possibile overridare i template delle Built-In functions inserendo i template all'interno della directory template-parts/built-in-functions/.
È fondamentale che i file dei template mantengano sempre lo stesso nome!

# Next and Prev Navigation

Questa funzione permette di caricare automaticamente una navigazione next and prev a tutti i post (custom post inclusi) con thumbnail e titolo dei post in navigazione.

# Attivazione

Per attivare questa funzione sono disponibili due parametri nel file di configurazione

$theme_config->builtin_functions->next_and_prev->active = true;

Attiva la funzione mostrando automaticamente la navigazione nel template single.php di Divi legandola all'hook et_after_post.

$theme_config->builtin_functions->next_and_prev->add_shortcode = true;

Attiva lo shortcode per mostrare la navigazione da usare nei template costruiti attraverso il Builder di Divi.

# Parametri

La Built-In function accetta un parametro (la misura dell'immagine) che è possibile passare attraverso file di configurazione. Il parametro, di tipo srtringa, è thumbsize e ha come valore di default "thumbnail". I valori accettati per questo parametro sono tutti i nomi delle misure dei media definite in WP nel tema.

$theme_config->builtin_functions->next_and_prev->thumbsize = "thumbnail";

# Shortcode

Lo shortcode per questa funzione è [next_and_prev_navigation]

Param: thumb_size

  • Type: string
  • Default: "thumbnail"
  • Accepted: uno dei nomi delle misure dei media definite in WP nel tema

# Funzioni PHP

Questa Built-In function rende disponibili alcune funzioni da poter usare nei template PHP.

# diviChild__post_getPrevNext($thumb_size)

Questa funzione ritorna un oggetto contenente i due articoli (prev e next).

Param: $thumb_size

  • Type: string
  • Default: "thumbnail"
  • Accepted: uno dei nomi delle misure dei media definite in WP nel tema

Di seguito la mappatura dell'oggetto restituito dalla funzione:

$next_and_prev = (object) [
    "previous_post" => (object) [
        "ID" => 00, // int
        "title" => "Titolo del post", // string
        "thumbnail" => "<img src...>", // html
        "permalink" => "https://..." // string
    ],
    "next_post" => (object) [
        "ID" => 00, // int
        "title" => "Titolo del post", // string
        "thumbnail" => "<img src...>", // html
        "permalink" => "https://..." // string
    ]
];

# diviChild__renderNextAndPrevTemplate()

Questa funzione prende i dati forniti dalla funzione diviChild__post_getPrevNext() e monta il template della navigazione attraverso la funzione get_template_part di WordPress.

# Template (View)

Il template HTML della navigazione è:
includes/core/built-in-function/views/next-and-prev-nav.php

All'interno del template, i dati dei post next and prev, restituiti dalla funzione diviChild__post_getPrevNext(), sono disponibili nell'oggetto chiamato $nav

# Numeric Pagination (solo per archivi)

Questa funzione permette di caricare una navigazione numerica (con i numeri delle pagine) negli archivi.
Attualmente utilizza un markup ispirato a Bootstrap (ricordate che Bootrap non è incluso nel tema child) che però al momento è hardcoded 😦 nella funzione.

Purtroppo, per via di come è integrata la paginazione di default del tema parent Divi, non è possibile utilizzare questa funzione senza fare override dei file del tema parent.

# Come utilizzare la paginazione numerica

Prima di tutto si dovrà decidere come procedere per l'override della funzione nativa del tema parent e questo dipende dalla natura del progetto che state sviluppando. Le strade principali sono due:

  • Override completo del file di archivio (scelta migliore per chi sta sviluppando dei template custom)
  • Override della navigazione nativa di Divi

# Override della nagivazione di Divi

Creare all'interno della cartella del tema Divi-Child/includes/ un file di nome navigation.php e inserire al suo interno le seguenti righe

<?php
diviChild__numeric_pagination();

# Shortcode

Lo shortcode per questa funzione è [numeric_pagination]

Per attivare lo shortcode:

$theme_config->builtin_functions->numeric_pagination->add_shortcode = true;

# Mobile Fixed Bottom Bar

Attenzione!

Dalla versione 5.0.0 il parametro di attivazione di questa funzione è stato modificato.
Il vecchio parametro non è quindi più attivo!

Questa funzione permette di attivare una barra fixed al bottom visibile solo da mobile. Questa feature è molto utile per i siti di hotel ma può essere usata per varie esigenze.

Questa funzione utilizza l'hook et_after_main_content del tema parent Divi

Per attivare questa funzione attivarla attraverso l'apposito parametro di configurazione:

$theme_config->builtin_functions->mobile_fixed_bottom_bar->active = true;

# Template (View)

Il template HTML della navigazione è:
includes/core/built-in-function/views/mobile-fixed-bottom-bar.php

Il file SCSS pronto all'uso è: sass/custom/_mod__mobile-fixed-bottom-bar.scss

# Shortcode

Lo shortcode per questa funzione è [mobile_fixed_bottom_bar].
Questo shortcode non prevede parametri.

Lo shortcode deve essere attivato nel file di configurazione.

$theme_config->builtin_functions->mobile_fixed_bottom_bar->add_shortcode = true;

# Color Scheme Switch

Questa funzione permette di caricare uno switch per cambiare lo schema colori a prescindere dalle impostazioni del sistema operativo / browser.

Questa funzione non permette un'attivazione automatica ma fornisce soltanto una funzione PHP e/o uno shortcode.

# Shortcode

Per attivare lo shortcode è necessario attivare il parametro nel file di configurazione:

$theme_config->builtin_functions->color_scheme_switch->add_shortcode = true;

Lo Shortcode da utilizzare è [color_scheme_switch]

# Funzione PHP

diviChild__color_mode_switch();