<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=ECommerce_-_carret_de_la_compra</id>
	<title>ECommerce - carret de la compra - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=ECommerce_-_carret_de_la_compra"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=ECommerce_-_carret_de_la_compra&amp;action=history"/>
	<updated>2026-04-20T13:05:22Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=ECommerce_-_carret_de_la_compra&amp;diff=8734&amp;oldid=prev</id>
		<title>Joan: /* Introducció */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=ECommerce_-_carret_de_la_compra&amp;diff=8734&amp;oldid=prev"/>
		<updated>2010-06-16T16:58:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Introducció&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció=&lt;br /&gt;
&lt;br /&gt;
La idea és fer un carret de compra i una aplicació e-commerce dins del Wordpress, fet totalment a mida, i accedint a les meves taules per a la llista de productes i preus.&lt;br /&gt;
&lt;br /&gt;
Començo creant una pàgina nova (Pages &amp;gt; Add New), l'anomeno Botiga2 (és una prova), sense comentaris i ficant l'ordre que m'interessa. Fixem-nos que li puc canviar la template.&lt;br /&gt;
&lt;br /&gt;
El permalink en ppi no el canvio, i em queda: http://www.joanillo.org/?page_id=233&lt;br /&gt;
&lt;br /&gt;
Vaig a Paypal (joanqc@gmail.com, jq********), i utilitzo un assistent per crear un botó de compra per cada article. El codi generat l'enganxo a la pàgina. També amb l'assistent creo el botó de ''Veure el carro''.&lt;br /&gt;
&lt;br /&gt;
Si vull accedir a la base de dades i personalitzar el codi, he de ficar en el codi coses com ara:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
echo (&amp;quot;hola Joan!&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però això el Wordpress no ho deixa fer. El que jo busco està explicat a:&lt;br /&gt;
*http://www.hongkiat.com/blog/execute-php-in-wordpress-post-page-and-widget-sidebar/&lt;br /&gt;
que és el plugin '''phpexec'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;phpcode&amp;gt;  &lt;br /&gt;
&amp;lt;?php  &lt;br /&gt;
echo &amp;quot;Current date and time: &amp;quot;;  &lt;br /&gt;
echo date(&amp;quot;l dS of F Y h:i:s A&amp;quot;);&lt;br /&gt;
echo (&amp;quot;hola Joan!&amp;quot;);  &lt;br /&gt;
?&amp;gt;  &lt;br /&gt;
&amp;lt;/phpcode&amp;gt;  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Em descarrego el plugin i s'instal.la com tots: copiant-lo a wp-content/plugins/, descomprimint-lo, i activant-lo des del penell d'administració.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://priyadi.net/wp-content/plugins/phpexec.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja puc afrontar a fer un accés a una base de dades&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;phpcode&amp;gt; &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$dbhost=localhost;&lt;br /&gt;
$dbuser=root;&lt;br /&gt;
$dbpass=****;&lt;br /&gt;
$dbname=langtrainer;&lt;br /&gt;
&lt;br /&gt;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);&lt;br /&gt;
if (!$conn) {&lt;br /&gt;
    $log-&amp;gt;error('Could not connect: ' . mysql_error());&lt;br /&gt;
    die('Could not connect: ' . mysql_error());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mysql_select_db($dbname, $conn) or die('Could not select langtrainer database.');&lt;br /&gt;
&lt;br /&gt;
$sql = &amp;quot;SELECT * FROM LANGUAGE&amp;quot;;&lt;br /&gt;
$result = mysql_query($sql);   &lt;br /&gt;
while($row=mysql_fetch_array($result)) {&lt;br /&gt;
   echo(utf8_decode($row[&amp;quot;language&amp;quot;]));&lt;br /&gt;
}&lt;br /&gt;
mysql_close($conn);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/phpcode&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i ara ja accedeixo a la base de dades i puc programar un procés de compra més xulo&lt;br /&gt;
=codi Javascript amb Wordpress=&lt;br /&gt;
Les primeres proves que he fet funcionen. Dues maneres diferents de fer el ''Hello World'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;form name=myform&amp;gt;&lt;br /&gt;
&amp;lt;input type=button value=&amp;quot;hello1&amp;quot; onClick=&amp;quot;alert('Hello from JavaScript!')&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;hello.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;form name=myform&amp;gt;&lt;br /&gt;
&amp;lt;input type=button value=&amp;quot;hello2&amp;quot; onClick=&amp;quot;hello()&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
La funció hello() està definida a hello.js, que es fica al directori arrel de l'aplicació (/home/joan/blogjoanillo). Per poder editar he d'entrar com a ''su www-data''. hello.js:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function hello()&lt;br /&gt;
{&lt;br /&gt;
alert(&amp;quot;hola món&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Model de dades del meu carret de la compra=&lt;br /&gt;
Vull una solució personalitzada, on hi ha uns productes que es poden vendre, i que són configurables, i el preu de l'article pot dependre de la configuració. La manera de calcular el preu de l'article pot ser molt simple, o molt complicada, i així vull la solució personalitzada i obrir la porta a poder calcular el preu del producte, transport,...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRODUCTE (id_article, article_en, article_es, article_ca, preu)&lt;br /&gt;
preu és not null, potser el preu està en els atributs&lt;br /&gt;
&lt;br /&gt;
ATRIBUT (id_atribut, atribut_en, atribut_es, atribut_ca, id_article)&lt;br /&gt;
atribut és el color, tamany, idioma,... el preu pot dependre de l'atribut que agafo, o no&lt;br /&gt;
&lt;br /&gt;
DETALL_PRODUCTE (id_detall_article, detall_producte_en, detall_producte_es, detall_producte_ca, id_atribut, tipus_preu, preu)&lt;br /&gt;
són els valors que pren l'atribut per a un producte determinat. Per exemple, 'català', 'escocès',...&lt;br /&gt;
&lt;br /&gt;
el tipus_preu pot ser PERC o ABS. PERC: s'incrementa un percentatge. ABS: preu total del producte amb aquest atribut. Es podrien establir regles complicades, doncs un producte pot tenir molts atributs, però això ja es faria programant.&lt;br /&gt;
&lt;br /&gt;
CLIENT (id_client, client, NIF, direccio, mail, telefon) -&amp;gt; les dades que em dóna el Paypal, que les introdueixo en una base de dades.&lt;br /&gt;
COMPRA (id_compra, id_client, data, preu)&lt;br /&gt;
DETALL_COMPRA (id_compra, id_article, id_detall_article, preu)&lt;br /&gt;
&lt;br /&gt;
Ara puc fer de nou un formulari de contacte que em guardi la informació en la BD:&lt;br /&gt;
CONTACTE (id_contacte, nom, cognoms, mail, nacionalitat)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DROP TABLE DETALL_ARTICLE;&lt;br /&gt;
DROP TABLE ATRIBUT;&lt;br /&gt;
DROP TABLE ARTICLE;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE ARTICLE(&lt;br /&gt;
id_article smallint primary key,&lt;br /&gt;
article_en varchar(30) NOT NULL,&lt;br /&gt;
article_es varchar(30) NOT NULL,&lt;br /&gt;
article_ca varchar(30) NOT NULL,&lt;br /&gt;
preu decimal(6,2) NULL&lt;br /&gt;
) TYPE=InnoDB;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE ATRIBUT(&lt;br /&gt;
id_atribut smallint primary key,&lt;br /&gt;
atribut_en varchar(30) NOT NULL,&lt;br /&gt;
atribut_es varchar(30) NOT NULL,&lt;br /&gt;
atribut_ca varchar(30) NOT NULL,&lt;br /&gt;
id_article smallint NOT NULL&lt;br /&gt;
) TYPE=InnoDB;&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE ATRIBUT ADD FOREIGN KEY(id_article) REFERENCES ARTICLE(id_article) ON DELETE CASCADE;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE DETALL_ARTICLE(&lt;br /&gt;
id_detall_article smallint primary key,&lt;br /&gt;
detall_article_en varchar(30) NOT NULL,&lt;br /&gt;
detall_article_es varchar(30) NOT NULL,&lt;br /&gt;
detall_article_ca varchar(30) NOT NULL,&lt;br /&gt;
id_atribut smallint NOT NULL,&lt;br /&gt;
ordre smallint NOT NULL,&lt;br /&gt;
tipus_preu varchar(4) CHECK type IN('ABS','PERC','ADD'),&lt;br /&gt;
preu decimal(6,2)&lt;br /&gt;
) TYPE=InnoDB;&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE DETALL_ARTICLE ADD FOREIGN KEY(id_atribut) REFERENCES ATRIBUT(id_atribut) ON DELETE CASCADE;&lt;br /&gt;
&lt;br /&gt;
SET NAMES 'UTF8';&lt;br /&gt;
&lt;br /&gt;
INSERT INTO ARTICLE VALUES(1, 'RKK Rythm KIT 4 KIDS', 'RKK Rythm KIT 4 KIDS', 'RKK Rythm KIT 4 KIDS', 120);&lt;br /&gt;
INSERT INTO ARTICLE VALUES(2, 'Sonor sculpture', 'Escultura sonora', 'Escultura sonora', 250);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO ATRIBUT VALUES(1, 'Language songs', 'Idioma canciones', 'Idioma cançons', 1);&lt;br /&gt;
INSERT INTO ATRIBUT VALUES(2, 'Size', 'Tamaño', 'Tamany', 2);&lt;br /&gt;
INSERT INTO ATRIBUT VALUES(3, 'Colour', 'Color', 'Color', 2);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(1, 'English songs', 'Canciones en inglés', 'Cançons en anglès', 1, 1, NULL, NULL);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(2, 'Spanish songs', 'Canciones en español', 'Cançons en castellà', 1, 2, NULL, NULL);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(3, 'Catalan songs', 'Canciones en catalán', 'Cançons en català', 1, 3, NULL, NULL);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(4, 'Big', 'Grande', 'Gran', 2, 1, 'PERC', 10);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(5, 'Medium', 'Medio', 'Mig', 2, 2, 'PERC', 5);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(6, 'Small', 'Pequeño', 'Petit', 2, 3, 'PERC', 0);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(7, 'Black', 'Negro', 'Negre', 3, 1, 'ADD', 0);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(8, 'Red', 'Rojo', 'Vermell', 3, 2, 'ADD', 20);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(9, 'Blue', 'Azul', 'Blau', 3, 3, 'ADD', 20);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(10, 'Green', 'Verde', 'Verd', 3, 4, 'ADD', 20);&lt;br /&gt;
INSERT INTO DETALL_ARTICLE VALUES(11, 'Orange', 'Naranja', 'Taronja', 3, 5, 'ADD', 20);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, juny 2010&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>