1
Seleziona una pagina

I caratteri più utilizzati su .htaccess

I caratteri più utilizzati su .htaccess

.htaccess page logo

L’indice dei caratteri utilizzati con .htaccess, una breve guida di riferimento

Questo non è un elenco esaustivo di caratteri, ma piuttosto una sorta di cheat sheet delle espressioni regolari, dei flag e dei codici di stato più comunemente utilizzati.

Per avere una guida completa ed esaustiva su .htaccess rimandiamo al sito htaccessbook.com.

Character/Flag Definition
# Instructs the server to ignore the line. Used for including comments.
[F] Forbidden: instructs the server to return a 403 Forbidden to the client.
[L] Last rule: instructs the server to stop rewriting after the preceding directive is processed.
[N] Next: instructs Apache to rerun the rewrite rule until all rewriting is complete.
[G] Gone: instructs the server to deliver Gone (no longer exists) status message.
[P] Proxy: instructs server to handle requests by mod_proxy.
[C] Chain: instructs server to chain the current rule with the previous rule.
[R] Redirect: instructs Apache to redirect to the specified URL. Note that the default status-code for the [R] flag is 302 (temporary redirect); for permanent redirects use [R=301].
[NC] No Case: defines any associated argument as case-insensitive.
[PT] Pass Through: instructs mod_rewrite to pass the rewritten URL for further processing.
[OR] Or: specifies a logical “or” that ties two expressions together such that either one proving true will cause the associated rule to be applied.
[NE] No Escape: instructs the server to parse output without escaping characters.
[NS] No Subrequest: instructs the server to skip the directive if internal sub-request.
[QSA] Append Query String: directs server to add the query string to the end of the expression.
[S=x] Skip: instructs the server to skip the next “x” number of rules if a match is detected.
[E=var:value] Environmental Variable: instructs the server to set the variable “var” to “value”.
[T=MIME-type] Mime Type: declares the mime type of the target resource.
[xyz] Character class: any character within square brackets will be a match. For example, “[xyz]” will match any of the characters x, y, or z.
[xyz]+ Character class in which any combination of items within the brackets will be a match. For example, “[xyz]+” will match any number of x’s, y’s, z’s, or any combination thereof.
[^xyz] Not within a character class. For example, [^xyz] will match any character that isn’t x, y, or z.
[a-z] A dash “-” between two characters within a character class denotes the range of characters between them. For example, [a-zA-Z] matches all lowercase and uppercase letters.
a{n} Exact number, n, of the preceding character, a. For example, x{3} matches exactly three x’s.
a{n,} Specifies n or more of the preceding character. For example, x{3,} matches three or more x’s.
a{n,m} Specifies a range of numbers, between n and m, of the preceding character, a. For example, x{3,7} matches three, four, five, six, or seven x’s.
() Used to group characters together, thereby considering them as a single unit. For example, (htaccess)?book will match “book”, with or without the “htaccess” prefix.
^ Denotes the beginning of a regular expression. For example, “^Hello” will match any string that begins with “Hello”. Without the caret “^”, “Hello” would match anywhere in the string.
$ Denotes the end of a regular expression. For example, “world$” will match any string that ends with “world”. Without the dollar sign “$”, “world” would match anywhere in the string.
? Declares as optional the preceding character. For example, “monzas?” will match “monza” or “monzas”. In other words, “x?” matches zero or one of “x”.
! Declares negation. For example, “!string” matches everything except “string”.
. A literal dot (or period) indicates any single arbitrary character.
Instructs Apache to NOT rewrite the URL. Example syntax: “example.com – [F]”
+ Matches one or more of the preceding character. For example, “G+” matches one or more G’s, while “+” will match one or more characters of any kind.
* Matches zero or more of the preceding character. For example, use “.*” as a wildcard.
| Declares a logical “or” operator. For example, “(x|y)” matches “x” or “y”.
\ Escape special characters such as: ^ $ ! . * | ( ) [ ] { }
\. Indicates a literal dot (escaped).
/* Zero or more slashes.
.* Zero or more arbitrary characters.
^$ Defines an empty string.
^.*$ The standard pattern for matching everything.
[^/.] Defines one character that is neither a slash nor a dot.
[^/.]+ Defines any number of characters that contains neither slash nor dot.
http:// This is a literal statement — in this case, the literal character string, “http://”.
^example.* Matches a string that begins with the term “example”, followed by any character(s).
^example\.com$ Defines the exact string, “example.com”.
-d Tests if string is an existing directory.
-f Tests if string is an existing file.
-s Tests if file in test string has a non-zero value.

Written by

CONTATTO

Articoli nella medesima categoria

Comments




Seleziona una pagina

Variabili globali Smarty in PrestaShop 1.7


I caratteri più utilizzati su .htaccess

PrestaShop logo

Un elenco delle variabili comuni Smarty in PrestaShop v1.7 utili per gli sviluppatori

In questo post indico le variabili Smarty utilizzate da Prestashop v1.7 utili per gli sviluppatori per poter visualizare un elemento o eseguire una funzione in base ad una condizione.

1. Variabili generali per il negozio in PrestaShop v1.7

{$shop.name} Nome
{$shop.email} Mail
{$shop.logo} Logo
{$shop.favicon} Icona (favicon)
{$shop.address.address1} Indirizzo: linea 1
{$shop.address.address2} Indirizzo: linea 2
{$shop.address.postcode} Cap
{$shop.address.city} Città
{$shop.address.state} Stato/Provincia
{$shop.address.country} Nazione
{$shop.phone} Telefono
{$shop.fax} Fax

2. Variabili della Lingua in PrestaShop v1.7

{$language.name} Lingua in uso (esempio: Italiano)
{$language.iso_code} codice ISO della lingua corrente (it per Italiano, en per Inglese, etc.)
{$language.language_code} codice della lingua corrente (it per Italiano, en-us per Inglese U.S.A., etc.)
{$language.is_rtl} restituisce 1 se la lingua è scritta da SX a DX; 0 se invece è da DX a SX come per il Giapponese)
{$language.id} ID della lingua in uso

3. Variabili della valuta in PrestaShop v1.7

{$currency.name} nome della valuta in uso (Euro, USD, Yen, etc.)
{$currency.iso_code} codice ISO della valuta in uso (Eur, USD, JPY, etc.)
{$currency.sign} simobolo della valuta in uso (€, $, ¥, etc.)
{$currency.iso_code_num} codice ISO numerico della valuta in corso (978 per Euro, 840 per Dollaro Americano, 392 per lo Yen, etc.)

4. Elenco delle variabili per pagine ed elementi  in PrestaShop v1.7

{$urls.base_url} indirizzo web del negozio (esempio: https://casanova1948.com)
{$urls.current_url} indirizzo web (url) della pagina che stiamo visualizzando
{$urls.shop_domain_url} dominio del negozio
{$urls.img_ps_url} root url della cartella delle immagini
{$urls.img_cat_url} url della cartella delle immagini di categoria
{$urls.img_lang_url} url della cartella delle immagini delle lingue
{$urls.img_prod_url} url della cartella delle immagini prodotto
{$urls.img_manu_url} url della cartella delle immagini dei produttori (manufacturers)
{$urls.img_sup_url} url della cartella delle immagini dei rivenditori (providers/suppliers)
{$urls.img_ship_url} url della cartella delle immagini dei corrieri
{$urls.img_store_url} url della cartella delle immagini del negozio/negozi (store)
{$urls.img_url} url della cartella delle immagini del nostro tema
{$urls.css_url} url della cartella dei file CSS del nostro tema
{$urls.js_url} url della cartella dei file JavaScript del nostro tema
{$urls.pic_url} url della cartella dei file CMS caricati
{$page.page_name} nome della pagina (file template)
{$page.meta.title} meta title della pagina (SEO)
{$page.meta.description} meta description della pagina (SEO)
{$page.meta.keywords} meta keywords della pagina (SEO)
{$page.meta.robots} indicizzazione o meno della pagina (SEO)
{$page.canonical} indica URL Canonical utilizzato per evitare contenuti duplicati (SEO)
{$urls.pages.address} url della sezione “Il mio indirizzo” (My Address”) per gli utenti registrati
{$urls.pages.addresses} Url della sezione “I miei indirizzi” (“My addresses”) per gli utenti registrati
{$urls.pages.authentication} url della pagina di autenticazione
{$urls.pages.cart} url del carrello (order summary)
{$urls.pages.category} url della categoria
{$urls.pages.cms} url della pagina CMS (type CMS)
{$urls.pages.contact} url della pagina ci contatto (contact us)
{$urls.pages.discount} url della pagina dei voucher (buoni sconto)
{$urls.pages.guest_tracking} url tracking per clienti non registrati
{$urls.pages.history} url dello storico ordine (“Order History”) per gli utenti registrati
{$urls.pages.identity} url dei dati persnali (“Personal data”) per gli utenti registrati
{$urls.pages.index} url della home
{$urls.pages.my_account} url della pagina Il mio Account (“My Account”) per gli utenti registrati
{$urls.pages.order_confirmation} url della pagina di conferma d’ordine (“Order Confirmation”)
{$urls.pages.order_follow} url della pagina di traking (“Order Tracking”) per gli utenti registrati
{$urls.pages.order} url della pagina d’ordine (“Order”)
{$urls.pages.order_return} url della pagina dei resi (“Order Return”)
{$urls.pages.order_slip} url della pagina delle note di credito (“Order Slip”)
{$urls.pages.pagenotfound} url della pagina “404 – Page not found”
{$urls.pages.password} url della apgina Recupero Password (“Recover Password”)
{$urls.pages.pdf_invoice} url della pagina delle fatture Pdf
{$urls.pages.pdf_order_return} url della pagina Pdf dei documenti di reso
{$urls.pages.pdf_order_slip} url della pagina Pdf delle note di credito (order slip)
{$urls.pages.prices_drop} url della pagina delle offerte (“Our Offers”)
{$urls.pages.product} url della pagina prodotto (“Product”)
{$urls.pages.search} url della pagina di ricerca (“Search”)
{$urls.pages.sitemap} url della mappa del sito (“Site Map”)
{$urls.pages.stores} url della pagina dei nostri negozi (“Shops/Our stores”)
{$urls.pages.supplier} url della pagina dei distributori (“Suppliers”)
{$urls.pages.register} url della pagina di registrazione (“Register”)
{$urls.pages.order_login} url della pagina di Login
{$urls.theme_assets} url della cartella degli “assets” del nostro tema
{$urls.actions.logout} url per il logout cliente per gli utenti registrati

5. Elenco delle variabili per il carrello in PrestaShop 1.7

{$cart.totals.total.amount} totale del carrello senza il simbolo della valuta (es: 98,00)
{$cart.totals.total.value} totale del carrello con valuta (es: 98,00 €)
{$cart.totals.total_including_tax.amount} totale del carrello, tasse incluse, senza il simbolo della valuta (es: 98,00)
{$cart.totals.total_including_tax.value} totale del carrello, tasse incluse, con il simbolo della valuta (es: 98,00 €)
{$cart.totals.total_excluding_tax.amount} totale del carrello, tasse encluse, senza il simbolo della valuta (es : 80,32)
{$cart.totals.total_excluding_tax.value} totale del carrello, tasse encluse, con il simbolo della valuta (es: 80,32 €)
{$cart.products_count} numero di prodotti nel carrello
{$cart.subtotals.products.amount} totale dei prodotti nel carrello senza simbolo della valuta
{$cart.subtotals.products.value} totale dei prodotti nel carrello con il simbolo della valuta
{$cart.subtotals.shipping.amount} totale costo della spedizione senza simbolo della valuta
{$cart.subtotals.shipping.value} totale costo della spedizione con simbolo della valuta

6. Elenco delle variabili per il cliente in PrestaShop 1.7

{$customer.lastname} cognome del cliente
{$customer.firstname} nome del cliente
{$customer.email} mail del cliente fornita durante il processo di registrazione
{$customer.birthday} data di compleanno del cliente
{$customer.newsletter} iscritto o meno alla newsletter (restituisce 1 se iscritto, 0 se non iscritto)
{$customer.newsletter_date_add} data di iscrizione alla newsletter
{$customer.ip_registration_newsletter} indirizzo IP del cliente al momento della sottoscrizione della newsletter
{$customer.optin} iscritto o meno alle offerte dei partner (restituisce 1 se iscritto, 0 se non iscritto)
{$customer.date_add} data registrazione del cliente
{$customer.date_upd} data ultima modica
{$customer.id} ID del cliente
{$customer.id_default_group} ID del Gruppo al cui cliente appartiene (Visitatore/Ospite/Cliente, etc.)
{$customer.is_logged} controllo se il cliente è loggato (restituisce 1 se loggato altrimenti 0)
{$customer.gender.name[$customer.gender.id]} gender del cliente

AddressID rappresenta l’ID dell’indirizzo del cliente in quanto potrebbe averne più di uno), per esempio John Doe potrebbe avere un indirizzo valido sia a Padova che a Roma, l’ID dell’indirizzo viene utilizato per recuperare la specifica informazione.
Dove indicato [AddressID] la richiesta fa specificamente riferimento all’ID dell’indirizzo desiderato
{$customer.addresses[AddressID].city} città
{$customer.addresses[AddressID].alias} alias
{$customer.addresses[AddressID].firstname} nome
{$customer.addresses[AddressID].lastname} cognome
{$customer.addresses[AddressID].company} azienda
{$customer.addresses[AddressID].address1} indirizzo linea 1
{$customer.addresses[AddressID].address2} indirizzo linea 2
{$customer.addresses[AddressID].postcode} cap
{$customer.addresses[AddressID].state} nome dello stato/provincia
{$customer.addresses[AddressID].id_state} ID ello stato/provincia
{$customer.addresses[AddressID].state_iso} codice iso della stato/provincia
{$customer.addresses[AddressID].country} nome della nazione
{$customer.addresses[AddressID].id_country} ID della nazione
{$customer.addresses[AddressID].country_iso} codice ISO della nazione
{$customer.addresses[AddressID].phone} telefono
{$customer.addresses[AddressID].phone_mobile} cellulare
{$customer.addresses[AddressID].dni} codice DNI
{$customer.addresses[AddressID].vat_number} partita iva/vat number
{$customer.addresses[AddressID].formatted} indirizzo formattato

7. Esempi di utilizzo delle variabili

Mostrare un testo solo se ci troviamo sulla home del negozio:
{if $page.page_name == ‘index’}
{l s=’Benvenuto sul nostro negozio‘ d=’Shop.Theme.Global’}
{/if}

Mostriamo un contenuto se ci troviamo in una pagina CMS:
{if $page.page_name == ‘cms’}
contenuto da visualizzare
{/if}

Mostrare un avviso oppure un prodotto se stiamo visualizzando il carrello:
{if $page.page_name == ‘cart’}
contenuto da visualizzare
{/if}

Visualizzare un messaggio di benvenuto traducibile se il cliente è loggato:
{if $customer.is_logged && $customer.firstname}
{l s=’Benvenuto‘ d=’Shop.Theme.Global’} {$customer.firstname}
{/if}

Visualizzare messaggi specifici se il cliente è o meno iscritto alla newsletter:
{if $customer.newsletter == 0}
{l s=’Registrati alla nostra Newsletter per non perderti le ultime offerte!d=’Shop.Theme.Customeraccount’}
{else}
{l s=’Tutti gli isctitti alla nostra Newsletter, come te, riceveranno periodicamente offerte vantaggiose ed esclusive!‘ d=’Shop.Theme.Customeraccount’}
{/if}

Written by

CONTATTO

Articoli nella medesima categoria

Comments





Seleziona una pagina

Aggiungere CSS e JavaScript su Prestashop 1.7.x


I caratteri più utilizzati su .htaccess

PrestaShop logo

Metodi e modi per aggiungere CSS e JavaScript in PrestaShop v1.7.x

In questo breve tutorial vedremo come aggiungere correttamente CSS e Javascript su Prestashop 1.7.x

Esistono tre differenti modalità per farlo adesso vedremo come:

1. Richiamare CSS e Javascript dai file .tpl

Se desideriamo aggiungere il file al caricamento dell’header del sito andremo ad aprire :
/themes/classic/templates/_partials/head.tpl or javascript.tpl

Oppure :
/themes/classic/templates/_partials/javascript.tpl

Se desideriamo aggiungere i file al caricamento dell’footer del sito andremo ad aprire :
themes/classic/templates/layouts/layout-both-columns.tpl

Ovviamente /classic/ rappresenta il nostro tema, l’esempio è sul tema fornito di default, qualora avessimo acquistato un template dovremmo usare il percorso corretto (/themes/[nostr-templete]/….

All’interno dei file possiamo riportare direttamente le nostre chiamate, qualora dovessimo invocare il Javascript dobbiamo ricordarci di utilizzare il {literal} [nostro-codice] {/literal} come previsto da Smarty.

In maniera diciamo, meno corretta, potremmo utilizzare la medesima notazione Smarty per includere CSS e Javascript in alcuni altri punti del nostro template o di un modulo, ad esempio all’interno del popup quanto altre modalità risultano difficoltose.

esempio_utilizzo_literal_in_smarty

Come consigliato dalla documentazione ufficiale, nella sezione asset-management potrebbe risultare più corretto andare ad includere direttamente i nostri CSS nel file custom.css e i nostri Javascript nel file custom.js così, nel caso di aggiornamenti del template (qualora non utilizzassimo un child theme) non andremo a perdere le nostre modifiche.

I file in questione li trovate al seguente percorso :

/themes/classic/assets/css/custom.css

/themes/classic/assets/js/custom.js

2. Utilizzare il file theme.yml

Il file theme.yml è il file di impostazioni del nostro tema genitore (parent theme) o tema figlio (child theme) introdotto dalla versione 1.7.x di Prestashp.
Questo file definisce configurazione la configurazione di base del template, le meta informazioni come ad esempio la versione del nostro template, alcune parti del layout, il rang di compatibilità, la configurazione telvolta di alcuni hook nonché può controllare il caricamento sia sull’header che sul footer di CSS e Javascrpt.

All’interno della documentazione ufficiale di gestione dei temi, impostazione e struttura del file theme.yml è possibile avere un overview particolarmente approfondito su come funziona, come strutturarlo ma anche cosa può gestire.

Come potete vedere, sull’esempio del tema di default, il file richiama le funzioni principali del template:

  • parent: [nome del tema genitore / solo se lavoriamo su un childtheme]
  • name: classic [nome del nostro tema deve corrispondere alla directory di installazione]
  • display_name: Classic [nome da visualizzare sul back-office]
  • version: 1.0.0 [versione]
  • author: [di seguito i dati sull’autore]
    • name: “PrestaShop Team”
    • email: “pub@prestashop.com”
    • url: “http://www.prestashop.com”
Il file si trova al seguente percorso:
/themes/classic/config/theme.yml
file_di_configurazione_theme.yml

Proseguendo nella lettura della struttura delle impostazioni di configurazione troverete alcune righe di definizione della layout fino ad arrivare ad una sezione chiamata assets:, all’interno di questa potremmo andare a definire il caricamento dei nostri fogli di stile e javascript.

  • assets:
    # If you’re using this theme as child and you want to load
    # the parent theme assets, uncomment this line.
    • use_parent_assets: true [se desideriamo utilizzare l’assets css/js del nostro tema genitore qualora usassimo un tema genitore]
      # The following lines are showing how to load assets in your page
      # Uncomment and change value to start loading css or js files
    • css:
      • all: [pagina di setinazione: “all”: tutte]
        • – id: font-awesome
        • path: assets/css/font-awesome/css/font-awesome.css
        • media: all
        • priority: 200 [priorità di caricamento procedurale del file]
    • js:
      • all: [pagina di setinazione: tutte o una specifica come “cart” o “product”]
        • – id: cat-extra-lib
        • path: assets/js/cart-lib.js [percorso del file /themes/{theme_folder}]/assets/js/cart-lib.js
        • priority: 200 [priorità di caricamento procedurale del file]
        • atribute: async [imposta il caricamento asincrono]
        • positionbottom [definisce in che posizione caricare il js]
        • product: [serve a specificare se caricare il file solo in una pagina specifica]

IMPORTANTE: per rendere attualizzato il template è necessario cancellare il seguente file che verrà rigenerato, con le nuove impostazioni del tema, direttamente da Prestashop:
{parent_directory}/config/themes/your theme/shop*.json

Maggiori informazioni su questo fondamentale file di configurazione si possono trovare su un approfondito tutorial theme.yml di BelIVG.

3. Eseguendo un override sul FrontController.php

Probabilmente la procedura più pulita per caricare i nosrti file è operare attraverso il FrontController.php che gestisce un’enorme mole di funzioni di PrestaShop. In questo caso andremo ad operare sullo specifico file php:
{parent_directory}/classes/controller/FrontController.php

All’interno del file troverete una sezione setMedia()
$this->registerStylesheet(‘theme-gamanee_the_penguin’, ‘/assets/css/mystyle.css’, [‘media’ => ‘all’, ‘priority’ => 0]);
$this->registerJavascript(‘theme-gamanee_the_penguin’, ‘/assets/js/myjavascript.js’, [‘position’ => ‘bottom’, ‘priority’ => 0]);

IMPORTANTE: possiamo andare ad operare direttamente sul FrontController.php ma è un’operazione non consigliata, è preferibile operare invece sull’Override del file cosicché, nel caso di update del core non andremo a perdere le nostre modifiche.

Per operare in maniera proceduralmente corretta andremo quindi a creare un file FrontController.php all’interno della cartella di override il quale aggiungerà o modificherà alcune funzioni al file originale:

{parent_directory}//override/classes/controller/FrontController.php

Andremo quindi a creare il nostro file e richiameremo la nostra funzione public function setMedia()

cariamente_css_javascript_frontcontroller_php
La prima parte parent::setMedia(); richiama la funzione originale a cui andrà ad aggiungere le nostre richieste evitando di sovrascriverla.
A secondo delle necessità andremo a richiamare i nostro CSS e JavaScript interni od esterni:{parent_directory}/override/classes/controller/FrontController.php

Come consigliato dalla documentazione ufficiale, nella sezione asset-management potrebbe risultare più corretto andare ad includere direttamente i nostri CSS nel file custom.css e i nostri Javascript nel file custom.js così, nel caso di aggiornamenti del template (qualora non utilizzassimo un child theme) non andremo a perdere le nostre modifiche.

I file in questione li trovate al seguente percorso:

Javacript caricamento locale:
/* local script */
$this->registerJavascript(‘myscript_local’, _THEME_DIR_.’assets/js/myscript.js’, [‘position’ => ‘bottom’, ‘priority’ => 150]);

Javacript caricamento remoto :
/* remote script */
$this->context->controller->registerJavascript(
‘myscript_remote’, // Unique ID
‘http://localhost/easyseopro.it/asset/js/myscript.js’, // JS path
array(‘server’ => ‘remote’, ‘position’ => ‘bottom’, ‘priority’ => 350) // Arguments
);

CSS caricamento locale:
/* local css */
$this->registerJavascript(‘myscss_local’, _THEME_DIR_.’assets/css/mystyle.js’, [‘media’ => ‘all’, ‘priority’ => 250]);

CSS caricamento remoto:
/* remote css */
$this->context->controller->registerStylesheet(
‘mycss_remote’, // Unique ID
‘http://localhost/easyseopro.it/asset/css/sib-styles.css’, // CSS path
array(‘server’ => ‘remote’, ‘position’ => ‘top’, ‘priority’ => 450) // Arguments
);

Analogamente alle altre modalità di inclusione possiamo impostare gli specifici parametri per le richieste:

  • Parametri per il foglio di stile (registerStylesheet):
    • media: all|braille|embossed|handheld|print|projection|screen|speech|tty|tv   default: all )
    • priority: da 0 a 999 ( default: 50 ) 0 è la priorità maggiore
    • inline: true|false (default: false ), se impostato su vero il foglio di stile sarà incluso nel tag {style} nella sezione {head}.
  • Parametri per il JavaScript (registerJavascript): :
    • position: head|bottom (default: bottom)
    • importante: core.js è il file caricato per primo sul footer in PS v1.7.x pertanto le jQuery non saranno caricate nella {head} del nostro sito, quando possibile dovrebbero essere caricati sul footer.
    • priority: da 0 a 999 ( default: 50 ) 0 è la priorità maggiore;
    • inline: true|false (default: false)
    • impostato su true il codice verrà incorporato all’interno del tag {script type=”text/javascript”} dell’html.
    • attribute: async|defer|none (default: none).
IMPORTANTE: per attualizzare il lavoro dovremmo andare a cancellare uno specifico file di caching:{parent_directory}/var/cache/prod/class_index.php

A questo punto il gioco è fatto, per ulteriori approfondimenti la documentazione ufficiale nella sezione Asset management potrà chiarire i vostri dubbi,  alcune note fondamentali prima di procedere:

  • Effettuate sempre il backup dei file originali prima di fare qualsiasi modifica;
  • Ricompilate i file di template;
  • Disabilitate temporaneamente la cache di Prestashop;
  • Sinceratevi attraverso il code inspector del vostro browser che i file siano stati caricati correttamente e non ci siano errori.

Written by

CONTATTO

Articoli nella medesima categoria

Comments





Seleziona una pagina

Variabili globali Smarty in PrestaShop 1.6

I caratteri più utilizzati su .htaccess

PrestaShop logo

Un elenco delle variabili comuni Smarty in PrestaShop v1.6 utili per gli sviluppatori

Pochi siti che elencano le variabili Smarty utilizzate da Prestashop v1.6, quasi tutti in Inglese o francese.

Ecco una sintesi delle variabili più comuni che siamo regolarmente chiamati ad utilizzare nel nostro tema.

In caso di dubbi vi invitiamo a consultare la documentazione di Smarty.

