Moduli nel processo di ordine

Inhaltsverzeichnis

Introduzione

PepperShop offre un generatore di moduli facilmente integrabile, progettabile dinamicamente e multilingue con il sistema di moduli ordine. Attualmente, un modulo è fisso come modello – dopo la cassa e prima dell’anteprima dell’ordine.

Per utilizzare questo modulo, sono richieste conoscenze HTML e PHP.

File e integrazione

File

shop/ Descrizione
USER_BESTELLUNG_1.phpbestellformular/ Processo di ordine di PepperShop / Integrazione
nach_kasse_form.php Modello di modulo
nach_kasse_elements.php Elementi del modulo (indipendenti dalla lingua)
nach_kasse_de.php Definizioni di elementi in tedesco
nach_kasse_en.php Definizioni di elementi in inglese
nach_kasse_fr.php Definizioni di elementi in francese
nach_kasse_it.php Definizioni di elementi in italiano

Integrazione nel processo di ordine

L’unico modulo che esiste finora, il modulo ‘nach_kasse’, è integrato nel file shop/USER_BESTELLUNG_1.php. Dopo la cassa e prima dell’anteprima dell’ordine. L’integrazione avviene nell’area darstellen == 2. All’inizio dell’area, viene verificato se si proviene dalla cassa o dal modulo, e più in basso viene inserito il controllo della visualizzazione del modulo o dell’anteprima dell’ordine. Il controllo della visualizzazione avviene tramite la costante NACH_KASSE_FORM definita in shop/util.php. Per impostazione predefinita, questa è impostata su false (Boolean).

Modello(i) di modulo

Generale

Come descritto nel capitolo File e integrazione, c'è il file shop/bestellformular/nach_kasse_form.php, che contiene il modello HTML del modulo. In realtà, non solo un modello, ma diversi:

Modello Descrizione
$form_strings['title'] Titolo del modulo (non HTML <title>)
$form_strings['head'] Parte del modulo prima degli elementi
$form_strings['element'] Descrizione di un elemento
$form_strings['begruendung'] Descrizione della giustificazione (se utilizzata)
$form_strings['footer'] Parte del modulo dopo gli elementi

Le definizioni del modello sono ciascuna in una stringa PHP, che di solito si estende su più righe.

Variabili

Le variabili che vengono sostituite dal sistema di modello di modulo sono racchiuse tra parentesi graffe. Alcuni esempi: | Variabili | Descrizione | | ——— | ——— | |{get_localized_text[formulartitel]}| Leggere variabile localizzata (qui formulartitel) | |{selection}| all’interno di una definizione di elemento non ci sono prefissi| |{special:name}| ‘special:’ = prefisso per distinzione|

Elementi nascosti

Ci sono tre elementi di input HTML nascosti che vengono utilizzati per il controllo della visualizzazione e devono quindi essere sempre presenti:

<input type="hidden" name="von_bestellformular" value="true">
<input type="hidden" name="lang" value="'.$lang.'">
<input type="hidden" name="javascript_enabled" value="'.$javascript_enabled.'">

Tag <form>

Qualcosa di speciale è naturalmente sempre il tag HTML <form ... >, perché questo rappresenta la connessione del modulo con il processo di ordine dal punto di vista del modulo.

<form name="Bestellformular" action="'.$link_zum_check.'" method="post">

Importante qui è la variabile PHP $link_zum_check. Questa variabile contiene la posizione dove il modulo invia i dati del cliente inseriti per la verifica. Nel file del modello di modulo, puoi vedere le definizioni delle variabili PHP all’inizio, una delle quali è questo collegamento. Il collegamento di ritorno è realizzato tramite collegamento HTML, questa variabile è anche definita all’inizio del file.

Definizione elemento

Un elemento, o la sua definizione, consiste in due parti: Una parte dipendente dalla lingua e una parte indipendente. Il nome del modulo, l’etichetta (cosa viene mostrato al cliente del negozio), il tipo di validazione dell’input (testo, esatto, nulla, …) e le opzioni sono definiti…

Dati indipendenti dalla lingua

Questi dati sono definiti nel file shop/bestellformular/nach_kasse_elements.php. Una voce di esempio appare così:

$form_elements[0]['name']       = 'keine_medikamente_einnehmen';
$form_elements[0]['type']       = 'dropdown';

È importante aumentare il numero ([0]) per elemento, non devono esserci lacune nella numerazione.

Come puoi vedere, la definizione dell’elemento è realizzata tramite array PHP.

  • 'name' Questo si riferisce a un nome interno, meglio usare solo [a-zA-Z0-9_]
  • 'type' Che tipo è l’elemento: dropdown, text, radio, checkbox, textarea

Le opzioni del campo di testo sono anche indipendenti dalla lingua, ma sono spiegate nella parte dipendente dalla lingua, poiché i tipi di campi di input sono descritti lì. Tutte le ulteriori impostazioni sono dipendenti dalla lingua e si trovano nei file corrispondenti.

Dati dipendenti dalla lingua

Le definizioni di un elemento che dipendono da una lingua si trovano in un file separato per ogni lingua. I nomi dei file possono essere facilmente assegnati a una lingua, il postfisso è il codice ISO-639-1 della lingua, formato: Formularname_ISO-Code.php. Ecco alcuni esempi:

  • nach_kasse_de.php Tedesco
  • nach_kasse_en.php Inglese
  • nach_kasse_fr.php Francese
  • nach_kasse_it.php Italiano

I dati dipendenti dalla lingua sono i seguenti, dati parzialmente dipendenti dal tipo:

Dati Descrizione
$form_elements[0]['name'] Nome dell’elemento (nome interno)
$form_elements[0]['label'] nome visualizzato (designazione / etichetta)
$form_strings['element'] Messaggio di errore se il controllo non viene superato
$form_elements[0]['check_type'] Tipo di controllo (ad es. @text, …)

Info: I moduli di ordine utilizzano per impostazione predefinita un controllo della lingua indipendente in PepperShop.

check_type – cosa deve essere controllato?

Qual è il valore/intervallo di valori accettato per questo elemento. Se viene dato un valore diverso dal cliente del negozio, PepperShop gli mostra il messaggio di errore specificato in error_msg e viene rinviato al modulo. | Tipi di controlli | Descrizione | | ——— | ——— | |irgendwas| = esattamente questo testo è richiesto | |–irgendwas| = tutto è permesso, eccetto stringa vuota e la stringa specificata| |@text| = qualsiasi testo può essere inserito, una stringa vuota è riconosciuta come falsa | |@email| = Solo un indirizzo e-mail è accettato (solo controllo sintattico) | |= Se non specifichi nulla, l’elemento non viene controllato|

Seguono ora le definizioni di elementi che dipendono dal tipo di elemento, c'è un esempio per ogni tipo nel file di definizione dipendente dalla lingua.

Un menu a discesa consiste in opzioni. La selezione di queste opzioni viene visualizzata al cliente del negozio. I valori a discesa (dropdown_values) sono di nuovo organizzati in un array da 0-n. Poiché un valore a discesa stesso consiste in diverse definizioni, anche il valore stesso è definito in un array (array(…)). Il ‘value’ contiene il valore trasmesso via POST, ‘label’ il nome visualizzato. La definizione opzionale ‘option_color_style’ contiene un valore di colore codificato in esadecimale, come è comune sul web, con un # precedente. L’assegnazione del valore di colore funziona correttamente solo in Internet Explorer.

$form_elements[0]['dropdown_values'][0] = array('value'=>'Ja','label'=>'Ja'  ,'option_color_style'=>'#33CC33');
$form_elements[0]['dropdown_values'][1] = array('value'=>'Nein','label'=>'Nein', 'option_color_style'=>'#FF0000');

text

Un campo di testo deve anche sapere quanto lungo deve essere il campo di input ‘size’ e quale deve essere la sua lunghezza massima – ‘maxlength’. Poiché il campo di testo non contiene dati dipendenti dalla lingua, la definizione è fatta nel file nach_kasse_elements.php:

$form_elements[0]['options']    = array('size'=>10,'maxlength'=>30);

radio

