In questa pagina sono documentati tutti i tipi di dato e i relativi metodi usati per le variabili e nelle funzioni globali.
Per i tipi di dato di base di Scriggo, vedere la documentazione sui tipi di dato in Scriggo.
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
.
func (image AlignedImage) HTML() html
HTML
ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.
func (image AlignedImage) IsZero() bool
IsZero
ritorna true
se l'immagine non è presente.
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
.
func (item AncestorItem) HTML() html
HTML
ritorna l'ancestor item in un formato adatto per essere mostrato in una pagina HTML.
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
.
func (filter AppliedFilter) HTML() html
HTML
ritorna il filtro applicato in un formato adatto per essere mostrato in una pagina HTML.
Il tipo Attribute
rappresenta un attributo di un prodotto.
type Attribute struct {
// Identificatore.
ID int
// Nome.
Name string
// Valori.
Values []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
}
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
.
func (icon AttributeValueIcon) HTML() html
HTML
ritorna l'icona in un formato adatto per essere mostrato in una pagina HTML.
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
.
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
}
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
.
func (image BannerImage) HTML() html
HTML
ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.
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
}
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.
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
}
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
.
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
}
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
}
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
}
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
}
Il tipo CartItemPromotion
rappresenta una promozione applicata alla riga.
type CartItemPromotion struct {
// Identificatore della promozione.
ID int
// Nome della promozione.
Name string
}
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
}
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.
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
}
Il tipo ChildDepartment
rappresenta il reparto figlio di un determinato reparto.
type ChildDepartment struct {
// Identificatore.
ID int
// Immagine piccola.
Image LinkedImage
// Nome.
Name LinkedText
}
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
}
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
}
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 %}
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
}
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.
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.
func (currencies Currencies) IsTrue() bool
IsTrue
ritorna true
se il sito ha più valute.
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; }
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 #}
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
.
func (d Decimal) Add(d2 Decimal) Decimal
Add
ritorna la somma d
+ d2
.
func (d Decimal) Cmp(d2 Decimal) int
Cmp
compara d
e d2
e ritorna:
d
< d2
d
== d2
d
> d2
func (d Decimal) Div(d2 Decimal) Decimal
Div
ritorna la divisione d
/ d2
. Va in panic se d2
è 0.
func (d Decimal) Equal(d2 Decimal) bool
Equal
indica se d
== d2
come numeri decimali.
func (d Decimal) Float64() float64
Float64
ritorna il valore float64
più vicino a d
. Può ritornare +Inf
o -Inf
.
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.
func (d Decimal) IsNegative() bool
IsNegative
indica se d
< 0.
func (d Decimal) IsPositive() bool
IsPositive
indica se d
> 0.
func (d Decimal) IsZero() bool
IsZero
indica se d
== 0.
func (d Decimal) JS() string
JS
ritorna la rappresentazione di d
come un numero JavaScript. Consente di utilizzare un valore Decimal
nel codice JavaScript.
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>
func (d Decimal) JSON() string
JSON
ritorna la rappresentazione di d
come un numero JSON. Consente di utilizzare un valore Decimal
nel codice JSON.
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>
func (d Decimal) LessThan(d2 Decimal) bool
LessThan
indica se d
< d2
.
func (d Decimal) LessThanOrEqual(d2 Decimal) bool
LessThan
indica se d
<= d2
.
func (d Decimal) Mul(d2 Decimal) Decimal
Mul
ritorna la moltiplicazione d
* d2
.
func (d Decimal) Neg() Decimal
Neg
ritorna -d
.
func (d Decimal) Round(n int) Decimal
Round
ritorna d
arrotondato a n
cifre decimali.
func (d Decimal) String() string
String
ritorna la rappresentazione di d
sotto forma di stringa con tutte le sue cifre decimali significative.
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.
func (d Decimal) Sub(d2 Decimal) Decimal
Sub
ritorna la sottrazione d
- d2
.
func (d Decimal) Truncate(n int) Decimal
Truncate
ritorna d
troncato a n
cifre decimali.
type Department struct {
// Identificatore.
ID int
// Nome.
Name LinkedText
// Immagine piccola.
Image html
// Reparti figli.
ChildDepartments []Department
// Indirizzo canonico.
URL string
}
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
.
{% if parent, ok := dep.Parent(); ok %}
<p>Reparto genitore: {{ parent.Name }}</p>
{% end if %}
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
.
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>
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.
func (d Discount) IsZero() bool
IsZero
indica se d.Amount == 0
e d.Percent == 0
.
Il tipo Duration
rappresenta la differenza di tempo tra due istanti in nanosecondi.
La massima durata rappresentabile è di circa 290 anni.
func (d Duration) Hours() float64
Restituisce un float64
rappresentante la Duration d
in ore.
func (d Duration) Microseconds() int64
Restituisce un int64
rappresentante la Duration d
in microsecondi.
func (d Duration) Milliseconds() int64
Restituisce un int64
rappresentante la Duration d
in millisecondi.
func (d Duration) Minutes() float64
Restituisce un float64
rappresentante la Duration d
in minuti.
func (d Duration) Nanoseconds() int64
Restituisce un int64
rappresentante la Duration d
in nanosecondi.
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.
func (d Duration) Seconds() float64
Restituisce un float64
rappresentante la Duration d
in secondi.
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.
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
.
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 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
}
Il tipo FilterAncestor
rappresenta un reparto antenato.
type FilterAncestor struct {
// Identificatore del reparto antenato.
ID int
// Nome del reparto antenato.
Item AncestorItem
}
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
.
func (item FilterItem) HTML() html
HTML
ritorna la voce di filtro in un formato adatto per essere mostrato in una pagina HTML.
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
}
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.
}
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.
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.
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.
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.
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.
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
.
func (Hour Hour) HTML() html
HTML
ritorna l'ora formattata per la lingua corrente.
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:
<b>hello</b>
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>
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 #}
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
.
func (image Image) HTML() html
HTML
ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.
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
}
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
}
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);
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 #}
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
}
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
.
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.
func (languages Languages) IsTrue() bool
IsTrue
ritorna true
se il sito è disponibile in più lingue.
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
.
func (image LinkedImage) HTML() html
HTML
ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.
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
.
func (text LinkedText) HTML() html
HTML
ritorna il testo in un formato adatto per essere mostrato in una pagina HTML.
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
}
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
}
Il tipo Option
rappresenta una opzione di una variante.
type Option struct {
// Nome.
Name string
// Nome della corrispondente variante.
Variant string
}
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
}
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
}
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
}
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.
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.
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
.
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.
func (p Pagination) IsZero() bool
IsZero
indica se la paginazione non è presente ossia se p.Last <= 1
.
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
.
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 %}
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
}
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.
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.
func (p Price) IsZero() bool
IsZero
indica se p
== 0.
func (p Price) JS() string
JS
ritorna la rappresentazione di p
come numero JavaScript. Consente di utilizzare un valore Price
nel codice JavaScript.
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.
func (p Price) JSON() string
JSON
ritorna la rappresentazione di p
come numero JSON. Consente di utilizzare un valore Price
nel codice JSON.
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.
func (p Price) String() string
String
ritorna il prezzo (lordo o netto in base al gruppo clienti corrente) sotto forma di stringa.
Se la variabile price
ha tipo Price
e valore 37.50 allora il seguente codice:
{{ price }}
sarà renderizzato come:
37.50
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
}
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
}
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
.
func (image ProductImage) HTML() html
HTML
ritorna l'immagine in un formato adatto per essere mostrato in una pagina HTML.
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 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
}
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
.
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
}
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
}
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
}
Il tipo ProductFile
rappresenta un file allegato ad un prodotto.
type ProductFile struct {
// Descrizione.
Description LinkedText
// Dimensione in KB.
Size string
}
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
}
Il tipo Regexp
rappresenta una espressione regolare su cui fare delle ricerche sulle stringhe.
type Regexp struct {
// Contiene solo campi non esportati.
}
func (re Regexp) Match(s string) bool
Match
indica se la stringa s
contiene un match dell'espressione regolare.
func (re Regexp) Find(s string) string
Find
ritorna una stringa con il test del match più a sinistra in s
dell'espressione regolare.
func (re Regexp) FindAll(s string) []string
FindAll
ritorna uno slice di tutti i match dell'espressione regolare.
func (re Regexp) FindAllSubmatch(s string) [][]string
FindAllSubmatch
ritorna uno slice di tutti i sotto-match dell'espressione regolare.
func (re Regexp) FindSubmatch(s string) []string
FindSubmatch
ritorna uno slice dei sotto-match dell'espressione regolare.
func (re Regexp) ReplaceAll(src, repl string) string
ReplaceAll
ritorna una copia di src
sostituendo i match dell'espressione regolare con la strinfa repl
.
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.
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.
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
Il tipo SiblingDepartment
rappresenta il reparto fratello di un determinato reparto.
type SiblingDepartment struct {
// Immagine piccola.
Image LinkedImage
// Nome.
Name LinkedText
}
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.
func (s Snippet) Error() error
Error
ritorna l'errore che si è verificato nel leggere lo snippet. Ritorna nil
se non si è verificato nessun errore.
func (s Snippet) HTML() html
HTML
ritorna lo snippet in formato adatto per essere inserito nel codice HTML.
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
.
func (field TextField) HTML() html
HTML
ritorna il campo in un formato adatto per essere mostrato in una pagina HTML.
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
}
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
.
func (t Thumbnails) HTML() html
HTML
ritorna le miniature in un formato adatto per essere mostrato in una pagina HTML.
Il tipo Time
rappresenta un istante di tempo.
type Time struct {
// Contiene solo campi non esportati.
}
func (t Time) Add(d builtin.Duration) Time
Add
restituisce il Time
t
+d
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.
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
.
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.
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.
func (t Time) Day() int
Day
restituisce il giorno nel quale t
ricade. Il risultato è compreso tra 1 e 31.
func (t Time) Equal(u Time) bool
Equal
indica se t
e u
rappresentano lo stesso istante.
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".
func (t Time) Hour() int
Hour
restituisce l'ora nella giornata in cui t
ricade. Il risultato è compreso tra 0 e 23.
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.
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.
func (t Time) JSON() JSON
JSON
restituisce t
in un formato usabile nel JSON.
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.
func (t Time) Minute() int
Minute
restituice il minuto nell'ora specificata da t
. Il valore restituito è compreso tra 0 e 59.
func (t Time) Nanosecond() int
Nanosecond
restituisce il nanosecondo nel secondo specificato da t
. Il valore restituito è compreso tra 0 e 999999999.
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.
func (t Time) Second() int
Second
restituisce il secondo nel minuto specificato da t
. Il valore restituito è compreso tra 0 e 59.
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".
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)
.
func (t Time) Truncate(d Duration) Time
Truncate
restituisce il risultato del troncamento di t
al più vicino multiplo di d
(dal Time
zero).
func (t Time) UTC() Time
UTC
restituisce t
con la location impostata a UTC
func (t Time) Unix() int64
Unix
restituisce t
come Unix time, cioè il numero di secondi trascorsi dal 1° Gennaio 1970 UTC.
func (t Time) UnixNano() int64
UnixNano
restituisce t
il numero di nanosecondi trascorsi dal 1° Gennaio 1970 UTC.
func (t Time) Weekday() int
Weekday
restituisce il giorno della settimana specificato da t
.
func (t Time) Year() int
Year
restituisce l'anno nel quale t
ricade.
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.
Il tipo Variant
rappresenta una variante.
type Variant struct {
// Nome.
Name string
// Opzioni.
Options html
}