1. Elenco delle variabili Globali Smarty in PrestaShop v1.6

$base_dir (root folder del negozio)
$base_dir_ssl (root folder del negozio con protocollo HTTPS protocol)
$content_dir (root folder del negozio in funzione delle impostazioni SSL)
$img_ps_dir (root folder delle immagini “/img/”)
$img_dir (cartella immagini del tuo tema)
$css_dir (cartella css del tuo tema)
$js_dir (cartella JavaScript del tuo tema)
$tpl_dir (root del tuo tema)
$modules_dir (root dei moduli)
$mail_dir (root della cartella del template mail)
$lang_iso (codice ISO lingua corrente)
$come_from (precedente indirizzo di pagina [assoluto])
$shop_name (nome del tuo shop)
$cart_qties (numero totale prodotti nel carrello)
$cart (contenuto del carrello)
$currencies (attuali valute)
$id_currency_cookie (seleziona la valuta corrente [dipende dai cookie])
$currency (seleziona la valuta attiva)
$cookie (attiva cookie)
$languages (lingue disponibili)
$logged (controlla se l’utente è loccato)
$page_name (nome della pagina corrente)
$customerName (nome cliente [dipendene dalla sessione corrente])
$priceDisplay (impostazioni attuali sulla valuta)

2. Elenco delle variabili di Categoria in PrestaShop v1.6