In modo che non devi interrogare ulteriori definizioni di nomi di campo nel codice del programma, i dropdown_values sono stati utilizzati qui nell’API v.1.0. Hai di nuovo ‘name’ e ‘label’, ma poi una nuova definizione ‘default’. Questo campo contiene un valore booleano. Se = true, questo campo serve come campo predefinito preselezionato nel gruppo di pulsanti radio. Per gruppo di pulsanti radio, dovrebbe sempre esserci solo un campo che ha ‘default’ = true. Tutti gli altri campi del gruppo devono avere ‘default’ = false.

Nell’esempio seguente, puoi vedere come puoi integrare informazioni sul colore per l’etichetta usando un tag <span> semplice, ad esempio.

$form_elements[0]['dropdown_values'][0] = array('value'=>'Ja' ,'label'=>'<span 
style="color:#33CC33">Ja</span>'  ,'default'=>true);
$form_elements[0]['dropdown_values'][1] = array('value'=>'Nein','label'=>'<span 
style="color:#FF0000">Nein</span>','default'=>false);

checkbox

La stessa sintassi si applica qui come per il gruppo di pulsanti radio. La definizione ‘default’ qui significa che la casella di controllo è preselezionata. La casella di controllo ha la proprietà che trasmette il suo valore solo quando è attivata. Se questo non è il caso, nessun valore POST viene generato e trasmesso, questo è solo per informazione.

$form_elements[0]['dropdown_values'] = array('value'=>'Ja','label'=>'<span
style="color:#33CC33">Ja</span>','default'=>true);

textarea

Con un’area di testo, può anche essere interrogato un testo più grande. Qui devi definire il numero di righe (‘rows’) e colonne (‘cols’), così come il tipo di interruzione di riga (‘wrap’). I valori possibili qui sono gli stessi della specifica HTML 4.01.

$form_elements[0]['dropdown_values'] = array('rows'=>10,'cols'=>3,'wrap'=>'physical','default_value'=>'Mein Text');

Flusso del processo nel processo di ordine

Teoricamente, i moduli possono essere integrati in qualsiasi posizione nel processo di ordine. I rispettivi controller dovrebbero essere inseriti nelle posizioni corrispondenti nel gestore del processo di ordine : shop/USER_BESTELLUNG_1.php.

Figura 1: Flusso del processo nel processo di ordine

Come vengono valutati i risultati del controllo?

Nel file shop/bestellformular/nach_kasse_elements.php, due variabili possono essere definite all’inizio del file: $form_check_commit (come devono essere interpretati gli errori) e l’array $form_check_begruendung, in cui i dettagli sono descritti se l’interpretazione ‘begruendung’ è scelta.

Tipi di interpretazione

La variabile $form_check_commit può ricevere due valori diversi:

  1. einzeln: Il controllo di ogni singolo elemento deve essere soddisfatto. Se anche uno solo non viene superato con successo, il cliente non può procedere. Questo è il metodo di valutazione del modulo standard.
  2. begruendung: Se la scelta cade su ‘begruendung’, al cliente viene chiesta una giustificazione sul perché ha scelto in questo modo per i controlli falliti. Se il cliente del negozio non viola alcun controllo degli elementi inseriti nell’array $form_check_begruendung['exclude'], può passare. Dopo tanta prosa, il flusso di controllo di nuovo in un elenco: 2.1 Almeno un controllo non è soddisfatto, se sì: 2.2 Visualizzare i messaggi di errore e il campo di giustificazione. 2.3 Se il cliente del negozio non fornisce una giustificazione e almeno un controllo è ancora difettoso, il cliente viene impedito di procedere. 2.4 Se il cliente supera tutti i controlli o ha almeno fornito una giustificazione, viene avviato un altro controllo: 2.5 Il cliente del negozio viola ancora un controllo che è escluso dalla clausola di giustificazione (elemento contenuto nell’array exclude). Se sì, l’interpretazione ‘einzeln’ descritta in 1) si applica a questo elemento – deve superare questo controllo.

Ulteriore aiuto

Avete domande o avete bisogno di assistenza? Avete esigenze particolari o desiderate una soluzione personalizzata per il vostro sistema? Il nostro team di supporto sarà lieto di aiutarvi. I servizi di supporto vengono fatturati in base al tempo impiegato a CHF 195.- / ora. Ecco come raggiungerci:

Altre pagine utili

🌶️
🔥
🌶️