Open2b versione 7.5

Tipi di dato

In questa pagina sono documentati tutti i tipi di dato e i relativi metodi usati per le variabili e nelle funzioni globali.

Tipi di dato di Scriggo

Per i tipi di dato di base di Scriggo, vedere la documentazione sui tipi di dato in Scriggo.

Indice dei tipi di dato

type AlignedImage

Il tipo AlignedImage rappresenta una immagine allineata a sinistra, al centro o a destra.

type AlignedImage struct {

    // Allineamento, può essere "left", "center" o "right".
    Align string

    // Immagine.
    Image

}

Un valore di tipo AlignedImage può essere direttamente visualizzato nell'HTML:

{{ image }}

in quanto su un valore di tipo AlignedImage si può chiamare il metodo HTML.

HTML

func (image AlignedImage) HTML() html

HTML ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.

IsZero

func (image AlignedImage) IsZero() bool

IsZero ritorna true se l'immagine non è presente.

type AncestorItem

Il tipo AncestorItem rappresenta un ancestor item.

Contiene solamente campi non esportati ma un valore di questo tipo può essere direttamente visualizzato nell'HTML:

{{ item }}

in quanto su un valore di tipo AncestorItem si può chiamare il metodo HTML.

HTML

func (item AncestorItem) HTML() html

HTML ritorna l'ancestor item in un formato adatto per essere mostrato in una pagina HTML.

type AppliedFilter

Il tipo AppliedFilter rappresenta un filtro applicato.

Contiene solamente campi non esportati ma un valore di questo tipo può essere direttamente visualizzato nell'HTML:

{{ filter }}

in quanto su un valore di tipo AppliedFilter si può chiamare il metodo HTML.

HTML

func (filter AppliedFilter) HTML() html

HTML ritorna il filtro applicato in un formato adatto per essere mostrato in una pagina HTML.

type Attribute

Il tipo Attribute rappresenta un attributo di un prodotto.

type Attribute struct {

    // Identificatore.
    ID int

    // Nome.
    Name string

    // Valori.
    Values []AttributeValue

}

type AttributeValue

Il tipo AttributeValue rappresenta un valore di un attributo.

type AttributeValue struct {

    // Descrizione.
    Description string

    // Icona.
    Icon AttributeValueIcon

    // Identificatore.
    ID int

    // Nome.
    Name AttributeValueName

    // Indirizzo.
    URL string

}

type AttributeValueIcon

Il tipo AttributeValueIcon rappresenta l'icona di un valore di un attributo. Può essere un colore oppure una immagine.

type AttributeValueIcon struct {

    // Colore in formato esadecimale.
    Color string

    // Immagine.
    Image Image

}

Un valore di tipo AttributeValueIcon può essere direttamente visualizzato nell'HTML:

{{ icon }}

in quanto su un valore di tipo AttributeValueIcon si può chiamare il metodo HTML.

HTML

func (icon AttributeValueIcon) HTML() html

HTML ritorna l'icona in un formato adatto per essere mostrato in una pagina HTML.

type AttributeValueName

Il tipo AttributeValueName rappresenta il nome di un valore di un attributo.

type AttributeValueName struct {

    // Nome.
    Value string

}

Un valore di tipo AttributeValueName può essere direttamente visualizzato nell'HTML:

{{ name }}

in quanto su un valore di tipo AttributeValueName si può chiamare il metodo HTML.

HTML

func (name AttributeValueName) HTML() html

HTML ritorna il nome in un formato adatto per essere mostrato in una pagina HTML.

Il tipo Banner rappresenta un singolo banner del sito.

type Banner struct {

    // Immagini.
    Images []BannerImage

    // Nome della location.
    Name string

}

type BannerImage

Il tipo BannerImage rappresenta una singola immagine di un banner.

type BannerImage struct {

    // Immagine
    Image

}

Un valore di tipo BannerImage può essere direttamente visualizzato nell'HTML:

{{ bannerImage }}

in quanto su un valore di tipo BannerImage si può chiamare il metodo HTML.

HTML

func (image BannerImage) HTML() html

HTML ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.

type Banners

Il tipo Banners rappresenta i banner del sito. I suoi campi sono i nomi delle locations dei banner. I nomi delle location si possono vedere nel Template Editor nella sezione Banners, facendo clic su mostra locations.

type Banners struct {

    // I campi di Banners sono i nomi delle locations dei banner del sito.
    // Di seguito il nome "SlideShow" è solo di esempio.
    SlideShow Banner

}

Esempio

Se ad esempio le location si chiamano "Top" e "Footer" allora Banners è definito nel seguente modo:

type Banners struct {

    // Banners in alto.
    Top Banner

    // Banners a fondo pagina.
    Footer Banner

}

e sarà quindi possibile visualizzare i banner tramite la variable banners come documentato a seguire.

type BlogPost

Il tipo BlogPost rappresenta un articolo del blog.

type BlogPost struct {

    // Autore.
    Author string

    // Data di pubblicazione.
    Date Time

    // Immagine larga.
    LargeImage LinkedImage

    // Immagine piccola.
    SmallImage LinkedImage

    // Sommario.
    Summary html

    // Titolo.
    Title LinkedText

}

type BlogTag

Il tipo BlogTag rappresenta una tag del blog.

type BlogTag struct {

    // Identificatore della tag.
    ID int

    // Collegamento alla pagina della tag.
    Name LinkedText

}

Un valore di tipo BlogTag può essere direttamente visualizzato nell'HTML:

{{ tag }}

in quanto su un valore di tipo BlogTag si può chiamare il metodo HTML.

HTML

func (tag BlogTag) HTML() html

HTML ritorna la tag in un formato adatto per essere mostrato in una pagina HTML.

Il tipo Breadcrumb rappresenta un filtro attualmente applicato sotto forma di breadcrumb. Facendo clic su un filtro vengono applicati solamente il filtro stesso e i suoi predecessori.

Se si filtra per parole chiave e novità allora anche questi due saranno presenti come filtri nella breadcrumb.

type Breadcrumb struct {

    // Identificatore del reparto, produttore o valore di attributo.
    // Se il filtro applicato non è su reparto, produttore o attributo, il valore è zero.
    // Questo campo è presente solo nella versione 7.1 e successive.
    ID int

    // Indica se il filtro è su un attributo.
    IsByAttribute bool
    
    // Indica se il filtro è sui reparti.
    IsByDepartment bool
    
    // Indica se il filtro è sulle parole chiave.
    IsByKeywords bool
    
    // Indica se il filtro è sui prodotti in novità.
    IsByNewrelease bool
    
    // Indica se il filtro è sul prezzo.
    IsByPrice bool
    
    // Indica se il filtro è sui produttori.
    IsByProducer bool

    // Nome del filtro applicato.
    Item html

    // Posizione a partire a 1. Viene utilizzato ad esempio per i microdata.
    Position int

}

type CartItem

Il tipo CartItem rappresenta una referenza nel carrello.

type CartItem struct {

    // Pulsante per rimuovere la referenza dal carrello.
    ButtonRemove html

    // Pulsante per aggiornare il carrello in seguito alla modifica della quantità.
    ButtonUpdate html

    // Reparti finali in cui si trova il prodotto.
    Departments []int

    // Descrizione breve del prodotto.
    Description html

    // Sconto rispetto al prezzo di listino. È zero se Rows non è vuoto.
    Discount Discount

    // Immagine del prodotto.
    Image LinkedImage

    // Suggerimento per il cliente sul tipo di richieste che può fare sul
    // prodotto in caso di preventivo. Presente solo se è su preventivo.
    InfoForRequests string

    // Indica se è in pre-ordine.
    IsPreOrder bool

    // Prezzo di listino. È zero se Rows non è vuoto.
    ListPrice Price

    // Nome della referenza.
    Name html

    // IVA in percentuale.
    PercentTax Decimal

    // Prezzo. È zero se Rows non è vuoto.
    Price Price

    // Prezzi per quantità. È vuoto se Rows non è vuoto.
    Prices []PriceTier

    // Produttore.
    Producer html

    // Identificatore del produttore. Se il prodotto non ha alcun produttore
    // associato, questo campo ha valore 0.
    ProducerID int

    // Identificatore del prodotto.
    ProductID int

    // Promozioni applicate all'item. È vuoto se Rows non è vuoto.
    Promotions []CartItemPromotion

    // Quantità totale.
    Quantity Decimal

    // Modulo che il cliente può compilare con richieste specifiche sul
    // prodotto. Presente solo se è su preventivo.
    Requests html
    
    // Righe riferite all'item.
    Rows []CartItemRow

    // Codice di magazzino.
    SKU string

    // Indica se deve essere preventivato oppure può essere ordinato.
    ToQuote bool

    // Prezzo totale.
    TotalPrice Price

    // Messaggio di avviso sulla disponibilità.
    Warning html

    // Peso.
    Weight Decimal

}