$category->name
$category->description
$category->id_image
$category->link_rewrite
$category->id
$category->id_parent
$category->active
$category->position
$category->level_depth
$category->nleft
$category->nright
$category->link_rewrite
$category->meta_title
$category->meta_keywords
$category->meta_description
$category->date_add
$category->date_upd

3. Elenco delle variabili per le Sotto Categorie in PrestaShop v1.6

$subcategory.name
$subcategory.description
$subcategory.link_rewrite
$subcategory.id_category

4. Elenco delle variabili Prodotto in PrestaShop v1.6

$product->category
$product->reduction_to
$product->reduction_from
$product.category
$product.id_category_default
$product.name
$product.description
$product.description_short
$product.link_rewrite
$product.id_product_attribute
$product.id_product
$product.available_for_order
$product.price
$product.price_tax_exc
$product.reduction_percent
$product.price_without_reduction
$product->on_sale
$product->specificPrice
$product->specificPrice.reduction_type
$product->specificPrice.reduction

5. Dati del carrello corrente (data, ID cliente, indirizzo, informazioni sulla consegna, ecc.) {cart}

id
id_shop_group
id_shop
id_address_delivery
id_address_invoice
id_currency
id_customer
id_guest
id_lang
recyclable
gift
gift_message
mobile_theme
date_addl
secure_key
id_carrier
date_upd
checkedTos
pictures
textFields
delivery_option
allow_seperated_package
id_shop_list
$cookie->id_customer (identifica l’id cliente corrente)

6. Esempi di richieste specifiche da Smarty

Controlliamo la pagina in cui ci troviamo cms/prodotto: {if isset($page_name)}{$page_name|escape:’html’:’UTF-8′}{/if}

