<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUUMSH44cSp7ImA9WhRaFEk.&quot;"><id>tag:blogger.com,1999:blog-1050688009681675589</id><updated>2012-02-17T02:48:09.039+01:00</updated><category term="search engine position" /><category term="webmaster" /><category term="commercio elettronico" /><category term="sito web" /><category term="programmazione" /><category term="magento" /><category term="MVC" /><category term="pagerank" /><category term="opencart" /><category term="ecommerce" /><category term="e-commerce" /><title>Io Designer</title><subtitle type="html">Appunti di programmazione e grafica per la realizzazione di siti web</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.iodesigner.it/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.iodesigner.it/" /><author><name>morpheo</name><uri>http://www.blogger.com/profile/12886550322853685947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/IoDesigner" /><feedburner:info uri="iodesigner" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEcGQ3s7fCp7ImA9WxNWE0g.&quot;"><id>tag:blogger.com,1999:blog-1050688009681675589.post-2795026425123103529</id><published>2009-10-12T15:42:00.003+02:00</published><updated>2009-10-12T16:00:22.504+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-12T16:00:22.504+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="search engine position" /><category scheme="http://www.blogger.com/atom/ns#" term="webmaster" /><category scheme="http://www.blogger.com/atom/ns#" term="pagerank" /><title>Strumenti utili per i webmaster (pagerank, search engine position e altro...)</title><content type="html">In rete è possibile trovare degli strumenti gratuiti utilissimi per chi gestisce un sito web.&lt;br /&gt;&lt;br /&gt;La prima cosa che ormai un webmaster fa quando vuole effettuare un'analisi di un sito è controllare il &lt;span style="font-weight: bold;"&gt;pagerank&lt;/span&gt;. Su internet si trovano tantissimi siti che offrono gratuitamente tale servizio, tanto per nominarne qualcuno:&lt;br /&gt;- &lt;a href="http://www.prchecker.info/check_page_rank.php"&gt;http://www.prchecker.info/check_page_rank.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.sito.me/"&gt;http://www.sito.me/&lt;/a&gt; che riporta anche i &lt;span style="font-weight: bold;"&gt;backlinks &lt;/span&gt;ed una valutazione (molto ottimistica) del sito in termini di valore monetario.&lt;br /&gt;&lt;br /&gt;Ormai il calcolo del pagerank è diventato quasi un'ossesione per la maggior parte dei webmaster è per questo che vi segnalo un utilissimo sito che vi permette di &lt;span style="font-weight: bold;"&gt;tracciare il pagerank&lt;/span&gt;, &lt;span class="fullpost"&gt;quindi la sua storia, dei vostri siti e vi invia un'email di avviso quando avviene una modifica allo stesso. Il sito è &lt;a href="http://pagerankalert.com/"&gt;http://pagerankalert.com/&lt;/a&gt;. Tramite una registrazione semplice è possibile inserire l'elenco dei propri URL e immediatamente avremo una panoramica dei loro pagerank e saremo sicuri che ogni modifica ci verrà prontamente segnalata.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un altro utilissimo tool è disponibile all'indirizzo &lt;a href="http://www.iwebtool.com/search_engine_position"&gt;http://www.iwebtool.com/search_engine_position&lt;/a&gt; e vi permetterà di verificare la&lt;span style="font-weight: bold;"&gt; posizione del vostro sito su google&lt;/span&gt; data una determinata parola utilizzata nella ricerca. Un'altro sito con la stessa funzionalità è &lt;a href="http://www.marketleap.com/verify/default.htm"&gt;http://www.marketleap.com/verify/default.htm&lt;/a&gt;.&lt;br /&gt;Buona analisi!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1050688009681675589-2795026425123103529?l=blog.iodesigner.it' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ei_z8GBkyoj8fztR0_b8QaOrUUQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ei_z8GBkyoj8fztR0_b8QaOrUUQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ei_z8GBkyoj8fztR0_b8QaOrUUQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ei_z8GBkyoj8fztR0_b8QaOrUUQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IoDesigner/~4/rx0i6xhXqhs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.iodesigner.it/feeds/2795026425123103529/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://blog.iodesigner.it/2009/10/strumenti-utili-per-i-webmaster.html#comment-form" title="1 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/2795026425123103529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/2795026425123103529?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IoDesigner/~3/rx0i6xhXqhs/strumenti-utili-per-i-webmaster.html" title="Strumenti utili per i webmaster (pagerank, search engine position e altro...)" /><author><name>morpheo</name><uri>http://www.blogger.com/profile/12886550322853685947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.iodesigner.it/2009/10/strumenti-utili-per-i-webmaster.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQMSH0_eyp7ImA9WxJUGE4.&quot;"><id>tag:blogger.com,1999:blog-1050688009681675589.post-7183275623990400070</id><published>2009-07-10T21:47:00.010+02:00</published><updated>2009-07-17T14:39:49.343+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-17T14:39:49.343+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programmazione" /><category scheme="http://www.blogger.com/atom/ns#" term="opencart" /><category scheme="http://www.blogger.com/atom/ns#" term="e-commerce" /><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><title>L'architettura di Opencart: Model View Controller (MVC)</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2fTYqTqUDEE/SlkQRD8goiI/AAAAAAAAAOQ/D-5RG9uCOZk/s1600-h/mvc.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 256px;" src="http://4.bp.blogspot.com/_2fTYqTqUDEE/SlkQRD8goiI/AAAAAAAAAOQ/D-5RG9uCOZk/s320/mvc.png" alt="" id="BLOGGER_PHOTO_ID_5357331117036839458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify; color: rgb(51, 51, 51);"&gt;Nell'&lt;a href="http://blog.iodesigner.it/2009/06/realizzazione-di-un-sito-web-di.html"&gt;articolo precedente&lt;/a&gt; ho illustrato una nuova funzionalità di &lt;span style="font-weight: bold;"&gt;Opencart &lt;/span&gt;da me implementata, ma non avevo ancora spiegato l'archiettura di &lt;span&gt;questo software e-commerce&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Gli sviluppatori di tale applicativo hanno utilizzato per la sua implementazione la metodologia del &lt;span style="font-weight: bold;"&gt;Model View Controller (MVC)&lt;/span&gt;&lt;span&gt;,&lt;/span&gt; basata sulla suddivisione dei componenti in 3 ruoli principali:&lt;br /&gt;&lt;br /&gt;1) il &lt;b&gt;model&lt;/b&gt;, fornisce i metodi per accedere ai dati (si interfaccia direttamente con il Database);&lt;br /&gt;2) il &lt;span style="font-weight: bold;"&gt;controller, &lt;/span&gt;accede ai dati forniti dal model e li rende disponibili al view (contiene la parte "funzionale" del codice);&lt;br /&gt;3) il &lt;b&gt;view&lt;/b&gt; visualizza i dati forniti dal controller e si occupa dell'interazione con l'utente (attraverso il controller).&lt;br /&gt;&lt;br /&gt;Questo schema permette di separare la logica applicativa/funzionale, a carico del &lt;i&gt;controller&lt;/i&gt; e del &lt;i&gt;model&lt;/i&gt;, dall'interfaccia utente a carico del &lt;i&gt;view&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Nel caso pratico di Opencart ognuna delle 3 componenti sopra descritte è contenuta dentro un'omonima cartella ed inoltre viene separata la parte del negozio (catalog) dalla parte di amministrazione (admin).  Quindi riassumendo la struttura delle cartelle di Opencart è così composta:&lt;br /&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;catalog&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;-&gt; &lt;span style="font-style: italic;"&gt;model&lt;/span&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;view&lt;/span&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;controller&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;admin&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt; -&gt; &lt;span style="font-style: italic;"&gt;model&lt;/span&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;view&lt;/span&gt;&lt;br /&gt;-&gt; &lt;span style="font-style: italic;"&gt;controller&lt;/span&gt;&lt;/blockquote&gt;Prendendo come esempio pratico la funzionalità di alert descritta nell'&lt;a href="http://iodesigner.blogspot.com/2009/06/realizzazione-di-un-sito-web-di.html"&gt;articolo precendente&lt;/a&gt;, la componente &lt;span style="font-weight: bold;"&gt;model &lt;/span&gt;è definita nel file catalog\&lt;span style="font-weight: bold;"&gt;model&lt;/span&gt;\catalog\alert.php e contiene le funzioni necessarie per l'accesso ai dati contenuti nel Database. Il componente &lt;span style="font-weight: bold;"&gt;controller&lt;/span&gt;, catalog\&lt;span style="font-weight: bold;"&gt;controller&lt;/span&gt;\product\alert.php, richiama il model tramite la riga&lt;span style="font-style: italic;"&gt; $this-&gt;load-&gt;model('catalog/alert') &lt;/span&gt;e ne utilizza le funzioni per rendere disponibili&lt;span style="font-style: italic;"&gt;&lt;/span&gt; le informazioni al &lt;span style="font-weight: bold;"&gt;view&lt;/span&gt;, implementato nel file&lt;span style="font-style: italic;"&gt; &lt;/span&gt;catalog\&lt;span style="font-weight: bold;"&gt;view&lt;/span&gt;\theme\default\template\product\alert.tpl. Quest'ultimo file è l'interfaccia con l'utente ed è quindi un misto di codice html e php.&lt;br /&gt;In modo analogo è stata implementata la parte di amministrazione (dentro la cartella admin)  che non necessitava però di una componente view essendo una funzionalità di back-end.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1050688009681675589-7183275623990400070?l=blog.iodesigner.it' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-UHFWSOTo90f9Gs7X9ptTP2XsYc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UHFWSOTo90f9Gs7X9ptTP2XsYc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-UHFWSOTo90f9Gs7X9ptTP2XsYc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UHFWSOTo90f9Gs7X9ptTP2XsYc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IoDesigner/~4/CsrrsCgybho" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.iodesigner.it/feeds/7183275623990400070/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://blog.iodesigner.it/2009/07/larchitettura-di-opencart-model-view.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/7183275623990400070?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/7183275623990400070?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IoDesigner/~3/CsrrsCgybho/larchitettura-di-opencart-model-view.html" title="L'architettura di Opencart: Model View Controller (MVC)" /><author><name>morpheo</name><uri>http://www.blogger.com/profile/12886550322853685947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_2fTYqTqUDEE/SlkQRD8goiI/AAAAAAAAAOQ/D-5RG9uCOZk/s72-c/mvc.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.iodesigner.it/2009/07/larchitettura-di-opencart-model-view.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYGSXk_eSp7ImA9WxJVE0s.&quot;"><id>tag:blogger.com,1999:blog-1050688009681675589.post-7871283042657744331</id><published>2009-06-25T10:20:00.024+02:00</published><updated>2009-06-30T15:05:28.741+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T15:05:28.741+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="opencart" /><category scheme="http://www.blogger.com/atom/ns#" term="e-commerce" /><category scheme="http://www.blogger.com/atom/ns#" term="commercio elettronico" /><category scheme="http://www.blogger.com/atom/ns#" term="magento" /><category scheme="http://www.blogger.com/atom/ns#" term="ecommerce" /><category scheme="http://www.blogger.com/atom/ns#" term="sito web" /><title>Realizzazione di un sito web di ecommerce</title><content type="html">Dovendo realizzare un &lt;span style="font-weight: bold;"&gt;sito di e-commerce&lt;/span&gt; ho iniziato effettuando uno scouting nella rete alla ricerca di un software free, scritto in php, che risultasse semplice da customizzare. Cercando tra i tantissimi script in php, mi sono soffermato su due in particolare: Magento (&lt;a href="http://www.magentocommerce.com/it/"&gt;http://www.magentocommerce.com/it/&lt;/a&gt;) e Opencart (&lt;a href="http://www.opencart.com/"&gt;http://www.opencart.com/&lt;/a&gt; e &lt;a href="http://www.opencart.it/"&gt;http://www.opencart.it&lt;/a&gt;).&lt;br /&gt;Li ho installati entrambi in localhost per testarne le funzionalità e capirne la struttura con la quale sono stati sviluppati in modo da comprendere come poter effettuare delle modifiche al codice esistente.&lt;br /&gt;&lt;br /&gt;Le mie conclusioni sono le seguenti:&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Magento &lt;/span&gt;è sicuramente molto più completo e ricco di funzionalità, ma proprio per questo mi è sembrato più lento nel caricamento e più complicato da modificare a proprio piacimento.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Opencart &lt;/span&gt;si contraddistingue per la semplicità, possiede le funzionalità di base per un sito di ecommerce e, dopo un breve studio sul codice, non è stato difficile adeguarlo alle mie esigenze e scrivere codice aggiuntivo per nuove funzionalità.&lt;br /&gt;In base a quanto detto ho deciso di usare Opencart per il sito di ecommerce che sto sviluppando, se volete vedere il risultato ad oggi (è ancora in fase di completamento) potete andare qui: &lt;a href="http://www.biocosmetica.it/"&gt;http://www.biocosmetica.it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Di Opencart ho utilizzato la versione 1.2.8, ma da pochi giorni è già uscita la versione 1.2.9. A breve cercherò di utilizzare questa nuove versione.&lt;br /&gt;&lt;br /&gt;Una funzionalità da me implementa per la versione 1.2.8 di Opencart, che voglio condividere con voi è la &lt;span style="font-weight: bold;"&gt;possibilità per il cliente di ricevere un'email di avviso se un prodotto che gli interessa è stato riassortito&lt;/span&gt;. Mi spiego meglio: se un prodotto non è disponibile, invece del pulsante "Aggiungi al carrello" comparirà "Avvisami quando sarà disponibile!". Tramite tale funzionalità il cliente ha quindi la possibilità di inserire la sua email per ricevere l'avviso di avvenuto riassortimento. Queste email di avviso vengono inviate automaticamente quando dal pannello di controllo la quantità del prodotto diventa maggiore di zero. Per vedere un esempio di quanto implementato (almeno per la parte utente) potete vederlo sul sito &lt;a href="http://www.biocosmetica.it/"&gt;http://www.biocosmetica.it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Per introdurre la funzionalità sopra descritta nel vostro sito Opencart (lo script l'ho sviluppato per la versione 1.2.8, ma ho già notato che con qualche piccola modifica funzionerebbe anche sulla nuova versione 1.2.9) occorre eseguire i seguenti passi:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;1) creazione della tabella &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;product_alert&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Tale tabella permette di memorizzare le informazioni sull'associazione prodotto/email e gli invii correlati.&lt;br /&gt;Ecco l'sql da eseguire per la creazione della tabella:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;CREATE TABLE  `product_alert` (&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `id` int(10) unsigned NOT NULL auto_increment,&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `product_id` int(11) unsigned NOT NULL,&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `email` varchar(100) collate utf8_unicode_ci NOT NULL,&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `date_add` datetime NOT NULL default '0000-00-00 00:00:00',&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `date_send` datetime NOT NULL default '0000-00-00 00:00:00',&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  `status` int(1) unsigned NOT NULL,&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;  PRIMARY KEY  USING BTREE (`id`)&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;2) modificare i seguenti file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;a) catalog\language\italian\italian.php&lt;/span&gt; (o catalog\language\english\english.php se avete la versione solo in inglese)&lt;br /&gt;Inserire alla fine del file ( ovviamente prima del ?&gt; ) la seguente riga:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-style: italic;"&gt;$_['button_avvisami']       = 'Avvisami quando sarà disponibile!';&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;b) admin\controller\catalog\product.php&lt;/span&gt;&lt;br /&gt;Tale file va modificato per inserire l'invio automatico delle email quando viene modificata la quantità disponibile del prodotto.&lt;br /&gt;Dopo la riga &lt;span style="font-style: italic;"&gt;$this-&gt;load-&gt;model('catalog/product');&lt;/span&gt; inserire la seguente:&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-style: italic;"&gt;$this-&gt;load-&gt;model('catalog/alert');&lt;/span&gt;&lt;/blockquote&gt;Dopo la riga &lt;span style="font-style: italic;"&gt;$this-&gt;model_catalog_product-&gt;editProduct($this-&gt;request-&gt;get['product_id'], $this-&gt;request-&gt;post);&lt;/span&gt; inserire le seguenti:&lt;br /&gt;&lt;blockquote style="font-style: italic; color: rgb(51, 51, 51);"&gt;if($this-&gt;request-&gt;post['quantity']&gt;0){&lt;br /&gt;$alerts = $this-&gt;model_catalog_alert-&gt;getProductAlerts($this-&gt;request-&gt;get['product_id']);&lt;br /&gt;$prod_desc = $this-&gt;model_catalog_alert-&gt;getProductDesc($this-&gt;request-&gt;get['product_id']);&lt;br /&gt;foreach ($alerts as $alert){&lt;br /&gt;&lt;br /&gt;$subject = sprintf($this-&gt;language-&gt;get('mail_subject'), $prod_desc['name']);&lt;br /&gt;$message  = $this-&gt;language-&gt;get('mail_line_1') . "\n\n";&lt;br /&gt;$message .= sprintf($this-&gt;language-&gt;get('mail_line_2'), $prod_desc['name']) . "\n";&lt;br /&gt;$message .= $this-&gt;language-&gt;get('mail_url') . $this-&gt;request-&gt;get['product_id'] . "\n\n";&lt;br /&gt;$message .= $this-&gt;language-&gt;get('mail_line_3') . "\n\n";&lt;br /&gt;$message .= $this-&gt;config-&gt;get('config_store');&lt;br /&gt;&lt;br /&gt;$mail = new Mail();&lt;br /&gt;$mail-&gt;setTo($alert['email']);&lt;br /&gt;$mail-&gt;setFrom($this-&gt;config-&gt;get('config_email'));&lt;br /&gt;$mail-&gt;setSender($this-&gt;config-&gt;get('config_store'));&lt;br /&gt;$mail-&gt;setSubject($subject);&lt;br /&gt;$mail-&gt;setText($message);&lt;br /&gt;$mail-&gt;send();&lt;br /&gt;&lt;br /&gt;$this-&gt;model_catalog_alert-&gt;updateProductAlert($this-&gt;request-&gt;get['product_id'],$alert['email']);&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;c) admin\language\italian\catalog\product.php&lt;/span&gt; (anche qui al posto di italian -&gt; english se avete la versione solo inglese)&lt;br /&gt;Inserite alla fine del file le seguenti righe (modificate la variabile &lt;span style="font-style: italic;"&gt;mail_url &lt;/span&gt;inserendo l'url del vostro sito):&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;// Mail&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;$_['mail_subject']  = '%s - E\' ora disponibile!';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;$_['mail_line_1']   = 'Grazie per la tua pazienza.';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;$_['mail_line_2']   = 'Il prodotto %s e\' ora disponibile e puo\' essere acquistato al seguente indirizzo: ';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;$_['mail_line_3']   = 'Questa e\' un avviso unico, non riceverai nuovamente questa e-mail.';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;$_['mail_url']      = 'http://www.biocosmetica.it/index.php?route=product/product&amp;amp;product_id=';&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;d) catalog\controller\product\product.php&lt;/span&gt;&lt;br /&gt;Dopo la riga &lt;span style="font-style: italic;"&gt;$this-&gt;data['button_add_to_cart'] = $this-&gt;language-&gt;get('button_add_to_cart');&lt;/span&gt; inserire la seguente riga:&lt;br /&gt;&lt;blockquote style="font-style: italic; color: rgb(51, 51, 51);"&gt;$this-&gt;data['button_avvisami'] = $this-&gt;language-&gt;get('button_avvisami');&lt;/blockquote&gt;Dopo la riga &lt;span style="font-style: italic;"&gt;$this-&gt;data['stock'] = ($product_info['quantity'] &gt; 0)? $this-&gt;language-&gt;get('text_instock') : $product_info['stock'];&lt;/span&gt; inserire la seguente:&lt;br /&gt;&lt;blockquote style="font-style: italic; color: rgb(51, 51, 51);"&gt;$this-&gt;data['quantity']=$product_info['quantity'];&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;e) catalog\view\theme\default\template\product\product.tpl&lt;/span&gt;&lt;br /&gt;Occorre sostituire il seguente codice:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;lt;?php echo $text_qty; ?&amp;gt;&lt;br /&gt;             &amp;lt;input type="text" name="quantity" size="3" value="1" /&amp;gt;&lt;br /&gt;             &amp;lt;a onclick="$('#product').submit();" id="add_to_cart" class="button"&amp;gt;&amp;lt;span&amp;gt;&amp;lt;?php echo $button_add_to_cart; ?&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Con il seguente:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;br /&gt;&amp;lt;?php if($quantity&amp;gt;0){ ?&amp;gt;&lt;br /&gt;                 &amp;lt;?php echo $text_qty; ?&amp;gt;&lt;br /&gt;                 &amp;lt;input type="text" name="quantity" size="3" value="1" /&amp;gt;&lt;br /&gt;                 &amp;lt;a onclick="$('#product').submit();" id="add_to_cart" class="button"&amp;gt;&amp;lt;span&amp;gt;&amp;lt;?php echo $button_add_to_cart; ?&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;             &amp;lt;?php } else { ?&amp;gt;&lt;br /&gt;                 &amp;lt;a href="index.php?route=product/alert&amp;amp;product_id=&amp;lt;?php echo $product_id; ?&amp;gt;" id="alert" class="button"&amp;gt;&amp;lt;span&amp;gt;&amp;lt;?php echo $button_avvisami; ?&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;             &amp;lt;?php } ?&amp;gt;&lt;br /&gt;             &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;f) catalog\model\catalog\product.php&lt;/span&gt;&lt;br /&gt;Inserire alla fine del file, prima delle righe di chiusura &lt;span style="font-style: italic;"&gt;} ?&gt;&lt;/span&gt; la seguente funzione:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-style: italic;"&gt;public function addProductAlert($product_id, $data) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        $this-&gt;db-&gt;query("INSERT INTO product_alert SET email = '" . $this-&gt;db-&gt;escape($data['email']) . "', product_id = '" . (int)$product_id . "', date_added = NOW()");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;3) creare i seguenti nuovi file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;a) admin\model\catalog\alert.php&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;lt;?php&lt;br /&gt;class ModelCatalogAlert extends Model {&lt;br /&gt; public function getProductAlerts($product_id) {&lt;br /&gt;  $query = $this-&amp;gt;db-&amp;gt;query(&amp;quot;SELECT DISTINCT email FROM product_alert WHERE product_id = &amp;#039;&amp;quot; . (int)$product_id . &amp;quot;&amp;#039; and status = 0&amp;quot;);&lt;br /&gt;    &lt;br /&gt;  return $query-&amp;gt;rows;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public function updateProductAlert($product_id, $email) {&lt;br /&gt;    $this-&amp;gt;db-&amp;gt;query(&amp;quot;UPDATE product_alert SET date_send = NOW(), status = 1 WHERE product_id = &amp;#039;&amp;quot; . (int)$product_id . &amp;quot;&amp;#039; and email = &amp;#039;&amp;quot; .$email . &amp;quot;&amp;#039;&amp;quot;);&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public function getProductDesc($product_id) {&lt;br /&gt;  $query = $this-&amp;gt;db-&amp;gt;query(&amp;quot;SELECT DISTINCT name FROM product_description WHERE product_id = &amp;#039;&amp;quot; . (int)$product_id . &amp;quot;&amp;#039;&amp;quot;);&lt;br /&gt;    &lt;br /&gt;  return $query-&amp;gt;row;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;b) catalog\controller\product\alert.php&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;?php &lt;br /&gt;class ControllerProductAlert extends Controller {&lt;br /&gt; private $error = array(); &lt;br /&gt;     &lt;br /&gt;   public function index() {&lt;br /&gt;  $this-&amp;gt;load-&amp;gt;language(&amp;#039;product/alert&amp;#039;);&lt;br /&gt;  $this-&amp;gt;load-&amp;gt;model(&amp;#039;catalog/alert&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;document-&amp;gt;title = $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;);  &lt;br /&gt;  &lt;br /&gt;     if (($this-&amp;gt;request-&amp;gt;server[&amp;#039;REQUEST_METHOD&amp;#039;] == &amp;#039;POST&amp;#039;) &amp;amp;&amp;amp; ($this-&amp;gt;validate())) {&lt;br /&gt;     $this-&amp;gt;model_catalog_alert-&amp;gt;addProductAlert($this-&amp;gt;request-&amp;gt;post[&amp;#039;product_id&amp;#039;], $this-&amp;gt;request-&amp;gt;post);&lt;br /&gt;     $this-&amp;gt;redirect($this-&amp;gt;url-&amp;gt;https(&amp;#039;product/alert/success&amp;#039;));&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs = array();&lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs[] = array(&lt;br /&gt;         &amp;#039;href&amp;#039;      =&amp;gt; $this-&amp;gt;url-&amp;gt;http(&amp;#039;common/home&amp;#039;),&lt;br /&gt;         &amp;#039;text&amp;#039;      =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;text_home&amp;#039;),&lt;br /&gt;         &amp;#039;separator&amp;#039; =&amp;gt; FALSE&lt;br /&gt;       );&lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs[] = array(&lt;br /&gt;         &amp;#039;href&amp;#039;      =&amp;gt; $this-&amp;gt;url-&amp;gt;http(&amp;#039;product/alert&amp;#039;),&lt;br /&gt;         &amp;#039;text&amp;#039;      =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;),&lt;br /&gt;         &amp;#039;separator&amp;#039; =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;text_separator&amp;#039;)&lt;br /&gt;       ); &lt;br /&gt;   &lt;br /&gt;     $this-&amp;gt;data[&amp;#039;heading_title&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;entry_email&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;entry_email&amp;#039;);&lt;br /&gt;&lt;br /&gt;  $this-&amp;gt;data[&amp;#039;entry_verification&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;entry_verification&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;error_email&amp;#039;] = @$this-&amp;gt;error[&amp;#039;email&amp;#039;];&lt;br /&gt;     &lt;br /&gt;  $this-&amp;gt;data[&amp;#039;error_verification&amp;#039;] = @$this-&amp;gt;error[&amp;#039;verification&amp;#039;];&lt;br /&gt;  &lt;br /&gt;  $this-&amp;gt;data[&amp;#039;error_presente&amp;#039;] = @$this-&amp;gt;error[&amp;#039;presente&amp;#039;];&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;button_continue&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;button_continue&amp;#039;);&lt;br /&gt;    &lt;br /&gt;  $this-&amp;gt;data[&amp;#039;action&amp;#039;] = $this-&amp;gt;url-&amp;gt;http(&amp;#039;product/alert&amp;#039;);&lt;br /&gt;  $this-&amp;gt;data[&amp;#039;store&amp;#039;] = $this-&amp;gt;config-&amp;gt;get(&amp;#039;config_store&amp;#039;);&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;email&amp;#039;] = @$this-&amp;gt;request-&amp;gt;post[&amp;#039;email&amp;#039;];&lt;br /&gt;  $this-&amp;gt;data[&amp;#039;verification&amp;#039;] = @$this-&amp;gt;request-&amp;gt;post[&amp;#039;verification&amp;#039;];&lt;br /&gt; &lt;br /&gt;  $this-&amp;gt;id       = &amp;#039;content&amp;#039;;&lt;br /&gt;  $this-&amp;gt;template = $this-&amp;gt;config-&amp;gt;get(&amp;#039;config_template&amp;#039;) . &amp;#039;product/alert.tpl&amp;#039;;&lt;br /&gt;  $this-&amp;gt;layout   = &amp;#039;common/layout&amp;#039;;&lt;br /&gt;  &lt;br /&gt;   $this-&amp;gt;render();  &lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public function success() {&lt;br /&gt;  $this-&amp;gt;load-&amp;gt;language(&amp;#039;product/alert&amp;#039;);&lt;br /&gt;&lt;br /&gt;  $this-&amp;gt;document-&amp;gt;title = $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;); &lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs = array();&lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs[] = array(&lt;br /&gt;         &amp;#039;href&amp;#039;      =&amp;gt; $this-&amp;gt;url-&amp;gt;http(&amp;#039;common/home&amp;#039;),&lt;br /&gt;         &amp;#039;text&amp;#039;      =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;text_home&amp;#039;),&lt;br /&gt;         &amp;#039;separator&amp;#039; =&amp;gt; FALSE&lt;br /&gt;       );&lt;br /&gt;&lt;br /&gt;       $this-&amp;gt;document-&amp;gt;breadcrumbs[] = array(&lt;br /&gt;         &amp;#039;href&amp;#039;      =&amp;gt; $this-&amp;gt;url-&amp;gt;http(&amp;#039;product/alert&amp;#039;),&lt;br /&gt;         &amp;#039;text&amp;#039;      =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;),&lt;br /&gt;         &amp;#039;separator&amp;#039; =&amp;gt; $this-&amp;gt;language-&amp;gt;get(&amp;#039;text_separator&amp;#039;)&lt;br /&gt;       ); &lt;br /&gt;  &lt;br /&gt;     $this-&amp;gt;data[&amp;#039;heading_title&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;heading_title&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;text_message&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;text_message&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;button_continue&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;button_continue&amp;#039;);&lt;br /&gt;&lt;br /&gt;     $this-&amp;gt;data[&amp;#039;continue&amp;#039;] = $this-&amp;gt;url-&amp;gt;http(&amp;#039;common/home&amp;#039;);&lt;br /&gt;&lt;br /&gt;  $this-&amp;gt;id       = &amp;#039;content&amp;#039;;&lt;br /&gt;  $this-&amp;gt;template = $this-&amp;gt;config-&amp;gt;get(&amp;#039;config_template&amp;#039;) . &amp;#039;common/success.tpl&amp;#039;;&lt;br /&gt;  $this-&amp;gt;layout   = &amp;#039;common/layout&amp;#039;;&lt;br /&gt;  &lt;br /&gt;   $this-&amp;gt;render();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public function verification() {&lt;br /&gt;  $this-&amp;gt;load-&amp;gt;library(&amp;#039;verification&amp;#039;);&lt;br /&gt;  &lt;br /&gt;  $verification = new Verification();&lt;br /&gt;  &lt;br /&gt;  $this-&amp;gt;session-&amp;gt;data[&amp;#039;verification&amp;#039;] = $verification-&amp;gt;getCode();&lt;br /&gt;  &lt;br /&gt;  $verification-&amp;gt;showImage();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;   private function validate() {&lt;br /&gt;     &lt;br /&gt;     if (!eregi(&amp;#039;^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$&amp;#039;, $this-&amp;gt;request-&amp;gt;post[&amp;#039;email&amp;#039;])) {&lt;br /&gt;        $this-&amp;gt;error[&amp;#039;email&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;error_email&amp;#039;);&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     if (@$this-&amp;gt;session-&amp;gt;data[&amp;#039;verification&amp;#039;] != $this-&amp;gt;request-&amp;gt;post[&amp;#039;verification&amp;#039;]) {&lt;br /&gt;        $this-&amp;gt;error[&amp;#039;verification&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;error_verification&amp;#039;);&lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;     @$presente = $this-&amp;gt;model_catalog_alert-&amp;gt;checkProductAlert($this-&amp;gt;request-&amp;gt;post[&amp;#039;product_id&amp;#039;], $this-&amp;gt;request-&amp;gt;post);&lt;br /&gt;     if($presente&amp;gt;0){&lt;br /&gt;          $this-&amp;gt;error[&amp;#039;presente&amp;#039;] = $this-&amp;gt;language-&amp;gt;get(&amp;#039;error_presente&amp;#039;);&lt;br /&gt;      }&lt;br /&gt;  &lt;br /&gt;  if (!$this-&amp;gt;error) {&lt;br /&gt;     return TRUE;&lt;br /&gt;  } else {&lt;br /&gt;     return FALSE;&lt;br /&gt;  }     &lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 51);"&gt;&lt;br /&gt;c) catalog\model\catalog\alert.php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;?php&lt;br /&gt;class ModelCatalogAlert extends Model { &lt;br /&gt; &lt;br /&gt; public function addProductAlert($product_id, $data) {&lt;br /&gt;  $this-&amp;gt;db-&amp;gt;query(&amp;quot;INSERT INTO product_alert SET email = &amp;#039;&amp;quot; . $this-&amp;gt;db-&amp;gt;escape($data[&amp;#039;email&amp;#039;]) . &amp;quot;&amp;#039;, product_id = &amp;#039;&amp;quot; . (int)$product_id . &amp;quot;&amp;#039;, date_add = NOW(), status = 0&amp;quot;);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public function checkProductAlert($product_id, $data) {&lt;br /&gt;  $query = $this-&amp;gt;db-&amp;gt;query(&amp;quot;select count(*) as total from product_alert where email = &amp;#039;&amp;quot; . $this-&amp;gt;db-&amp;gt;escape($data[&amp;#039;email&amp;#039;]) . &amp;quot;&amp;#039; and product_id = &amp;#039;&amp;quot; . (int)$product_id . &amp;quot;&amp;#039; and status = 0&amp;quot;);&lt;br /&gt;  return $query-&amp;gt;row[&amp;#039;total&amp;#039;];&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;d) catalog\view\theme\default\template\product\alert.tpl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;h1&amp;gt;&amp;lt;?php echo $heading_title; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;middle&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;form action=&amp;quot;&amp;lt;?php echo $action; ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; id=&amp;quot;alert&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;product_id&amp;quot; value=&amp;quot;&amp;lt;?php echo $this-&amp;gt;request-&amp;gt;get[&amp;#039;product_id&amp;#039;]; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;div style=&amp;quot;background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;?php echo $entry_email; ?&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; value=&amp;quot;&amp;lt;?php echo $email; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;?php if ($error_email) { ?&amp;gt;&lt;br /&gt;      &amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?php echo $error_email; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;      &amp;lt;?php } ?&amp;gt;&lt;br /&gt;      &amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;?php if ($error_presente) { ?&amp;gt;&lt;br /&gt;      &amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?php echo $error_presente; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;      &amp;lt;?php } ?&amp;gt;&lt;br /&gt;      &amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;?php echo $entry_verification; ?&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;verification&amp;quot; value=&amp;quot;&amp;lt;?php echo $verification; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;?php if ($error_verification) { ?&amp;gt;&lt;br /&gt;      &amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;?php echo $error_verification; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;      &amp;lt;?php } ?&amp;gt;&lt;br /&gt;      &amp;lt;img src=&amp;quot;index.php?route=product/alert/verification&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;div class=&amp;quot;buttons&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;table&amp;gt;&lt;br /&gt;        &amp;lt;tr&amp;gt;&lt;br /&gt;          &amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a onclick=&amp;quot;$(&amp;#039;#alert&amp;#039;).submit();&amp;quot; class=&amp;quot;button&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;?php echo $button_continue; ?&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;        &amp;lt;/tr&amp;gt;&lt;br /&gt;      &amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;bottom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;e) catalog\language\italian\product\alert.php&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&amp;lt;?php&lt;br /&gt;// Heading&lt;br /&gt;$_[&amp;#039;heading_title&amp;#039;]      = &amp;#039;Avvisami&amp;#039;;&lt;br /&gt;&lt;br /&gt;// Text &lt;br /&gt;$_[&amp;#039;text_message&amp;#039;]       = &amp;#039;&amp;lt;p&amp;gt;Grazie per l&amp;#039;attesa! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ti faremo sapere non appena il prodotto sar&amp;amp;agrave; di nuovo disponibile.&amp;lt;/p&amp;gt;&amp;#039;;&lt;br /&gt;&lt;br /&gt;// Entry Fields&lt;br /&gt;$_[&amp;#039;entry_email&amp;#039;]        = &amp;#039;Indirizzo E-Mail:&amp;#039;;&lt;br /&gt;$_[&amp;#039;entry_verification&amp;#039;] = &amp;#039;Scrivi il codice che leggi nell&amp;#039;immagine qui sotto:&amp;#039;;&lt;br /&gt;&lt;br /&gt;// Errors&lt;br /&gt;$_[&amp;#039;error_email&amp;#039;]        = &amp;#039;L&amp;#039;indirizzo E-Mail non &amp;amp;egrave; un indirizzo valido!&amp;#039;;&lt;br /&gt;$_[&amp;#039;error_verification&amp;#039;] = &amp;#039;Il codice di verifica inserito non &amp;amp;egrave; corretto!&amp;#039;;&lt;br /&gt;$_[&amp;#039;error_presente&amp;#039;]     = &amp;#039;Sei gi&amp;amp;agrave; in lista di notifica per questo prodotto.&amp;#039;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Fatemi sapere se riscontrate errori o semplicemente per dare il vostro contributo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1050688009681675589-7871283042657744331?l=blog.iodesigner.it' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6rxFmf77hhJGOJ_OGTxhpCbYZG8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6rxFmf77hhJGOJ_OGTxhpCbYZG8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6rxFmf77hhJGOJ_OGTxhpCbYZG8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6rxFmf77hhJGOJ_OGTxhpCbYZG8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IoDesigner/~4/AcVsfJ0nZE0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.iodesigner.it/feeds/7871283042657744331/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://blog.iodesigner.it/2009/06/realizzazione-di-un-sito-web-di.html#comment-form" title="4 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/7871283042657744331?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/7871283042657744331?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IoDesigner/~3/AcVsfJ0nZE0/realizzazione-di-un-sito-web-di.html" title="Realizzazione di un sito web di ecommerce" /><author><name>morpheo</name><uri>http://www.blogger.com/profile/12886550322853685947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.iodesigner.it/2009/06/realizzazione-di-un-sito-web-di.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4NRX4ycSp7ImA9WxJWF0k.&quot;"><id>tag:blogger.com,1999:blog-1050688009681675589.post-4310821729448446839</id><published>2009-06-21T23:12:00.006+02:00</published><updated>2009-06-23T11:23:14.099+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-23T11:23:14.099+02:00</app:edited><title>Benvenuti nel mio blog!</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Intanto mi presento: sono una persona che ha come hobby la realizzazione "completa" di siti web; in particolare, mi occupo sia della parte &lt;span style="font-weight: bold;"&gt;grafica &lt;/span&gt;sia la parte funzionale/applicativa, quindi della &lt;span style="font-weight: bold;"&gt;programmazione &lt;/span&gt;(php, javascript e qualunque linguaggio utile allo scopo).&lt;br /&gt;Ho creato questo blog al fine di poter discutere con voi di questi temi e per poter condividere &lt;span style="font-weight: bold;"&gt;insieme a voi&lt;/span&gt; alcuni dei lavori svolti. Mi piacerebbe che voi foste parte attiva del blog quindi scrivetemi pure i vostri pareri. &lt;span style="font-weight: bold;"&gt;BENVENUTI&lt;/span&gt;!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1050688009681675589-4310821729448446839?l=blog.iodesigner.it' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1cfdBkY6jD9yi_OGbL1G9efP9CI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1cfdBkY6jD9yi_OGbL1G9efP9CI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1cfdBkY6jD9yi_OGbL1G9efP9CI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1cfdBkY6jD9yi_OGbL1G9efP9CI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IoDesigner/~4/m-BpvceKz7A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.iodesigner.it/feeds/4310821729448446839/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://blog.iodesigner.it/2009/06/benvenuti-nel-mio-blog.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/4310821729448446839?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1050688009681675589/posts/default/4310821729448446839?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IoDesigner/~3/m-BpvceKz7A/benvenuti-nel-mio-blog.html" title="Benvenuti nel mio blog!" /><author><name>morpheo</name><uri>http://www.blogger.com/profile/12886550322853685947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.iodesigner.it/2009/06/benvenuti-nel-mio-blog.html</feedburner:origLink></entry></feed>