type CartItemRow

Il tipo CartItemRow rappresenta una riga nel carrello.

type CartItemRow struct {

    // Sconto rispetto al prezzo di listino.
    Discount Discount

    // Prezzo di listino.
    ListPrice Price

    // Prezzo.
    Price Price

    // Promozioni applicate alla riga.
    Promotions []CartItemPromotion
    
    // Quantità.
    Quantity Decimal

    // Prezzo totale.
    TotalPrice Price

}

type CartPaymentMethod

Il tipo CartPaymentMethod rappresenta un metodo di pagamento di un carrello.

type CartPaymentMethod struct {

    // Costo.
    Cost Price

    // Identificatore.
    ID int

    // Indica se questo è il metodo di pagamento impostato nel carrello.
    IsCurrent bool

    // Nome.
    Name string

}

type CartItemPromotion

Il tipo CartItemPromotion rappresenta una promozione applicata alla riga.

type CartItemPromotion struct {

    // Identificatore della promozione.
    ID int

    // Nome della promozione.
    Name string

}

type CartShippingMethod

Il tipo CartShippingMethod rappresenta un metodo di spedizione di un carrello.

type CartShippingMethod struct {

    // Costo.
    Cost Price

    // Identificatore.
    ID int

    // Indica se questo è il metodo di spedizione impostato nel carrello.
    IsCurrent bool

    // Nome.
    Name string

}

CanShipToCustomerAddress

func (method CartShippingMethod) CanShipToCustomerAddress() bool

CanShipToCustomerAddress indica se il metodo di spedizione può essere usato per spedire all'indirizzo del cliente. Ritorna false se il cliente non è loggato.

type CheckoutCart

Il tipo CheckoutCart rappresenta il carrello durante il checkout.

type CheckoutCart struct {

    // Coupon sconto attualmente applicato al carrello.
    CurrentCoupon string

    // Sconto in percentuale o fisso sull'ordine.
    Discount Discount

    // Sconti applicati al costo totale del carrello.
    Discounts []Discount

    // Referenze di prodotto che si stanno ordinando. è lo stesso della
    // pagina cart.html.
    Items []CartItem

    // Metodo di pagamento.
    Payment html

    // Costo del pagamento, ad esempio dovuto ad una commissione o al diritto
    // di contrassegno.
    PaymentCost Price

    // Costo totale prima dell'applicazione dell'eventuale sconto.
    PrediscountSubtotal Price

    // Metodo di spedizione.
    Shipping html

    // Costo della spedizione.
    ShippingCost Price

    // Costo totale.
    Subtotal Price

    // Importo totale delle tasse.
    TaxAmount Decimal

    // Indica se è su preventivo.
    ToQuote bool

    // Totale.
    Total Price

    // Peso totale.
    Weight Decimal

}

type ChildDepartment

Il tipo ChildDepartment rappresenta il reparto figlio di un determinato reparto.

type ChildDepartment struct {

    // Identificatore.
    ID int

    // Immagine piccola.
    Image LinkedImage

    // Nome.         
    Name LinkedText

}

type Collection

Il tipo Collection rappresenta una collezione aggiuntiva.

type Collection struct {

    // Descrizione.
    Description html

    // Identificatore.
    ID int

    // Immagine grande.
    LargeImage Image

    // Immagine piccola.
    SmallImage Image

    // Descrizione breve.
    Summary html

    // Titolo.
    Title string

    // URL della pagina nella lingua corrente.
    URL string

}

type CreditCard

Il tipo CreditCard contiene i campi per consentire il pagamento con carta di credito.

type CreditCard struct {

    // Codice di sicurezza CVC.
    CVC html

    // Messaggi di errore.
    Errors html

    // Data di scadenza.
    Expiry html

    // Nome sulla carta.
    Name html

    // Numero.
    Number html

}

Esempio

Se method è un metodo di pagamento, nella pagina checkout-methods.html, che prevede il pagamento con carta di credito, il seguente codice mostra il modulo per eseguire il pagamento:

{% if cc, ok := method.Pay.(CreditCard); ok  %}
    <div>{{ cc.Number }}</div>
    <div>{{ cc.Expiry }}</div>
    <div>{{ cc.CVC }}</div>
    <div>{{ cc.Name }}</div>
    {{ cc.Errors }}
{% end if %}

type Currency

Il tipo Currency rappresenta una valuta del sito.

type Currency struct {

    // Codice in formato ISO, ad esempio "EUR".
    Code string

    // Nome, ad esempio "Euro".
    Name string

    // Simbolo, ad esempio "€".
    Symbol string

}

type Currencies

Il tipo Currencies rappresenta le valute del sito.

type Currencies []Currency

Si può accedere alle singole valute:

<ul>
  {% for currency in currencies %}
  <li data-design-currency="{{ currency.Code }}">{{ currency.Name }}</li>
  {% end %}
</ul>

In questo esempio si è usato l'attributo data-design-currency con valore il codice di una valuta. Open2b applica automaticamente il cambio a tutti i prezzi nella pagina quando si fa clic sull'elemento con attributo data-design-currency.

In alternativa la variabile currencies ma può essere direttamente visualizzata nell'HTML:

{{ currencies }}

in quanto su un valore di tipo Currencies si può chiamare il metodo HTML.

La variabile sarà visualizzata come un elemento select e selezionando una valuta verrà applicato il cambio a tutti i prezzi nella pagina.

HTML

func (currencies Currencies) HTML() html

HTML ritorna il codice HTML di un select che le valute del sito. Ritorna una stringa vuota se il sito ha una sola valuta.

IsTrue

func (currencies Currencies) IsTrue() bool

IsTrue ritorna true se il sito ha più valute.

type css

Il tipo css rappresenta del codice css.

type css string

Un valore string viene sottoposto ad escape per essere renderizzato in un contesto CSS. Ad esempio:

{% var s = `body { background-color: #FFF; }` %}
{{ s }}

è renderizzato:

"body \7b  background-color\3a  #FFF\3b  \7d "

Mentre un valore css non viene sottoposto ad escape nel contesto CSS. Ad esempio:

{% var s = css(`body { background-color: #FFF; }`) %}
{{ s }}

è renderizzato:

body { background-color: #FFF; }

Conversione da string a css

Nel precedente esempio si è usata l'espressione css(`body { background-color: #FFF; }`), questa sembra una chiamata di funzione ma siccome css è un tipo, si tratta invece di una conversione di tipo. body { background-color: #FFF; } è una stringa che viene convertita al tipo css.

Scriggo segue le conversioni di tipo del linguaggio Go. Però nel caso di css è consentito la conversione solo per stringhe letterali. Ad esempio:

{{ css(`body { background-color: #FFF; }`) }} {# ok #}
{{ css(myCSS) }} {# errore: myCSS non è un letterale ma una variabile #}

type Decimal

Il tipo Decimal rappresenta un numero decimale.

Non ha campi a cui è possibile accedere ma un valore Decimal può essere direttamente visualizzato nell'HTML:

{{ value }}

in quanto su un valore di tipo Decimal si può chiamare il metodo HTML.

Add

func (d Decimal) Add(d2 Decimal) Decimal

Add ritorna la somma d + d2.

Cmp

func (d Decimal) Cmp(d2 Decimal) int

Cmp compara d e d2 e ritorna:

Div

func (d Decimal) Div(d2 Decimal) Decimal

Div ritorna la divisione d / d2. Va in panic se d2 è 0.

Equal

func (d Decimal) Equal(d2 Decimal) bool

Equal indica se d == d2 come numeri decimali.

Float64

func (d Decimal) Float64() float64

Float64 ritorna il valore float64 più vicino a d. Può ritornare +Inf o -Inf.

HTML

func (d Decimal) HTML() html

HTML ritorna il numero decimale in un formato adatto per essere mostrato in una pagina HTML. Il locale è quello della pagina correntemente renderizzata.

IsNegative

func (d Decimal) IsNegative() bool

IsNegative indica se d < 0.

IsPositive

func (d Decimal) IsPositive() bool

IsPositive indica se d > 0.

IsZero

func (d Decimal) IsZero() bool

IsZero indica se d == 0.

JS

func (d Decimal) JS() string

JS ritorna la rappresentazione di d come un numero JavaScript. Consente di utilizzare un valore Decimal nel codice JavaScript.

Esempio

Se la variabile price ha tipo Decimal e valore 172.99 allora il seguente codice:

<script>var price = {{ price }};</script>

sarà renderizzato come:

<script>var price = 172.99;</script>

JSON

func (d Decimal) JSON() string

JSON ritorna la rappresentazione di d come un numero JSON. Consente di utilizzare un valore Decimal nel codice JSON.

Esempio

Se la variabile price ha tipo Decimal e valore 172.99 allora il seguente codice:

<script type="application/ld+json">{ "price": {{ price }} }</script>

sarà renderizzato come:

<script type="application/ld+json">{ "price": 172.99 }</script>

LessThan

func (d Decimal) LessThan(d2 Decimal) bool

LessThan indica se d < d2.

LessThanOrEqual

func (d Decimal) LessThanOrEqual(d2 Decimal) bool

LessThan indica se d <= d2.

Mul

func (d Decimal) Mul(d2 Decimal) Decimal

Mul ritorna la moltiplicazione d * d2.

Neg

func (d Decimal) Neg() Decimal

Neg ritorna -d.

Round

func (d Decimal) Round(n int) Decimal

Round ritorna d arrotondato a n cifre decimali.

String

func (d Decimal) String() string

String ritorna la rappresentazione di d sotto forma di stringa con tutte le sue cifre decimali significative.

StringN

func (d Decimal) StringN(n int) string

StringN ritorna la rappresentazione di d sotto forma di stringa con esattamente n cifre decimali. Se d ha più cifre decimali significative di n allora è prima troncato a n cifre decimali.

Sub

func (d Decimal) Sub(d2 Decimal) Decimal

Sub ritorna la sottrazione d - d2.

Truncate

func (d Decimal) Truncate(n int) Decimal

Truncate ritorna d troncato a n cifre decimali.

type Department

type Department struct {

    // Identificatore.
    ID int

    // Nome.
    Name LinkedText

    // Immagine piccola.
    Image html

    // Reparti figli.
    ChildDepartments []Department

    // Indirizzo canonico.
    URL string

}

Parent

func (dep Department) Parent() (Department, bool)

Parent ritorna il reparto genitore e il valore true. Se il reparto non ha un reparto genitore, ritorna Department{} e false.

Esempio

{% if parent, ok := dep.Parent(); ok %}
<p>Reparto genitore: {{ parent.Name }}</p>
{% end if %}

type Discount

Il tipo Discount rappresenta uno sconto fisso o in percentuale.

type Discount struct {

    // Ammontare.
    Amount Price

    // Percentuale.
    Percent Decimal

}

Un valore Discount può essere direttamente visualizzato nell'HTML:

{{ discount }}

in quanto su un valore di tipo Discount si può chiamare il metodo HTML. Se il campo Amount è zero e il campo Percent è maggiore di zero allora mostra il valore di Percent altrimenti mostra quello di Amount.

Esempio

Se la variabile discount ha tipo Discount e valore 10.50 allora il seguente codice:

<b>Sconto: {{ discount }}</b>

sarà visualizzato come:

<b>Sconto: € 10,50</b>

HTML

func (d Discount) HTML() html

HTML ritorna lo sconto in un formato adatto per essere mostrato in una pagina HTML. Se d.Amount == 0 e d.Percent > 0 allora mostra d.Percent altrimenti d.Amount. La valuta e il locale sono quelli della pagina correntemente renderizzata.

IsZero

func (d Discount) IsZero() bool

IsZero indica se d.Amount == 0 e d.Percent == 0.

type Duration

Il tipo Duration rappresenta la differenza di tempo tra due istanti in nanosecondi.
La massima durata rappresentabile è di circa 290 anni.

Hours

func (d Duration) Hours() float64

Restituisce un float64 rappresentante la Duration d in ore.

Microseconds

func (d Duration) Microseconds() int64

Restituisce un int64 rappresentante la Duration d in microsecondi.

Milliseconds

func (d Duration) Milliseconds() int64

Restituisce un int64 rappresentante la Duration d in millisecondi.

Minutes

func (d Duration) Minutes() float64

Restituisce un float64 rappresentante la Duration d in minuti.

Nanoseconds

func (d Duration) Nanoseconds() int64

Restituisce un int64 rappresentante la Duration d in nanosecondi.

Round

func (d Duration) Round(m Duration) Duration

Restituisce il risultato dell'arrotondamento della Duration d al più vicino multiplo di m.
Per ulteriori dettagli si veda la documentazione del tipo Duration di Scriggo.

Seconds

func (d Duration) Seconds() float64

Restituisce un float64 rappresentante la Duration d in secondi.

String

func (d Duration) String() string

Restituisce una stringa rappresentante la Duration d nel formato "72h3m0.5s".
Per ulteriori dettagli si veda la documentazione del tipo Duration di Scriggo.

Truncate

func (d Duration) Truncate(m Duration) Duration

Restituisce il risultato dell'arrotondamento verso 0 della Duration d ad un multiplo di m.
Se m è minore o uguale a zero, Truncate restituisce d.

type File

Il tipo File rappresenta un file inviato tramite un form.

type File interface{
    Name() string // name.
    Type() string // type, as mime type.
    Size() int    // size, in bytes.
}

I metodi Name, Type e Size consentono rispettivamente di leggere il nome, il tipo e la dimensione in bytes del file.

type Filter

type Filter struct {

    // Reparti superiori del reparto corrente.
    // È nil se il filtro non è sui reparti.
    Ancestors []FilterAncestor

    // Nome o icona del valore attualmente applicato.
    // È nil se il filtro non consente di applicare più valori contemporaneamente.
    AppliedValue FilterItem

    // Indica se si possono applicare più valori oppure uno solo per volta.
    // Può essere "multi" o "single".
    ApplyMode string

    // Identificativo dell'attributo del filtro. Significativo solo per
    // i filtri su attributo.
    Attribute int

    // Indica se ogni valore del filtro viene mostrato come nome o icona. Può
    // essere "name" o "icon".
    DisplayAs string

    // Indica se è applicato, ossia se almeno un valore del filtro è
    // applicato.
    IsApplied bool

    // Indica se il filtro è su un attributo.
    IsByAttribute bool

    // Indica se il filtro è sui reparti.
    IsByDepartment bool

    // Indica se il filtro è sul prezzo.
    IsByPrice bool

    // Indica se il filtro è sui produttori.
    IsByProducer bool

    // Indica se è espandibile, ossia se solo alcuni valori sono sempre
    // mostrati e gli altri sono mostrati espandendo tutti i valori del filtro.
    IsExpandable bool

    // Numero di valori del filtro che sono inizialmente nascosti e vengono
    // mostrati solo quando viene espanso. È zero se il filtro è sul prezzo.
    OnExpandCount int

    // Titolo.
    Title html

    // Valori. Per il filtro sui reparti è la lista dei reparti, per il
    // filtro sui produttori è la lista dei produttori, per i filtri sugli
    // attributi è la lista dei valori dell'attributo, per il filtro sui
    // prezzi è la lista delle fasce di prezzo a meno che non si sia scelto
    // di visualizzarlo come slider.
    Values []FilterValue

    //
    // I seguenti campi significativi solo per i filtri per prezzo.
    //

    // Pulsante per applicare il filtro per prezzo.
    ButtonApply html

    // Simbolo della valuta. Disponibile solo per il filtro su prezzo.
    Currency html

    // Massimo prezzo tra i prodotti filtrati. Disponibile solo se è visualizzato
    // come slider.
    MaxPrice Decimal

    // Minimo prezzo tra i prodotti filtrati. Disponibile solo se è visualizzato
    // come slider.
    MinPrice Decimal

    // Prezzo a partire da..
    PriceFrom html

    // Prezzo fino a..
    PriceTo html

    // Slider di selezione di una fascia di prezzo. Disponibile solo se è
    // visualizzato come slider.
    Slider html

}

type FilterAncestor

Il tipo FilterAncestor rappresenta un reparto antenato.

type FilterAncestor struct {

    // Identificatore del reparto antenato.
    ID int

    // Nome del reparto antenato.
    Item AncestorItem

}

type FilterItem

Il tipo FilterItem rappresenta una voce di un filtro.

FilterItem ha solamente campi non esportati ma un valore di questo tipo può essere direttamente visualizzato nell'HTML:

{{ item }}

in quanto su un valore di tipo FilterItem si può chiamare il metodo HTML.

HTML

func (item FilterItem) HTML() html

HTML ritorna la voce di filtro in un formato adatto per essere mostrato in una pagina HTML.

type FilterValue

Il tipo FilterValue rappresenta una voce di un filtro.

type FilterValue struct {

    // Identificatore. Per il filtro sui reparti è l'identificatore del
    // reparto, per il filtro sui produttori è l'identificatore del
    // produttore mentre per il filtro sugli attributi è l'identificatore del
    // valore dell'attributo.
    ID int

    // Indica se è applicabile. Se si è scelto per il filtro di non mostrare
    // i valori non applicabili allora tutti i valori mostrati saranno applicabili.
    IsApplicable bool

    // Indica se è applicato.
    IsApplied bool

    // Nome o icona seguito eventualmente dal conteggio dei prodotti.
    Item FilterItem

    // Indica se viene mostrato solo quando i valori del filtro vengono
    // espansi. Può essere "yes" oppure "no".
    OnExpand string

}

type FormData

Il tipo FormData rappresenta i dati passati con una richiesta HTTP tramite la query string e il body.

type FormData struct{
    // contiene campi non esportati.
}

ParseMultipart

func (form FormData) ParseMultipart()

ParseMultipart parsa il body di una richiesta come multipart/form-data. Se il body non è multipart/form-data, non fa nulla. Dovrebbe essere chiamato prima di chiamare i metodi File e Files e può essere chiamato più volte. Va in panic se si verifica un errore.

Value

func (form FormData) Value(field string) string

Value ritorna i dati passati del form, inclusi sia i parametri passati tramite il query string che tramite il POST di un form. Va in panic se si verifica un errore.

Values

func (form FormData) Values() map[string][]string

Values ritorna i dati passati del form, inclusi sia i parametri passati tramite il query string che tramite il POST di un form. Va in panic se si verifica un errore.

File

func (form FormData) File(field string) File

File ritorna il primo file associato con il dato campo. Ritorna nil se non ci sono valori associati al campo. Chiamare File solo dopo che ParseMultipart è stato chiamato.

Files

func (form FormData) Files() map[string][]File

Files ritorna i file parsati di form multipart. Ritorna un map non nil se ParseMultipart è stato chiamato. Chiamare Files solo dopo che ParseMultipart è stato chiamato.

type Hour

Il tipo Hour rappresenta un'ora della giornata.

type Hour struct {

    // L'ora, può assumere i valori 0-23.
    Value int

}

Un valore di tipo Hour può essere direttamente visualizzato nell'HTML:

{{ startHour }}

in quanto su un valore di tipo Hour si può chiamare il metodo HTML.

HTML

func (Hour Hour) HTML() html

HTML ritorna l'ora formattata per la lingua corrente.

type html

Il tipo html rappresenta del codice HTML.

type html string

Un valore string viene sottoposto ad escape per essere rendirizzato in un costesto HTML. Ad esempio:

{% var s = "<b>hello</b>" %}
{{ s }}

è rendirizzato:

&lt;b&gt;hello&lt;/b&gt;

Mentre un valore html non viene sottoposto ad escape nel contesto HTML. Ad esempio:

{% var s = html("<b>hello</b>") %}
{{ s }}

è rendirizzato:

<b>hello</b>

Conversione da string ad html

Nel precedente esempio si è usata l'espressione html("<b>hello</b>"), questa sembra una chiamata di funzione ma siccome html è un tipo, si tratta invece di una conversione di tipo. "hello" è una stringa che viene convertita al tipo html.

Scriggo segue le conversioni di tipo del linguaggio Go. Però nel caso di html è consentito la conversione solo per stringhe letterali. Ad esempio:

{{ html("<b>hello</b>") }} {# ok #}
{{ html(hello) }} {# errore: hello non è un letterale ma una variabile #}

type Image

Il tipo Image rappresenta una immagine.

type Image struct {

    // Valore dell'attributo "alt".
    Alt string

    // Altezza in pixel.
    Height int

    // Valore dell'attributo "itemprop".
    Itemprop string

    // Valore dell'attributo "title".
    Title string

    // Indirizzo dell'immagine in singola risoluzione.
    URL string

    // Indirizzo dell'immagine in doppia risoluzione.
    URL2x string

    // Larghezza in pixel.
    Width int

}

Un valore di tipo Image può essere direttamente visualizzato nell'HTML:

{{ image }}

in quanto su un valore di tipo Image si può chiamare il metodo HTML.

HTML

func (image Image) HTML() html

HTML ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.

type InvoiceInList

Il tipo InvoiceInList rappresenta un fattura nella pagina documents.html.

type InvoiceInList struct {

    // Pulsante per vedere la fattura.
    ButtonView html

    // Data di emissione.
    Date Time

    // Numero.
    Number string

    // Stato.
    Status html

    // Totale.
    Total Price

    // Tipo di fattura.
    Type html

    // Indirizzo della pagina di dettaglio della fattura.
    URL string

}

type Item

Il tipo Item rappresenta una referenza di un prodotto.

type Item struct {

    // Pulsante per aggiungere la referenza al carrello, se la giacenza
    // è maggiore di zero oppure la referenza è comunque ordinabile.
    ButtonAddToCart html

    // Profondità.
    // Presente a partire dalla versione 7.2.
    Depth Decimal

    // Sconto rispetto al prezzo di listino.
    Discount Discount

    // Codice EAN13.
    EAN string

    // Altezza.
    // Presente a partire dalla versione 7.2.
    Height Decimal

    // Immagine.
    Image LinkedImage

    // Codice ISBN13.
    ISBN string

    // Indica se è in vendita.
    IsForSale bool

    // Prezzo di listino.
    ListPrice Price

    // Quantità massima ordinabile.
    MaximumOrderQuantity Decimal

    // Quantità minima ordinabile.
    MinimumOrderQuantity Decimal

    // Opzioni.
    Options []Option

    // IVA in percentuale.
    PercentTax Decimal

    // Prezzo.
    Price Price

    // Prezzi per quantità.
    Prices []PriceTier

    // Quantità da aggiungere al carrello. È vuoto se la
    // giacenza è zero o la referenza non è comunque ordinabile.
    Quantity html

    // Giorni necessari per il riordino se non è subito disponibile.
    ReorderDays int

    // Codice di magazzino.
    SKU string

    // Data di spedizione.
    ShippingDate Time

    // Quantità disponibile.
    Stock Decimal

    // Codice UPC.
    UPC string

    // Peso.
    Weight Decimal

    // Larghezza.
    // Presente a partire dalla versione 7.2.
    Width Decimal

}

type js

Il tipo js rappresenta del codice JavaScript.

type js string

Un valore string viene sottoposto ad escape per essere renderizzato in un contesto JavaScript. Ad esempio:

{% var s = "alert(message);" %}
{{ s }}

è renderizzato:

"alert(message);"

Mentre un valore js non viene sottoposto ad escape nel contesto JavaScript. Ad esempio:

{% var s = js("alert(message);") %}
{{ s }}

è renderizzato:

alert(message);

Conversione da string a js

Nel precedente esempio si è usata l'espressione js("alert(message);"), questa sembra una chiamata di funzione ma siccome js è un tipo, si tratta invece di una conversione di tipo. "alert(message);" è una stringa che viene convertita al tipo js.

Scriggo segue le conversioni di tipo del linguaggio Go. Però nel caso di js è consentito la conversione solo per stringhe letterali. Ad esempio:

{{ js("alert(message);") }} {# ok #}
{{ js(message) }} {# errore: message non è un letterale ma una variabile #}

type json

type Language

Il tipo Language rappresenta una lingua del sito.

type Language struct {

    // Codice in formato ISO, ad esempio "it".
    Code string

    // Regione in formato ISO, ad esempio "IT".
    Region string

    // Locale. Codice e regione assieme, ad esempio "it-IT".
    Locale string

    // Nome, ad esempio "Italiano (Italian)".
    Name string

    // URL dell'immagine della bandierina.
    FlagURL string

    // URL della pagina corrente in questa lingua.
    PageURL string

}

type Languages

Il tipo Languages rappresenta le lingue del sito.

type Languages []Language

Si può accedere alle singole lingue:

<ol>
  {% for language in languages %}
  <li><a href="{{ language.PageURL }}">{{ language.Name }}</a></li>
  {% end %}
</ol>

ma può essere anche direttamente visualizzato nell'HTML:

{{ languages }}

in quanto su un valore di tipo Languages si può chiamare il metodo HTML.

HTML

func (languages Languages) HTML() html

HTML ritorna il codice HTML che mostra le lingue del sito. Ritorna una stringa vuota se il sito ha una sola lingua.

IsTrue

func (languages Languages) IsTrue() bool

IsTrue ritorna true se il sito è disponibile in più lingue.

type LinkedImage

Il tipo LinkedImage rappresenta una immagine con un link.

type LinkedImage struct {

    // Immagine.
    Image

}

Un valore di tipo LinkedImage può essere direttamente visualizzato nell'HTML:

{{ image }}

in quanto su un valore di tipo LinkedImage è possibile chiamare il metodo HTML.

HTML

func (image LinkedImage) HTML() html

HTML ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.

type LinkedText

Il tipo LinkedText rappresenta un testo con un link.

type LinkedText struct {

    // Indica se il link viene aperto in una nuova finestra.
    Blank bool

    // Classe.
    Class string

    // Testo.
    Text string

    // Titolo.
    Title string

    // Indirizzo.
    URL string

}

Un valore di tipo LinkedText può essere direttamente visualizzato nell'HTML:

{{ text }}

in quanto su un valore di tipo LinkedText è possibile chiamare il metodo HTML.

HTML

func (text LinkedText) HTML() html

HTML ritorna il testo in un formato adatto per essere mostrato in una pagina HTML.

type markdown

type Mail

Il tipo Mail rappresenta un email da inviare.

type Mail struct {

    // Mittente.
    From        string

    // Destinatari.
    To          []string
    
    // Copia conoscenza.
    Cc          []string
    
    // Copia conoscenza nascosta.
    Bcc         []string
    
    // Oggetto.
    Subject     string
    
    // Corpo (in formato html).
    Body        html
    
    // Corpo (in formato testuale).
    TextBody    string

    // Allegati.
    Attachments []File

}

Il tipo Menu rappresenta un singolo menù del sito.

type Menu struct {

    // Voci
    // Nella versione 7.0 il tipo è '[]html' invece di '[]MenuItem'.
    Items []MenuItem

    // Nome della sezione del menù.
    Name string

    // Titolo
    // Nella versione 7.0 il tipo è 'html' invece di 'MenuItem'.
    Title MenuItem

}
func (menu Menu) IsZero() bool

IsZero indica se len(menu.Items) == 0 e menu.Title == "". Consente di usare un valore Menu come condizione di un if per verificare se contiene delle voci e un titolo.

{% if menu := menus.Account; menu %}
<div class="menu">
  {% if menu.Title %}<h3>{{ menu.Title }}</h3>{% end %}
  {% if menu.Items %}
  <ul>
    {% for item in menu.Items %}
    <li>{{ item }}</li>
    {% end for %}
  </ul>
  {% end if %}
</div>
{% end if %}

Il tipo Menus rappresenta i menù del sito. I campi sono i nomi delle sezioni dei menù. I nomi delle sezioni si possono vedere nel Template Editor alla voce Menù, facendo clic su mostra sezioni.

type Menus struct {

    // I campi di Menus sono i nomi delle sezioni dei menù del sito.
    // Di seguito il nome "Company" è solo di esempio.
    Company Menu

}

type NewsletterList

Il tipo NewsletterList rappresenta una lista di newsletter a cui è possibile sottoscriversi.

type NewsletterList struct {

    // Descrizione.
    Description string

    // Nome.
    Name string

    // Casella selezionabile per sottoscrivere la lista.
    Subscription html

}

type Option

Il tipo Option rappresenta una opzione di una variante.

type Option struct {

    // Nome.
    Name string

    // Nome della corrispondente variante.
    Variant string

}

type Order

Il tipo Order rappresenta un ordine di un cliente con le relative spedizioni e resi.

type Order struct {

    // Indirizzo di fatturazione.
    BillingAddress html

    // Pulsante per stampare l'ordine.
    ButtonPrint html

    // Nome e cognome del cliente, o nome dell'azienda.
    CustomerName string

    // Data di creazione dell'ordine.
    Date Time

    // Referenze di prodotto ordinate e non ancora spedite.
    Items []OrderItem

    // Numero.
    Number string

    // Resi.
    Returns []Return

    // Spedizioni.
    Shipments []Shipment

    // Indirizzo di spedizione.
    ShipmentAddress html

    // Stato.
    Status html

    // Totale.
    Total Price

}

type OrderInList

Il tipo OrderInList rappresenta un ordine nella pagina documents.html.

type OrderInList struct {

    // Pulsante per vedere l'ordine.
    ButtonView html

    // Data di creazione.
    Date Time

    // Numero.
    Number string

    // Stato.
    Status html

    // Totale.
    Total Price

    // Indirizzo della pagina di dettaglio dell'ordine.
    URL string

}

type OrderItem

Il tipo OrderItem rappresenta una riga di un ordine.

type OrderItem struct {

    // Pulsante per aggiungere la referenza al carrello
    // nella quantità dell'ordine.
    ButtonAddAllToCart html

    // Pulsante per aggiungere la referenza al carrello
    // nella sua quantità minima ordinabile.
    ButtonAddToCart html

    // Immagine larga, se presente.
    LargeImage LinkedImage

    // Immagine media, se presente.
    MediumImage LinkedImage

    // Nome.
    Name html

    // Prezzo.
    Price Price

    // Quantità.
    Quantity Decimal

    // Richieste del cliente.
    Requests string

    // Quantità spedita.
    ShippedQuantity Decimal

    // Codice di magazzino.
    SKU string

    // Immagine piccola, se presente.
    SmallImage LinkedImage

    // Codice della classe IVA.
    TaxCode string

    // IVA in percentuale.
    TaxRate Decimal

    // Prezzo totale.
    TotalPrice Price

}

type PageNumber

Il tipo PageNumber rappresenta un numero di pagina di una paginazione.

type PageNumber int

Un valore di tipo PageNumber può essere direttamente visualizzato nell'HTML:

{{ pageNumber }}

in quanto su un valore di tipo PageNumber è possibile chiamare il metodo HTML. Il numero è visualizzato solo se è maggiore di uno.

HTML

func (number PageNumber) HTML() html

HTML ritorna il numero di pagina in un formato adatto per essere mostrato in una pagina HTML. Se number <= 1 ritorna una stringa vuota.

type Pagination

Il tipo Pagination rappresenta una paginazione. È usato nella paginazione di prodotti e ordini.

type Pagination struct {

    // Pagina corrente. La prima pagina è la pagina 1.
    Current int

    // Ultima pagina.
    Last int

    // Testo del link per andare alla pagina successiva. Corrisponde al valore presente
    // nelle traduzioni del template in corrispondenza della voce ButtonNextPage.
    NextText html

    // Testo del link per andare alla pagina precedente. Corrisponde al valore presente
    // nelle traduzioni del template in corrispondenza della voce ButtonPreviousPage.
    PreviousText html

}

Un valore di tipo Pagination, come la variabile pagination, può essere direttamente visualizzato nell'HTML per mostrare la paginazione in formato standard:

{{ pagination }}

in quanto su un valore di tipo Pagination si può chiamare il metodo HTML.

HTML

func (p Pagination) HTML() html

HTML ritorna la paginazione in un formato adatto per essere mostrato in una pagina HTML. Se p.Last <= 1 ritorna una stringa vuota.

IsZero

func (p Pagination) IsZero() bool

IsZero indica se la paginazione non è presente ossia se p.Last <= 1.

PagePath

func (p Pagination) PagePath(n int) string

PagePath ritorna il path assoluto dell'URL della pagina n. Ritorna una stringa vuota se n < 1 oppure se n > p.Last.

Esempio

Il metodo PagePath può essere usato per mostrare una paginazione personalizzata:

{% for i := 1; i <= p.Last; i++ %}
  {% if i == p.Current %}
    {{ i }}
  {% else %}
    <a href="{{ pagination.PagePath(i) }}">{{ i }}</a>
  { % end if %}
{ % end for %}

type PaymentMethod

Il tipo PaymentMethod rappresenta un metodo di pagamento che può essere selezionato durante il checkout.

type PaymentMethod struct {

    // Casella selezionabile per scegliere il metodo di pagamento.
    Choice html

    // Descrizione.
    Description string

    // Nome.
    Name html

    // Controlli per eseguire il pagamento.
    // Al momento gli unici valori possibili sono nil, se il metodo di pagamento
    // non prevede il pagamento online, e un valore di tipo CreditCard,
    // se il metodo prevede il pagamento con carta di credito.
    Pay interface{}

    // Provider del pagamento, ad esempio "Stripe".
    Provider string

}

type Price

Il tipo Price rappresenta un prezzo o un costo con e senza IVA.

type Price struct {

    // Prezzo netto (prezzo IVA esclusa).
    Net Decimal

    // Prezzo lordo (prezzo IVA inclusa).
    Gross Decimal

}

Un valore di tipo Price può essere direttamente visualizzata nell'HTML:

{{ price }}

in quanto su un valore di tipo Price si può chiamare il metodo HTML. Visualizza il prezzo lordo o netto in base al cliente.

HTML

func (price Price) HTML() html

HTML ritorna il prezzo in un formato adatto per essere mostrato in una pagina HTML. La valuta e il locale sono quelli della pagina correntemente renderizzata. HTML visualizza il prezzo lordo o netto in base al gruppo clienti corrente.

IsZero

func (p Price) IsZero() bool

IsZero indica se p == 0.

JS

func (p Price) JS() string

JS ritorna la rappresentazione di p come numero JavaScript. Consente di utilizzare un valore Price nel codice JavaScript.

Esempio

Se la variabile price ha tipo Price e valore 16.99 allora il seguente codice:

<script>var price = {{ price }};</script>

sarà renderizzato come:

<script>var price = 9.99;</script>

Il prezzo visualizzato sarà quello lordo o netto in base al cliente. In alternativa usare p.Gross per visualizzare sempre quello lordo e p.Net per visualizzare sempre quello netto.

JSON

func (p Price) JSON() string

JSON ritorna la rappresentazione di p come numero JSON. Consente di utilizzare un valore Price nel codice JSON.

Esempio

Se la variabile price ha tipo Price e valore 37.50 allora il seguente codice:

<script type="application/ld+json">{ "price": {{ price }} }</script>

sarà renderizzato come:

<script type="application/ld+json">{ "price": 37.50 }</script>

Il prezzo visualizzato sarà quello lordo o netto in base al cliente. In alternativa usare p.Gross per visualizzare sempre quello lordo e p.Net per visualizzare sempre quello netto.

Presente a partire dalla versione 7.2.44

String

func (p Price) String() string

String ritorna il prezzo (lordo o netto in base al gruppo clienti corrente) sotto forma di stringa.

Esempio

Se la variabile price ha tipo Price e valore 37.50 allora il seguente codice:

{{ price }}

sarà renderizzato come:

37.50

type PriceTier

Il tipo PriceTier rappresenta un prezzo che varia per quantità.

type PriceTier struct {

    // Sconto rispetto al prezzo di listino.
    Discount Discount

    // Quantità a partire dalla quale si applica il prezzo.
    From Decimal

    // Prezzo di listino.
    ListPrice Price

    // Prezzo di vendita.
    Price Price

    // Quantità fino alla quale si applica il prezzo.
    To Decimal

}

type Processing

Il tipo Processing rappresenta un trattamento sulla privacy secondo la normativa GDPR.

type Processing struct {

    // Casella da selezionare per accettare il consenso sul trattamento.
    Consent html

    // Descrizione del trattamento.
    Description string

    // Identificativo univoco del trattamento.
    ID int

    // Indica se il consenso è obbligatorio.
    IsConsentRequired bool

    // Collegamento alla pagina con i dettagli.
    MoreInfo html

    // Titolo del trattamento.
    Title string

}

type ProductImage

Il tipo ProductImage rappresenta una immagine di un prodotto.

type ProductImage struct {

    // Immagine.
    Image

    // Indirizzo della corrispondente immagine di zoom.
    ZoomImageURL string

}

Un valore di tipo ProductImage può essere direttamente visualizzato nell'HTML:

{{ image }}

in quanto su un valore di tipo ProductImage si può chiamare il metodo HTML.

HTML

func (image ProductImage) HTML() html

HTML ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.

type PrintedItem

type PrintedItem struct {

    // Nome.
    Name string

    // Prezzo.
    Price Price

    // Quantità.
    Quantity Decimal

    // Richieste del cliente.
    Requests string

    // Codice di magazzino.
    SKU string

    // Codice della classe IVA.
    TaxCode string

    // IVA in percentuale.
    TaxRate Decimal

    // Prezzo totale.
    TotalPrice Price

}

type PrintedTax

type PrintedTax struct {

    // Ammontare della tassa.
    Amount Decimal

    // Codice della classe IVA.
    Code string

    // Nome della classe IVA.
    Name string

    // IVA in percentuale.
    Rate Decimal

    // Totale tassabile.
    TaxableTotal Decimal

}

type Producer

Il tipo Producer rappresenta un produttore.

type Producer struct {
    
    // Identificativo.
    ID int
    
    // Nome.          
    Name LinkedText
    
    // Logo.
    Logo LinkedImage
    
}

Un valore Producer può essere direttamente visualizzato nell'HTML:

{{ producer }}

in quanto su un valore di tipo Producer si può chiamare il metodo HTML.

type Product

Il tipo Product rappresenta un prodotto.

type Product struct {

    // Pulsante per aggiungere il prodotto al carrello.
    ButtonAddToCart html

    // Pulsante per aggiungere il prodotto alla lista dei desideri.
    ButtonAddToWishList html

    // Pulsante per rimuovere un prodotto dalla lista dei desideri,
    // disponibile solo nella pagina wish-list.html
    ButtonRemove html

    // Codice del prodotto.
    Code string

    // Reparto principale del prodotto.
    Department string

    // Sconto rispetto al prezzo di listino.
    Discount Discount

    // Identificatore del prodotto.
    ID int

    // Indica se è in vendita.
    IsForSale bool

    // Indica se è una novità.
    IsNewRelease bool

    // Indica se è in pre-ordine.
    IsPreOrder bool

    // Immagine larga. Potrà essere visualizzata in dimensione piccola o
    // media se diversamente indicato nel gestionale.
    LargeImage LinkedImage

    // Prezzo di listino.
    ListPrice Price

    // Immagine media. Potrà essere visualizzata in dimensione piccola o
    // larga se diversamente indicato nel gestionale.
    MediumImage LinkedImage

    // Messaggio che informa il cliente che può richiedere un preventivo sul
    // prodotto con una quantità minima.
    MinQuoteMessage html

    // Nome.
    Name LinkedText

    // IVA in percentuale.
    PercentTax Decimal

    // Posizione del prodotto nell'elenco a partire da uno. Utilizzato in
    // particolare nei prodotti più venduti.
    Position int

    // Messaggio che informa che il prodotto è in pre-ordine.
    PreOrderMessage html

    // Prezzo di vendita.
    Price Price

    // Produttore.
    Producer string

    // Logo del produttore.
    ProducerLogo LinkedImage

    // Rating delle recensioni da 0.0 a 5.0.
    ReviewRating Decimal

    // Descrizione breve.
    ShortDescription html

    // Codice di magazzino della referenza primaria.
    SKU string

    // Immagine piccola. Potrà essere visualizzata in dimensione media o
    // larga se diversamente indicato nel gestionale.
    SmallImage LinkedImage

}

type Promotion

Il tipo Promotion rappresenta una promozione.

type Promotion struct {

    // Descrizione.
    Description string

    // Ora di disattivazione della promozione.
    EndHour Hour

    // Data di termine.
    EndTime Time

    // Immagine piccola.
    Image LinkedImage

    // Indica se la promozione è attiva.
    IsActive bool

    // Immagine grande.
    LargeImage LinkedImage

    // Nome.
    Name LinkedText

    // Immagine piccola.
    SmallImage LinkedImage

    // Ora di attivazione della promozione.
    StartHour Hour

    // Data di inizio.
    StartTime Time

}

type PromotionValidity

Il tipo PromotionValidity rappresenta le informazioni temporali sulla validità di una promozione.

type PromotionValidity struct {

    // Data e ora di termine della promozione.
    EndTime Time

    // Ora di attivazione della promozione.
    StartHour Hour

    // Ora di disattivazione della promozione.
    EndHour Hour

}

type ProductFile

Il tipo ProductFile rappresenta un file allegato ad un prodotto.

type ProductFile struct {

    // Descrizione.
    Description LinkedText

    // Dimensione in KB.
    Size string

}

type QuoteInList

Il tipo QuoteInList rappresenta un preventivo nella pagina documents.html.

type QuoteInList struct {

    // Pulsante per vedere il preventivo.
    ButtonView html

    // Data di creazione.
    Date Time

    // Numero.
    Number string

    // Stato.
    Status html

    // Totale.
    Total Price

    // Indirizzo della pagina di dettaglio del preventivo.
    URL string

}

type Regexp

Il tipo Regexp rappresenta una espressione regolare su cui fare delle ricerche sulle stringhe.

type Regexp struct {
    // Contiene solo campi non esportati.
}

Match

func (re Regexp) Match(s string) bool

Match indica se la stringa s contiene un match dell'espressione regolare.

Find

func (re Regexp) Find(s string) string

Find ritorna una stringa con il test del match più a sinistra in s dell'espressione regolare.

FindAll

func (re Regexp) FindAll(s string) []string

FindAll ritorna uno slice di tutti i match dell'espressione regolare.

FindAllSubmatch

func (re Regexp) FindAllSubmatch(s string) [][]string

FindAllSubmatch ritorna uno slice di tutti i sotto-match dell'espressione regolare.

FindSubmatch

func (re Regexp) FindSubmatch(s string) []string

FindSubmatch ritorna uno slice dei sotto-match dell'espressione regolare.

ReplaceAll

func (re Regexp) ReplaceAll(src, repl string) string

ReplaceAll ritorna una copia di src sostituendo i match dell'espressione regolare con la strinfa repl.

ReplaceAllFunc

func (re Regexp) ReplaceAllFunc(src, repl func(string) string) string

ReplaceAllFunc ritorna una copia di src sostituendo i match dell'espressione regolare con i valori di ritorno della funzione repl applicata alle sottostringhe dei match.

Split

func (re Regexp) Split(s string, n int) []string

Split suddivide s in sotto stringhe separate in base all'espressione regolare e ritorna uno splice delle sotto stringhe tra i metch.

type Resource

Il tipo Resource rappresenta una risorsa come ad esempio un prodotto, un reparto o un produttore.

type Resource struct {

    // Identificativo.
    ID int

    // Tipo. Può essere "Department", "Product", "Producer",
    // "AttributeValue", "Promotion", "Page" or "BlogPost".
    Type string

}

type Return

Il tipo Return rappresenta un reso.

type Return struct {

    // Pulsante per stampare il reso.
    ButtonPrint html

    // Data in cui è stata fatta la richiesta di reso.
    Date Time

    // Referenze di cui è stato richiesto il reso.
    Items []ReturnItem

    // Numero.
    Number string

    // Stato.
    Status html

}

type ReturnItem

Il tipo ReturnItem rappresenta una riga di un reso.

type ReturnItem struct {

    // Stato di approvazione del reso del prodotto.
    Approval html

    // Commenti del cliente sul prodotto inseriti alla richiesta del reso.
    Comments string

    // Immagine larga, se presente.
    LargeImage LinkedImage

    // Immagine media, se presente.
    MediumImage LinkedImage

    // Nome.
    Name html

    // Prezzo.
    Price Price

    // Quantità.
    Quantity Decimal

    // Motivo della richiesta di reso.
    Reason string

    // Codice di magazzino.
    SKU string

    // Immagine piccola, se presente.
    SmallImage LinkedImage

    // Codice della classe IVA.
    TaxCode string

    // IVA in percentuale.
    TaxRate Decimal

}

type ReturnableItem

Il tipo ReturnableItem rappresenta una referenza di cui può essere fatto il reso.

type ReturnableItem struct {

    // Casella selezionabile per aggiungere la referenza al reso.
    AddToReturn html

    // Commenti del cliente.
    Comments html

    // Data di consegna della relativa spedizione.
    DeliveryDate Time

    // Identificativo della referenza nell'ambito del reso.
    ID string

    // Informazioni sulle condizioni per fare il reso.
    Info string

    // Nome.
    Name string

    // Numero del relativo ordine.
    OrderNumber string

    // Quantità di cui fare il reso.
    Quantity TextField

    // Menù per la scelta del motivo del reso.
    Reasons html

    // Quantità massima di cui si può fare il reso.
    ReturnableQuantity Decimal

    // Codice di magazzino.
    SKU string

}

type Review

Il tipo Review rappresenta una recensione di un prodotto.

type Review struct {

    // Autore.
    Author string

    // Codice.
    Code string

    // Contenuto.
    Content string

    // Data.
    Date Time

    // Rating da 0.0 a 5.0.
    Rating Decimal

    // Sommario.
    Summary string

}

type ShippingMethod

Il tipo ShippingMethod rappresenta un metodo di spedizione che può essere selezionato durante il checkout.

type ShippingMethod struct {

    // Casella selezionabile per scegliere il metodo di spedizione.
    Choice html

    // Nome.
    Name html

}

type Shipment

Il tipo Shipment rappresenta una spedizione.

type Shipment struct {

    // Pulsante per fare il reso delle referenze.
    ButtonReturnItems html

    // Data di consegna.
    DeliveryDate Time

    // Referenze spedite.
    Items []ShipmentItem

    // Data di spedizione.
    ShipmentDate Time

    // Numero di tracciamento.
    TrackingNumber string

    // Link alla pagina di tracciamento.
    TrackingURL html

}

type ShipmentItem

Il tipo ShipmentItem rappresenta una riga di un reso.

type ShipmentItem struct {

    // Pulsante per aggiungere la referenza al carrello
    // nella quantità della spedizione.
    ButtonAddAllToCart html

    // Pulsante per aggiungere la referenza al carrello
    // nella sua quantità minima ordinabile.
    ButtonAddToCart html

    // Indica se è possibile richiedere il reso.
    IsReturnable bool

    // Immagine larga, se presente.
    LargeImage LinkedImage

    // Ultimo giorno per richiedere il reso.
    LastDateToReturn Time

    // Immagine media, se presente.
    MediumImage LinkedImage

    // Nome.
    Name html

    // Prezzo.
    Price Price

    // Quantità.
    Quantity Decimal

    // Richieste del cliente.
    Requests string

    // Codice di magazzino.
    SKU string

    // Immagine piccola, se presente.
    SmallImage LinkedImage

    // Codice della classe IVA.
    TaxCode string

    // IVA in percentuale.
    TaxRate Decimal

}

type SiblingDepartment

Il tipo SiblingDepartment rappresenta il reparto fratello di un determinato reparto.

type SiblingDepartment struct {

    // Immagine piccola.
    Image LinkedImage

    // Nome.
    Name LinkedText

}

type Snippet

Il tipo Snippet rappresenta uno snippet ritornato dalla funzione snippet.

Contiene solamente campi non esportati ma un valore di questo tipo può essere direttamente visualizzato nell'HTML:

{{ snippet("rating") }}

in quanto su un valore di tipo Snippet si può chiamare il metodo HTML. Se non esiste lo snippet con il nome passato come argomento alla funzione snippet, visualizza un commento HTML con il messaggio di errore.

Error

func (s Snippet) Error() error

Error ritorna l'errore che si è verificato nel leggere lo snippet. Ritorna nil se non si è verificato nessun errore.

HTML

func (s Snippet) HTML() html

HTML ritorna lo snippet in formato adatto per essere inserito nel codice HTML.

type TextField

Il tipo TextField rappresenta un campo di testo di un modulo.

type TextField struct {

    // Errore verificatosi nella compilazione del campo.
    Error html

    // Indica se il campo è obbligatorio.
    Required bool

    // Il valore del campo.
    Value string

}

Un valore di tipo TextField può essere direttamente visualizzato nell'HTML:

{{ item }}

in quanto su un valore di tipo TextField si può chiamare il metodo HTML.

HTML

func (field TextField) HTML() html

HTML ritorna il campo in un formato adatto per essere mostrato in una pagina HTML.

type Thumbnail

Il tipo Thumbnail rappresenta una miniatura di una immagine di un prodotto.

type Thumbnail struct {

    // Immagine.
    Image

    // Indirizzo della corrispondente immagine larga.
    LargeImageURL string

    // Indirizzo della corrispondente immagine zoom.
    ZoomImageURL string

}

type Thumbnails

Il tipo Thumbnails rappresenta le miniatura delle immagini di un prodotto.

type Thumbnails []Thumbnail

Un valore di tipo Thumbnails può essere direttamente visualizzato nell'HTML:

{{ thumbnails }}

in quanto su un valore di tipo Thumbnails si può chiamare il metodo HTML.

HTML

func (t Thumbnails) HTML() html

HTML ritorna le miniature in un formato adatto per essere mostrato in una pagina HTML.

type Time

Il tipo Time rappresenta un istante di tempo.

type Time struct {
    // Contiene solo campi non esportati.
}

Add

func (t Time) Add(d builtin.Duration) Time

Add restituisce il Time t+d

AddDate

func (t Time) AddDate(years, months, days int) Time

AddDate restituisce il Time ottenuto aggiungendo years anni, months mesi e days giorni a t. Ad esempio AddDate(-1, 2, 3) applicato al 1° Gennaio 2011 restituisce il 4 Marzo 2010.

After

func (t Time) After(u Time) bool

After indica se l'instante t è successivo a u.

func (t Time) Before(u Time) bool

Before indica se l'instante t è precedente a u.

Clock

func (t Time) Clock() (hour, minute, second int)

Clock restituisce l'ora, il minuto e il secondo nel giorno specificato da t. hour è compreso tra 0 e 23, minute e second sono compresi tra 0 e 59.

Date

func (t Time) Date() (year, month, day int)

Date restituisce l'anno, il mese e il giorno nei quali t ricade. month è compreso tra 1 e 12, day è compreso tra 1 e 31.

Day

func (t Time) Day() int

Day restituisce il giorno nel quale t ricade. Il risultato è compreso tra 1 e 31.

Equal

func (t Time) Equal(u Time) bool

Equal indica se t e u rappresentano lo stesso istante.

Format

func (t Time) Format(layout string) string

Format restituisce la rappresentazione testuale di t formattato in base a layout.
layout definisce il formeto mostrando come l'istante di riferimento

Mon Jan 2 15:04:05 -0700 MST 2006

sarebbe mostrata se fosse il valore t.
Ad esempio Format("01/02/2006 15:04") applicato alle 12:30 del 21 Febbraio 2022, restituisce "21/02/2022 12:30".

Hour

func (t Time) Hour() int

Hour restituisce l'ora nella giornata in cui t ricade. Il risultato è compreso tra 0 e 23.

IsZero

func (t Time) IsZero() bool

IsZero indica se t rappresenta l'istante zero, ossia il 1° Gennaio dell'anno 1 alle 0:00:00 UTC.

JS

func (t Time) JS() JS

JS restituisce t come data JavaScript. Il risultato è undefined se l'anno di t non è compreso tra -999999 e 999999.

JSON

func (t Time) JSON() JSON

JSON restituisce t in un formato usabile nel JSON.

Month

func (t Time) Month() int

Month restituisce il mese dell'anno specificato da t. Il valore restituito è compreso tra 1 e 12, dove 1 è Gennaio e 12 è Dicembre.

Minute

func (t Time) Minute() int

Minute restituice il minuto nell'ora specificata da t. Il valore restituito è compreso tra 0 e 59.

Nanosecond

func (t Time) Nanosecond() int

Nanosecond restituisce il nanosecondo nel secondo specificato da t. Il valore restituito è compreso tra 0 e 999999999.

Round

func (t Time) Round(d builtin.Duration) Time

Round restituisce il risultato dell'arrotondamento di t al più vicino multiplo di d (dal Time zero). L'arrotondamento è effettuato per eccesso.

Second

func (t Time) Second() int

Second restituisce il secondo nel minuto specificato da t. Il valore restituito è compreso tra 0 e 59.

String

func (t Time) String() string

String restituisce la rappresentazione testuale di t formattato in base al layout "2006-01-02 15:04:05.999999999 -0700 MST".

Sub

func (t Time) Sub(u Time) Duration

Sub restituisce la Duration t-u. Per calcolare t-d per la Duration d, usare t.Add(-d).

Truncate

func (t Time) Truncate(d Duration) Time

Truncate restituisce il risultato del troncamento di t al più vicino multiplo di d (dal Time zero).

UTC

func (t Time) UTC() Time

UTC restituisce t con la location impostata a UTC

Unix

func (t Time) Unix() int64

Unix restituisce t come Unix time, cioè il numero di secondi trascorsi dal 1° Gennaio 1970 UTC.

UnixNano

func (t Time) UnixNano() int64

UnixNano restituisce t il numero di nanosecondi trascorsi dal 1° Gennaio 1970 UTC.

Weekday

func (t Time) Weekday() int

Weekday restituisce il giorno della settimana specificato da t.

Year

func (t Time) Year() int

Year restituisce l'anno nel quale t ricade.

YearDay

func (t Time) YearDay() int

YearDay restituisce il giorno dell'anno specificato da t. Il valore restituito è compreso tra 1 e 365 per gli anni bisestili, tra 1 e 366 per quelli bisestili.

type Variant

Il tipo Variant rappresenta una variante.

type Variant struct {

    // Nome.
    Name string

    // Opzioni.
    Options html

}