Controlla se utilizziamo la tassazione: {if $use_taxes}{/if}

Controlla se la tassazione è mostrata: {if $show_tax}{/if}

Ottenere il link ad un modulo: {$link->getModuleLink(‘NomDuModule’, ‘NomDuController’, [], true)|escape:’html’}

Pagina di convalida del pagamento con assegno: {$link->getModuleLink(‘cheque’, ‘validation’, [], true)|escape:’html’}

Collegamento ad una pagina specifica: {$link->getPageLink(‘Controller’, true, NULL, “step=3”)|escape:’html’}

Pagina dell’ordine: {$link->getPageLink(‘order’, true, NULL, “step=3”)|escape:’html’}

Controlla se la modalità catalogo è attiva: {if!$PS_CATALOG_MODE}{/if}

Written by

CONTATTO

Articoli nella medesima categoria

Comments




Seleziona una pagina

Installare PrestaShop in locale

I caratteri più utilizzati su .htaccess

PrestaShop logo

Guida per installare PrestaShop sul proprio PC

Di seguito passo-passo cercheremo di creare una mini-guida per l’installazione di PrestaShop in locale sul nostro PC, Windows o MAC.

1. Installare la piattaforma

Per prima cosa andiamo ad installare la nostra piattaforma per ricrear un ambiente in locale simile a quello di cui disporremo se avessi un hostin linux.

A – Quale ambiene scegliere

Per fare questo possiamo utilizzare XAMPP (più indicato per ambiente Windows), MAMPP (più utilizzato su MAC) o EasyPHP.

Per i nostri scopi prediligeremo l’ambiente XAMPP attualmente uno dei più utilizzati, piattaforma software specifica che facilita l’installazione e la gestione degli strumenti più comuni per lo sviluppo di applicazioni web.

In particolar modo avremo a disposizione una suite completa con Apache (web server) il programma che gestisce le richieste che arrivano da un qualsiasi client attraverso il protocollo HTTP, MySQL cioè il DBMS, PHP e Perl, linguaggi utili per lo sviluppo di applicazioni web.

B – Identificare la versione corretta di XAMPP in base alla versione di PrestaShop

Nel suo repository XAMPP mette a disposizione svariate versioni, per identificare la versione corretta da utilizzare dovremmo andare ad analizzare i prerequisiti del nostro CMS così da identificare la versione corretta da installare.

Nel caso di PrestaShop, la seguente tabella mostra i vari prerequisiti necessari per il suo funzionamento:

 

PHP Version ( RV= versione raccomandata )
PrestaShop Version ≤ 5.1 5.2 5.3 5.4 5.5 5.6 7.0 7.1 7.2 7.3 7.4 ≥ 8.0
1.6.1.x No Yes Yes Yes Yes Yes Yes RV No No No No
1.7.0 ~ 1.7.3 No No No Yes Yes Yes Yes RV No No No No
1.7.4 No No No No No Yes Yes RV No No No No
1.7.5 ~ 1.7.6 No No No No No Yes Yes Yes RV No No No
1.7.7 No No No No No No No Yes Yes RV No No
1.7.8 No No No No No No No Yes Yes Yes RV No
Per informazioni più dettagliate è possibile far riferimento alla guida ufficiale sui prerequisiti di PrestaShop attualmente alla versione 1.7.x

Per conoscere in dettaglio le specifiche dei vari moduli di XAMPP possiamo riferirci al Blog su Sourceforge, li potremmo identificare tutte la versione dei componenti della versione di XAMPP.

Una volta determinata la versione di cui necessitiamo possiamo scaricarla dal repositori ufficiale :

  • Ad esempio per PrestaShop v1.7.7.1 possiamo utilizzare la versione di XMPP 7.3.26 windows installer, (6a voce dall’alto) i pacchetti per altri OS non sono molto differenti ma posso esserci alcune varianti,  ad esempio per MAC è necessario gestire autorizzazioni a livello di iOS.

C – Installazione di XAMPP

Una volta scaricato, cliccare con il pulsante destro sul file e procedere eseguendolo con diritti di amministratore:
click destro > esegui come amministratore
diritti_di_amministrazione_installazione_xampp
E’ possibile che si riceva un avviso se è attivo ‘UAC (user Access Control) sul nostro PC, possiamo proseguire dandogli l’OK o disattivare/limitare le funzionalità dell’UAC di Windows.

Si riceverà un warning sul fatto che sia sconsigliato installare tale app dentro la directory C:/Program Files/ , è possibile ignorarlo.

installazione_xampp
Procedere con NEXT nei vari Step del wizard durante l’installazione.

Al momento della scelta dei componenti da installare, lasciare la selezione suggerita, eventuali variazioni all’installazione standard sono consigliate per utenti esperti.

D – Conclusione installazione

Scegliere la directory di installazione (viene consigliata C:xampp, ma è possibile installare differenti versioni in differenti cartelle).
Premere NEXT per continuare il processo di installazione.

directory_di_installazione_di_xampp
La copia dei file potrà richiedere vari minuti a seconda delle performance del vostro PC ed in particolar modo del vostro hard disk.

Ma il processo non è particolarmente lungo basterà avere pazienza solo qualche istante.

partenza_installazione_xampp
termine_installazione_di_XAMPP
Terminato il processo di installazione ci viene notificato che il Windows Firewall ha bloccato alcune features dell Apache HTTP server (si tratta di un messaggio normale), Cliccare su > Allow access per permettere alle features di essere sbloccate.
windows_firewall_autorizzare_sblocco_xampp
A questo punto ci verrà chiesto di far partire il Control Panel, possiamo dare l’ok al’avvio del cPanel.
lanciare_il_control_panel_di_XAMPP

E – Control Panel di XAMPP

Una volta avviato il Control Panel di XAMPP dobbiamo decidere quali servizi avviare, per le nostre necessità andremo a cliccare START su:

  • Apache
  • MySQL
