Skip to content

dci_get_breadcrumb_label per costruzione etichetta breadcrumb ha parti letterali #489

@mfrasca

Description

@mfrasca

Prerequisiti

Descrivi il problema

Mi trovo con un progetto ancora praticamente vuoto, entro nella pagina "Documenti e Dati", provo a seguire una delle categorie già presenti. Sono perplesso sul codice della funzione:

/**
 * restituisce label per costruzione breadcrumb
 * @param $name
 * @param string $type
 * @return mixed|string
 */
function dci_get_breadcrumb_label($name , $type = 'term') {
    $terms = array(
        'comunicato stampa' => 'Comunicati',
        'news' => 'Notizie',
        'avviso' => 'Avvisi'
    );

    if ($terms[$name]) {
        return $terms[$name];
    }

    return ucfirst($name);
}

Secondo me il codice va migliorato, per due motivi, ed inizio da quello più semplice. Il test logico sulla presenza del $name nell'array $terms così com'è scritto mi causa un warning per ogni valore fuori dai tre previsti nel codice. Si potrebbe migliorare aggiungendo un isset al test logico:

    if (isset($terms[$name])) {
        return $terms[$name];
    }

Però quello che davvero mi lascia perplesso è la presenza letterale (hard-coded) dell'array $terms, che a mio vedere andrebbe levato e riformulato come colonna extra nella base dati. In pratica qui vogliamo tradurre un nome in un testo breve da includere fra i breadcrumb, probabilmente dal singolare al plurale, probabilmente abbreviando. Secondo me è una operazione simile alla creazione (che non facciamo in automatico!) dello slug corrispondente al nome, e direi che andrebbe fatta aggiungendo una colonna alla tabella di database dove sono questi nomi e dove l'amministratore può aggiungere nomi, con slug e descrizioni.

Ci manca di offrire all'amministratore di definire il breadcrumb_name.

Includi link o screenshot

No response

Su quale sisitema operativo stai riscontrando il problema?

Linux

Su quale browser stai riscontrando il problema?

Firefox

Che versione del tema stai utilizzando?

1.12.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions