Ricerche recenti


Nessuna ricerca recente

Mauro Codella's Avatar

Mauro Codella

Data ingresso 14 apr 2021

·

Ultima attività 16 ott 2021

Seguiti

0

Follower

0

Attività totali

2

Voti

0

Abbonamento

1

PANORAMICA ATTIVITÀ

Ultima attività di Mauro Codella

Mauro Codella ha creato un articolo,

ArticoloCome usare Guide per il centro assistenza

Disponibile in tutti i piani Suite Growth e superioriDisponibile in tutti i piani Guide

Questo articolo include i seguenti argomenti:

Introduzione

Ogni tema del centro assistenza è costituito da una raccolta di modelli di pagina modificabili che definiscono il layout dei diversi tipi di pagine nel centro assistenza. Ad esempio, è presente un modello per gli articoli della Knowledge base, un modello per l’elenco delle richieste e così via.

Ogni modello è composto da una combinazione di markup HTML ed espressioni simili a Handlebars, identificabili nel modello da doppie parentesi graffe. Handlebars è un semplice motore di creazione di modelli che consente di inserire o modificare il contenuto di una pagina in fase di rendering anziché in fase di progettazione.

Il linguaggio di creazione dei modelli nel centro assistenza si chiama Curlybars e implementa un ampio sottoinsieme del linguaggio Handlebars. Questa guida mostra come usare la lingua per personalizzare le pagine nel centro assistenza.

Il centro assistenza fornisce helper e proprietà con nome per personalizzare i contenuti. Alcuni sono condivisi e disponibili in tutte le pagine del centro assistenza. Gli altri sono specifici della pagina.

Esempio

{{#each comments}}
  
  • Avatar
    {{author.name}}
  • {{/each}}

    L’esempio genera un elenco di utenti che hanno lasciato commenti sulla pagina. Il each l’helper scorre ogni valore nella pagina comments proprietà. Per ogni commento, i valori di author.avatar_url e author.name vengono inserite nell’HTML.

    Nota: Prima di apportare modifiche personalizzate al centro assistenza, dedica qualche minuto a consultare il suggerimento di assistenza Come evitare tempi di caricamento scadenti nel centro assistenza seguendo le best practice di Jake Bantz.

    Nozioni di base sui modelli

    Questa sezione presenta gli elementi costitutivi necessari per scrivere qualsiasi modello. Per maggiori informazioni, consulta Modelli per Centro assistenza all’indirizzo developer.zendesk.com.

    Un modello Curlybars è composto da due elementi: il testo da visualizzare alla lettera e le espressioni Curlybars. Ciò implica che anche un modello vuoto è valido e anche un modello contenente solo testo. Ad esempio, il seguente è un modello valido:

    Article

    Some details on the article

    Ovviamente, se i modelli del centro assistenza supportano solo il testo letterale, non potresti personalizzarli al momento del rendering. Per aggiungere la logica dei modelli, sono necessarie le espressioni Curlybars, che sono racchiuse tra parentesi graffe doppie({{ e }}).

    Per aggiungere la logica del modello all'esempio precedente, puoi modificare il modello come segue:

    Article

    Some details on the article

    {{article.author.name}}

    Le sezioni seguenti spiegano come scrivere espressioni valide per apportare modifiche significative al modello.

    Tieni presente che l’annidamento di una coppia di curl all’interno di un’altra coppia di curl non è una sintassi valida. Ad esempio, quanto segue non è consentito:

    Article

    Some details on the article

    {{ {{ ... }} }}

    Commenti

    Ci sono situazioni in cui potrebbe essere utile avere delle note nel modello che non vengono inserite nella pagina visualizzata. A tale scopo, Curlybars permette di aggiungere commenti mettendo un punto esclamativo subito dopo i ricci di apertura, senza spazi: {{! ... }}. Puoi usare questa sintassi per aggiungere un commento di codice nell’esempio:

    {{!
      This template aims to
      show details of an article
    }}
    
    

    Article

    Some details on the article

    Ecco cosa viene inviato al browser dopo il rendering della pagina:

    Article

    Some details on the article

    L’effetto di scartare qualsiasi cosa all’interno dei commenti può tornare utile durante lo sviluppo di un modello. Ti consigliamo di aggiungere dei commenti al codice per eseguire controlli, debug e altro.

    Blocca commenti

    Purtroppo, la sintassi dei commenti descritta finora non è adatta per aggiungere commenti al codice Curlybars. Per aggiungere commenti al codice Curlybars, usa la seguente sintassi: {{!-- ... ---}}. Questo tipo di commento può estendersi su più righe e commentare il codice in modo efficace. Esempio:

    {{!
      This template aims to
      show details of an article
    }}
    
    

    Article

    Some details on the article

    {{!-- I want to commend out the following code: {{ ... some Curlybars expressions }} --}}

    Il modello qui sopra viene visualizzato come segue:

    Article

    Some details on the article

    Valori letterali

    Per includere valori che Curlybars interpreta esattamente come sono stati scritti, supporta il concetto di letterali. Un valore letterale può rappresentare 3 tipi di valori: a string, a booleano a number.

    Per esprimere una stringa, puoi usare sia virgolette singole che doppie, ma non possono essere mischiate. Ad esempio, 'this is a valid string', "this is valid as well", ma "this is not valid'.

    Un numero può essere qualsiasi numero intero positivo o negativo. 123 è un numero positivo valido, +123 rappresenta lo stesso valore, 00123 è ancora valido, e -123 è valido.

    Un valore booleano è rappresentato da true e false. Non sono consentite altre varianti. Ad esempio, TRUE e FALSE non sono interpretati come booleani in Curlybars.

    Puoi renderizzare i valori letterali. Esempio:

    A string: {{ 'hello world' }}
    A boolean: {{ true }}
    A number: {{ 42 }}
    

    Il rendering della pagina è il seguente:

    A string: 'hello world'
    A boolean: true
    A number: 42
    

    Proprietà

    Ogni modello nel centro assistenza ha accesso a un contesto che rappresenta i dati del centro assistenza. Ad esempio, il modello Pagina articolo ha un oggetto denominato article che espone la struttura dell’articolo richiesto dagli utenti. Per tutte le proprietà che puoi usare nei tuoi modelli, consulta Modelli del Centro assistenza all’indirizzo developer.zendesk.com.

    Usa la notazione con i punti per ricavare informazioni specifiche da questi oggetti. Un semplice esempio: article.title.

    Il nome completo di una proprietà viene talvolta chiamato percorso. Ad esempio, name è una proprietà nel author oggetto, ma article.author.name è il suo percorso.

    Puoi visualizzare il valore di una proprietà racchiudendolo tra parentesi graffe doppie. Tornando all’esempio, potresti voler stampare il nome dell’autore in un paragrafo separato:

    Article

    Author: {{article.author.name}}

    Supponiamo che un utente desideri vedere un articolo scritto da un agente di nome John Venturini. Il rendering del modello sarà il seguente:

    Article

    Author: John Venturini

    Potresti anche voler rendere l’articolo stesso. Il article l’oggetto ha a body che contiene il contenuto dell’articolo. Per visualizzare il corpo dell’articolo, devi modificare il modello come segue:

    Article

    Author: {{article.author.name}}

    {{article.body}}

    Condizionali

    Oltre al rendering dei valori delle proprietà, il linguaggio di creazione di modelli consente di aggiungere la logica di rendering condizionale ai modelli.

    Ad esempio, potresti voler eseguire il rendering di un frammento di codice HTML nel caso in cui l’articolo richiesto sia interno. Il contesto della pagina dell’articolo ha un article.internal proprietà restituita true se l’articolo è interno e false in caso contrario.

    Puoi creare un if blocco con queste informazioni. Il if l’espressione deve specificare una condizione vera o falsa. Il risultato determina se il contenuto del blocco viene visualizzato o meno. Ecco la sintassi di base:

    {{#if condition}}
      This is rendered if the condition is true.
    {{/if}}
    

    Puoi modificare il modello di esempio come segue:

    Article

    {{#if article.internal}}

    This article is internal.

    {{/if}}

    Author: {{article.author.name}}

    {{article.body}}

    Potresti voler eseguire il rendering di un blocco quando la condizione è falsa. In tal caso, usa un file unless blocco. La sintassi è simile a quella di if blocco:

    {{#unless condition}}
      This is rendered if the condition is false.
    {{/unless}}
    

    Tornando all’esempio, supponiamo di voler eseguire il rendering di un messaggio anche quando un articolo non è interno. Puoi modificare il modello come segue:

    Article

    {{#if article.internal}}

    This article is internal.

    {{/if}} {{#unless article.internal}}

    This is a publicly visible article!

    {{/unless}}

    Author: {{article.author.name}}

    {{article.body}}

    Questo tipo di logica condizionale, "se true, fai questo oppure fai quest'altro" - viene in genere gestito da un'istanza if-else blocco. La sintassi è la seguente:

    {{#if condition}}
      This is rendered if the condition is true.
    {{else}}
      This is rendered if the condition is false.
    {{/if}}
    

    Puoi modificare l’esempio come segue:

    Article

    {{#if article.internal}}

    This article is internal.

    {{else}}

    This is a publicly visible article!

    {{/if}}

    Author: {{article.author.name}}

    {{article.body}}

    Il unless blocco ha anche l’estensione unless-else variante. Puoi usarlo per ottenere gli stessi risultati di un if-else blocco:

    Article

    {{#unless article.internal}}

    This is a publicly visible article!

    {{else}}

    This article is internal.

    {{/unless}}

    Author: {{article.author.name}}

    {{article.body}}

    Modalità di valutazione delle condizioni

    Una condizione è in genere una proprietà del centro assistenza, come article.internal, con valore booleano true o false. Alcune proprietà non hanno valori booleani. Queste proprietà vengono valutate come segue:

    • Se il valore è un numero, allora 0 è falso e qualsiasi altro numero è vero

    • Se il valore è una stringa, una stringa vuota è falsa e qualsiasi altra stringa è vera

    • Se il valore è una raccolta di oggetti, una raccolta vuota è falsa e qualsiasi altra raccolta è vera

    • Se il valore è null, l’espressione è false

    Supponiamo di voler impostare una logica condizionale per il controllo dei numeri. La pagina degli articoli ha un article.comment_count contenente il numero totale di commenti in un articolo. Puoi usare il if condizione per verificare se il conteggio non lo è 0 e visualizza un messaggio allegro. Esempio:

    Article

    Author: {{article.author.name}}

    {{article.body}}
    {{#if article.comment_count}}

    Yahoo! This article has got some comments!

    {{/if}}

    Ritaglio dello spazio bianco

    Quando Curlybars elabora un modello, visualizza il testo alla lettera così com’è. Va bene e funziona bene la maggior parte delle volte. Tuttavia, a volte è necessario avere maggiore controllo sui caratteri vuoti accanto a un'espressione. Prendi ad esempio il codice seguente:

    Click me!
    

    Rende il seguente codice HTML when highlighted è vero:

    Click me!
    

    Intorno alla parola evidenziatasono presenti uno spazio iniziale e uno finale. Ovviamente funziona correttamente, ma supponiamo che tu voglia mantenere gli spazi nel modello senza renderizzarli. Puoi usare il carattere tilde (~).

    Aggiungendo una tilde nelle parentesi graffe di apertura o chiusura, si riducono gli spazi vuoti dal testo incluso. Esempio:

    Click me!
    

    I caratteri tilde rifilano gli spazi iniziali e finali intorno alla parola e evidenziano:

    Click me!
    

    Il carattere tilde taglia qualsiasi carattere vuoto che non ha una rappresentazione grafica ma influisce sulla spaziatura o sulle linee divise, come i nuovi a capo, i caratteri di tabulazione, i ritorni a capo, gli avanzamenti di riga, gli spazi semplici o i caratteri di tabulazione. Ciò significa che puoi portare l’esempio all’estremo ed esprimere il precedente if bloccare su più righe per renderlo più leggibile. Esempio:

    Click me!
    

    Il rendering è ancora il seguente:

    Click me!
    

    Questi esempi non hanno molto senso nella realtà, ma l'efficacia dell'uso del carattere tilde può variare da caso a caso.

    Aiutanti

    L’accesso ai dati, la loro visualizzazione e l’aggiunta di logica condizionale possono essere tutto ciò che serve in alcuni modelli. Tuttavia, potrebbero essere utili alcune funzionalità aggiuntive. Ad esempio, potresti voler visualizzare una stringa localizzata che cambia in base alle impostazioni locali del richiedente della pagina. Oppure potresti voler troncare un lungo passaggio di testo.

    Puoi ottenere questo tipo di funzionalità nei modelli con helper. Per tutti gli helper che puoi usare nei tuoi modelli, consulta Modelli del Centro assistenza all’indirizzo developer.zendesk.com.

    Ad esempio, puoi usare un helper chiamato excerpt nel modello di pagina Articoli per troncare le stringhe. Nell’articolo di esempio, supponi di dover mostrare una versione troncata del titolo dell’articolo. Puoi farlo modificando il modello come segue:

    {{excerpt article.title characters=50}}

    Author: {{article.author.name}}

    {{article.body}}

    L’esempio qui sopra mostra che le parentesi graffe vengono usate per richiamare un helper. Il excerpt helper accetta un parametro costituito da un’espressione che si risolve in una stringa. L’helper ha un characters per specificare il numero di caratteri da conservare. Il characters l’opzione non è obbligatoria. Se non lo specifichi, viene usato un valore predefinito. Per maggiori dettagli, consulta l’ estratto in Modelli del Centro assistenza.

    La sintassi per richiamare un helper è {{ [ ...] [ ...]}}. L’unico elemento obbligatorio è il nome dell’helper. I parametri e le opzioni variano in base all’helper.

    Supponiamo ora di voler aggiornare il modello in modo da visualizzare un messaggio allegro quando l’autore si chiama Giovanni Venturini. Purtroppo non puoi usare un file if condizione per verificare se article.author.name è uguale a "John Venturini" perché if funziona solo su un’espressione. Operatori di confronto come == non sono disponibili.

    Come aggiungere una tale logica, quindi? Fortunatamente, puoi usare il is helper. Prende due parametri e ne verifica l’uguaglianza. Esempio:

    {{excerpt article.title characters=50}}

    {{#is article.author.name 'John Venturini'}}

    Cool! John Venturini is the author of this article!

    {{/is}}
    {{article.body}}

    Il frammento di codice qui sopra rende il messaggio allegro se l’autore è John Venturini. Ma cosa succede se vuoi rendere un messaggio diverso se non è lui? La buona notizia è che is può includere anche un file else come il blocco if-else istruzione. Per ripristinare il vecchio messaggio se l’autore non è John Venturini, puoi aggiungere un file else bloccare come segue:

    {{excerpt article.title characters=50}}

    {{#is article.author.name 'John Venturini'}}

    Cool! John Venturini is the author of this article!

    {{else}}

    Author: {{article.author.name}}

    {{/is}}
    {{article.body}}

    Modifica dell’ambito

    L’accesso ai dati è piuttosto semplice usando la notazione a punti, specialmente quando il percorso verso le informazioni di cui abbiamo bisogno non è troppo lungo. Esempio: article.title. In alcune circostanze, tuttavia, potresti voler accedere a una proprietà con un percorso più lungo. Esempio: article.author.name. Se vuoi, puoi usare percorsi più lunghi nei modelli. Ad esempio, puoi aggiungere il nome dell’autore e l’avator nell’esempio come segue:

    {{excerpt article.title characters=50}}

    Author's avatar {{#is article.author.name 'John Venturini'}}

    Cool! John Venturini is the author of this article!

    {{else}}

    Author: {{article.author.name}}

    {{/is}}
    {{article.body}}

    Il frammento di codice qui sopra funziona perfettamente, ma i percorsi delle proprietà lunghi fanno sembrare il codice un po’ disordinato. Un modo per aggirare il problema consiste nell’usare la funzione speciale with costrutto. with accetta un parametro che rappresenta il contesto di base da usare nel blocco di codice ad esso associato. La sintassi è la seguente:

    {{#with }}
       ...
    {{/with}}
    

    Puoi migliorare l’esempio come segue:

    {{excerpt article.title characters=50}}

    {{#with article.author}} Author's avatar {{#is name 'John Venturini'}}

    Cool! John Venturini is the author of this article!

    {{else}}

    Author: {{name}}

    {{/is}} {{/with}}
    {{article.body}}

    Il article.author elimina la necessità di includere article.author in qualsiasi percorso nel blocco. Quindi {{name}} all’interno del blocco è equivalente a article.author.name al di fuori del blocco.

    Non puoi usare article.author.name nel blocco perché verrebbe valutato come article.author.article.author.name. Allo stesso modo, non puoi accedere al titolo dell’articolo nel blocco con article.title perché l’oggetto article è accessibile solo nel contesto radice, che è esterno al blocco.

    Per uscire dal contesto definito da with e accedi al contesto esterno, usa l’estensione ../ notazione nel percorso. Puoi renderizzare il titolo dell’articolo all’interno del file with bloccare come segue:

    {{excerpt article.title characters=50}}

    {{#with article.author}} {{../article.title}} Author's avatar {{#is name 'John Venturini'}}

    Cool! John Venturini is the author of this article!

    {{else}}

    Author: {{name}}

    {{/is}} {{/with}}
    {{article.body}}

    Puoi usare il ../ più volte nello stesso percorso. Tornerà indietro nello stesso numero di contesti. Ad esempio, il seguente esempio funzionerà ancora come previsto:

    {{excerpt article.title characters=50}}

    {{#with article}} {{#with author}} {{../../article.title}} ... {{/with}}
    {{article.body}}

    Ti consigliamo di metterti sulla difensiva ed eseguire il rendering di un messaggio specifico ogni volta che non viene specificato l’autore. Potresti decidere di usare an if blocco per farlo, come segue:

    {{excerpt article.title characters=50}}

    {{#if article.author}} {{#with article.author}} ... {{/with}} {{else}} No author is present for this article! {{/if}}
    {{article.body}}

    Tieni presente che nel Centro assistenza article.author in realtà non è mai nullo. L’abbiamo assunto qui solo ai fini dell’esempio.

    Il frammento di codice qui sopra funziona perfettamente, ma puoi ottenere lo stesso risultato con un else blocco nel file with costrutto. Se il parametro è falso, viene eseguito il blocco else. Puoi modificare l’esempio come segue:

    {{excerpt article.title characters=50}}

    {{#with article.author}} ... {{else}} No author is present for this article! {{/with}}
    {{article.body}}

    Usando un else block rende il codice più leggibile.

    Come passare il contesto radice a un helper

    Usa il this per passare il contesto radice corrente a un helper. Supponiamo di avere a render_author helper che accetta un article oggetto come parametro per visualizzare dettagli sul suo autore. Puoi usare il this parola chiave come segue:

    {{excerpt article.title characters=50}}

    {{#with article}} {{render_author this}} {{/with}}
    {{article.body}}

    this verrà risolto come article.

    Accesso agli elementi in un array

    Alcune proprietà del centro assistenza sono costituite da array di oggetti. Ad esempio, il file attachments è composta da un array di allegati.

    Per accedere agli elementi in un array, devi scorrere ognuno di essi. Il each helper fa esattamente questo. Esempio:

    {{excerpt article.title characters=50}}

    {{#with article.author}} ... {{/with}}
    {{article.body}}
    {{#each attachments}} {{name}} ({{size}}) {{/each}}

    Il frammento di codice qui sopra elenca tutti gli allegati. Ogni elemento dell’elenco visualizza i dati specifici di un allegato, come il suo url, name, e size.

    Mi piace with, each cambia il contesto nel relativo blocco. Ciò significa che se vuoi accedere al contesto esterno, puoi usare il file ../ notazione.

    Potresti voler rendere un messaggio quando un array è vuoto. Puoi facilmente ottenere questo risultato usando un file if blocco, come segue:

    ...
    
    {{#if attachments}}
      {{#each attachments}}
        {{name}}
        ({{size}})
      {{/each}}
    {{else}}
      Sorry, no attachments available!
    {{/if}}
    

    Funziona bene, ma puoi anche usare un file else per facilitare la lettura del codice:

    ...
    
    {{#each attachments}}
      {{name}}
      ({{size}})
    {{else}}
      Sorry, no attachments available!
    {{/each}}
    

    Durata

    Ogni array ha un valore implicito length che fornisce il numero di elementi nell’array. Ad esempio, se vuoi visualizzare il numero di allegati, usa il file length proprietà come segue:

    ...
    
    There are {{attachments.length}}.
    
    {{#each attachments}}
      {{name}}
      ({{size}})
    {{/each}}

    Sottoespressioni

    Le sottoespressioni consentono di richiamare più helper all’interno di una singola espressione e di passare i risultati delle chiamate degli helper interni come argomenti agli helper esterni. Le sottoespressioni sono delimitate da parentesi.

    L’esempio seguente mostra una sottoespressione in un’espressione:

    {{search placeholder=(dc "search_text")}}

    Le sottoespressioni possono essere annidate:

    {{search placeholder=(excerpt (dc "search_text"))}}

    Le sottoespressioni possono essere usate negli helper condizionali:

    {{#if (compare collection.length "==" 0)}}
    Empty collection.

    {{else}}
    Your collection has {{collection.length}} items

    {{/if}}

    Le sottoespressioni possono essere usate negli helper degli iteratori di array:

    {{#each (slice (filter user.badges on="category_slug" equals="achievements") 
    0 4)}}


    {{name}}


    {{description}}


    {{/each}}

     

    Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.

    Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.

    Data ultima modifica: 21 giu 2024 · Mauro Codella

    9

    Follower

    0

    Voti

    0

    Commenti