xampp_control_panel
Premendo su Start e su Stop possiamo avviare e bloccare i nostri servizi in base alle necessità, spuntando “Modules Service” i vari serivizi verranno eseguiti al momento dell’avvio di windows.
xampp_control_panel_avviato
Cliccando su start per Apache e MySQL potranno capitare ulteriori warning del firewall di windows relativi alla concessione delle autorizzazioni, anche in questo caso dovremmo confermare le eccezzioni.

IMPORTANTE! Apache e MyQL funzionano correttamente quando il loro sfondo diventa verde chiaro, in caso ci appiano messaggi di errori e il servizio non parta bisognerà controllare eventuali porte bloccate, in particolar modo verificare che antivirus, anti-malware o altri servizi installati non blocchino le porte di windows di cui abbiamo bisogno.

NOTE: Per le nostre esigenze non ci servono altri servizi, ma XAMPP mette a disposizione anche FileZilla, Mercury e Tomcat nonché la completa gestione dei protocolli per l’invio e la ricezione delle mail.

2. Modificare i parametri di configurazione

A – modificare l’ambiente di XAMPP

A questo punto il nostro ambiente è pronto per funzionare, PrestaShop non necessita di particolari modifiche ma si può ottimizzarlo, in questo caso dovremmo andare a variare alcuni parametri PHP.ini (gestione del Web Server Apache) e my.ini (gestione del database in MySQL) per rendere l’ambiente ospitale al nostro applicativo.

Se cercassimo di installare PrestaShop senza modificare tali file otterremo una schermata di avvertimento come la seguente.

installazione_prestashop_errore_compatibilita_sistema
Per evitare questo genere di situazioni andiamo a modificare i nostri file di sistema come richiesto dal nostro CMS.

B – editare PHP.INI

Per prima cosa andiamo ad editare il nostro PHP.ini per effettuare le modifiche: Apache > Config > php.ini

Andiamo quindi a modificare o aggiungere i parametri richiesti, cercando la riga sul nostro file e se, non presente, aggiungendola in fondo :

NOTE:

  1. qualora il parametro non sia presente lo andremo ad aggiungere in fondo al file (il “;” è un commento alla riga di comando);
  2. andrò ad aggiungere/modificare delle righe non richieste in fase di installazione ma utili per alcuni temi e addon di cui potremmo aver bisogno per il nostro ambiente di staging.
  • ;realpath_cache_size = 4096k
  • realpath_cache_size = 5M
  • upload_max_filesize=40M
  • upload_max_filesize=750M
  • max_execution_time=120
  • max_execution_time = 5000
  • max_input_time=60
  • max_input_time = 5000
  • post_max_size=40M
  • post_max_size=750M

I parametri di seguito nella maggior parte delle versioni di XAMPP potrebbero essere non presenti (talvolta anche quelli già indicati) se mancanti andremo ad aggiungerli :

  • memory_limit = 1000M
  • extension=php_intl.dll
editiamo_il_file_php.ini_di_xampp
apertura_editore_per_il_file_php_ini

B – editare MY.INI

Analogamente a quanto fatto in precedenza andremo ad editare il nostro MY.INIper effettuare le modifiche: Apache > Config > my.ini
editare_mysql_my_ini
In questo caso le modifiche da fare sono :

  • innodb_lock_wait_timeout=50
  • innodb_lock_wait_timeout=600
  • wait_timeout=600
  • max_allowed_packet=1M
  • max_allowed_packet=64M

Ora non ci resta che attualizzare le modifiche riavviando Apache e MySQL cliccando prima su STOP e poi su START per entrambi.

3. Creazione del DataBase

A questo punto non ci resta che creare il nostro DB e l’utente autorizzato ad utilizzarlo, per far questo andiamo ad aprire il nostro browser e digitiamo localhost oppure localhost/dashboard o 127.0.0.1 (indirizzo IP corrispondente a localhost) sulla barra dell’url:
lancio_dashboard_xampp
Possiamo creare unicamente il DataBase ed utilizzare root come utente di amministrazione, ma è preferibile creare un ambiante separato quindi un DB ed un utente specifico autorizzato ad utilizzare l’archivio in esclusiva.

In questa maniera, per chi non ha familiarità, ci impratichiamo ad usare un ambiente simile a quello che troveremo sul cPanel del nostro hosting.

A – creazione Account utente

Andiamo quindi a selezionare la creazione dell’utente, cliccando sulla voce Account utenti:
creazione_utente_phpmyadmin
Quindi clicchiamo su Aggiunta account utente in basso:
aggiunta_account_utente_su_phpmyadmin

B – creazione DB associato all’utente

Scegliamo i nostri parametri che sono:

  • Nome utente: nome di nostra scelta
  • Nome host: localhost
  • Password: una password di nostra scelta

IMPORTANTE! Andremo a scriverci su un blocco note questi dati che ci serviranno successivamente per l’installazione del nostro CMS, e saranno molto importanti in futuro per l’eventuale trasferimento del sito.

A questo punto, per semplicità, andremo a creare un nome utente corrispondente al nome del db, quindi spuntiamo :

  • Database per account utente: Crea un database con lo stesso nome e concedi tutti i privilegi
  • Privilegi globali: seleziona tutto
nome_utente_db_e_password_su_phpmyadmin
Ci basterà cliccare su ESEGUI, in basso a destra, per terminare la procedura, se tutto è stato fatto correttamente sulla sinistra troveremo il nostro nuovo archivio:
archivio_creato_con_successo_phpmyadmin
Sarebbe stato possibile creare nome DB e nome utente differenti ed associarli in un secondo step, situazione corretta per motivi funzionali e di sicurezza in un ambiente di hosting online, lavorando in locale, per semplicità, la procedura affrontata risulta più immediata.

4. Installazione di PrestaShop

A questo punto possiamo procedere con l’installazione di PrestaShop andando a scaricarlo dal sito ufficiale: scarica PrestaShop.
scarica_prestashop
Nel casimo avesimo bisogno è possibile andare nel repositori completo con le versioni precedenti del CMS: Versioni precedenti, per ogni versione troveremo il rispettivo changelog e release note per vedere i vari miglioramenti e bug fix.

Effettuato il download ci troveremo con una cartella compressa chiamata: prestashop_[release-scaricata].zip
Andiamo a scompattare tale file così da avere la medesima cartella ma a questo punto non più compressa.

Entrando nella nostra cartella scompressa troveremo un ulteriore file zippato chiamato: prestashop.zip.
Procediamo come prima e scompattiamo anche questo archivio in modo da avere l’elenco completo dei file del nostro open source.

A questo punto copiamo la nostra cartella prestashop non-compressa che sarà nel percorso: {download}/prestashop_[release-scaricata]/prestashop
e la incolliamo all’interno della directory di c:/xampp/htdocs (se xampp è stato installato utilizzando una differente directory il percorso sarà generalmente c:/{cartella_di_xampp}/htdocs/.

NOTE: possiamo avere più versioni dei nostri CMS installati in locale, basterà cambiare il nome della cartella contenente prestashop con un nome di directory che rappresenta il nostro sito internet in locale, ad esempio: c:/xampp/htdocs/easyseopro oppure c:/xampp/htodcs/ecommerce.

percorso_installazione_prestashop_xampp_htdocs
Lanciamo XAMPP, se non era già attivo, così da avere le due icone Apache e MySQL verdi,
qualora non trovaste XAMPP tra le vostre applicazioni, o aveste più versioni installate, potete trovare il pannello di controllo al seguente percorso:c:/{cartella_di_xampp}/htdocs/xampp-control.exe.

Apriamo il nostro browser preferito e digitiamo localhost/prestashop oppure localhost/{nome_cartella_contentente_prestashop}, la cartella che rappresenta il nome del nostro sito internet in locale.

E ci limitiamo a seguire i vari step fino a che non ci vengono richiesti i del nostro negozio.

installazione_prestashop_scelta_della_lingua
installazione_prestashop_accettazione_delle_condizioni
installazione_prestashop_compatibilita_sistema_passata
Arrivati al successivo step ci verrà chiesto di inserire i dati del nostro negozio:
dati_del_negozio_prestashop
  • nome del negozio: quello che preferite e che identifica la vostra attività
  • attività principale: a fini statistici rappresenta il nostro settore commerciale
  • installazione prodotti dimostrativi: si o no a seconda che desideriamo o meno i dati di esempio
  • nazione: identifica la nazione principale e la lingua del nostro store
  • nome: nostro nome o dell’utente amministratore
  • cognome: nostro cognome o dell’utente amministratore
  • indirizzo mail: nostra mail o dell’utente amministratore
  • password: chiave di accesso la nostro store

IMPORTANTE! la mail e la password inserite in questa fase sono quelle dell’utente SuperAmministratore del nostro store in locale, dobbiamo segnarle e ricordarle perché rappresentano le chiavi di accesso al back-end.

Infine ci verranno richieste i dati di accesso al nostro DB:

dati_di_accesso_al_db_installazione_prestashop
Andremo ad inserire i dati precedentemente creati all’interno di XAMPP in PhpMyAdmin che opportunamente ci siamo segnati per non scordarceli.

  • indirizzo server del databaselocalhost oppure 127.0.0.1
  • nome del database: quello creato su PhpMyAdmin (nel mio caso: mycms)
  • nome di accesso al database: nel nostro caso analogo al nome del database, se diverso va specificato
  • password: quella indicata su PhpMyAdmin
  • prefisso delle tabelle: ps_, in realtà su un ambiente online andrebbe modificato per motivi di sicurezza (nel mio caso: esp_)
  • svuota le tabelle esistenti: spuntato (salvo installazioni particolari)

Per sicurezza clicchiamo su Verifica adesso la connessione al tuo database!, se tutto è stato fatto correttamente cliccando su Successivo PrestaShop andrà a creare e popolare le nostre tabelle e a completare l’installazione ( qualora non sia passata la verifica di connessione dovete rivedere passo passo la procedura ed in particolare la fase di creazione del DB e utente su PhpMyAdmin ).

creazione_tabelle_prestashop
installazione_moduli_prestashop
installazione_tema_prestashop

Perfetto! l’installazione è terminata con successo, ora prima di accedere al nostro store ci mancano due ultimi semplici passaggi.

conclusione_installazione_prestashop

Quello che ci rimane da fare è l’eliminazione della cartella install all’interno del nostro store in locale, quindi andremo su c:\xampp\htdocs\prestashop oppure, se lo store è stato installato in una cartella differente, c:\xampp\htdocs\{nome_cartella_contentente_prestasop} e all’interno rimuoviamo la directory \install.

Infine, nella medesima posizione, troveremo una directory chiamata \admin: rappresenta il nostro percorso di accesso al back-office, per motivi di sicurezza PrestaShop chiede di modificare il nome di tale cartella.

Dalle ultime versioni, se non rinominiamo tale cartella, lo fa lui per noi al primo accesso localhost/prestashop/admin, dovremmo quindi segnarci il nome della nuova cartella di accesso (come nell’esempio in basso) oppure andremo nella nostra alberatura di directory e identificare il nome assegnato alla directory di amministrazione.

accesso al back-end (dashboard)

Indirizzo back-end: http://localhost/prestashop/admin421sfpqma/
Nel vostro caso sarà: http://localhost/{indirizzo_store}/{nome_asegnato/scelto_cartella}/

accesso_al_back-end_prestashop

accesso al front-end (sito live)

Indirizzo front-end: http://localhost/prestashop/
Nel vostro caso sarà: http://localhost/{indirizzo_store}/
visualizzazione_prestashop_front-end

Written by

CONTATTO

Articoli nella medesima categoria

Comments