martedì 21 settembre 2010

Il Treno della Valle

Da qualche giorno ho avviato un nuovo blog, di cui trovate il collegamento nei Link Interessanti.
Si tratta di un blog legato alle vicende della Ferrovia Sangritana che attraversa il mio paese di origine.

Per chi fosse interessato ad argomenti di tecnica ferroviaria, mobilità sostenibile, etc. mi può seguire qui:


Un saluto

Wsc

lunedì 22 febbraio 2010

Word Press e Wp e-Commerce: Ricercare i prodotti senza l'espansione Gold Cart

Ciao a tutti,

da qualche giorno mi è venuto in mente di riprendere in mano una vecchia idea per un sito di e-commerce, come al solito ho iniziato a visionare un po' di soluzioni, ma come sempre traviato dal buon Fuliggians, mi sono rivolto verso una soluzione realizzata con WordPress.

Esiste infatti un comodissimo plug-in Wp e-Commerce che già con la versione base (ci sono dei moduli a pagamento che danno ulteriori funzionalità già pronte) consente di costruire un piccolo sito di e-commerce funzionante.

Possiamo impostare tutte le più comuni opzioni che servono alla gestione del negozio, ma una delle cose che vengono offerte nei pacchetti a pagamento e la ricerca dei prodotti inseriti. Infatti il widget di ricerca dei temi wordpress, non entra nelle tabelle di anagrafica dei prodotti.

Non mi è rimasto altro da fare che modificare il file search.php contenuto nel tema prescelto, per ovviare al problema.
Questo è il codice:
<?php $arjunaOptions = arjuna_get_options(); ?>
<?php get_header(); ?>

<div class="contentArea">
<?php
// take search terms and escape them
$s = $wpdb->escape(stripslashes($wp_query->query_vars['s']));
$sql = "SELECT `".$wpdb->prefix."wpsc_product_list`.* , `".$wpdb->prefix."wpsc_product_images`.image
FROM `".$wpdb->prefix."wpsc_product_list`
INNER JOIN wp_wpsc_product_images ON (".$wpdb->prefix."wpsc_product_images.product_id = ".$wpdb->prefix."wpsc_product_list.id AND ".$wpdb->prefix."wpsc_product_images.image_order = 0)
WHERE (`".$wpdb->prefix."wpsc_product_list`.`name` LIKE '%".$s."%' OR `".$wpdb->prefix."wpsc_product_list`.`description` LIKE '%".$s."%')";
// echo $sql;
$product_list = $wpdb->get_results($sql,ARRAY_A);
if (!$product_list) {
$output = "<p>There are no products found with your search term <i>".$s."</i>.";
}
else {
$output = "<div id='search_list_products'>\n\r";
foreach((array)$product_list as $product) {
$output .= "<div class='search_product'>\n\r";
$output .= "<a href='".wpsc_product_url($product['id'])."'>";
if($product['image'] != '') {
$output .= "<img src='".WPSC_THUMBNAIL_URL.$product['image']."' title='".$product['name']."' alt='".$product['name']."' />\n\r";
$output .= "<p>\n\r";
$output .= stripslashes($product['name'])."<br />";
$output .= "<span class='front_page_price'>\n\r";
if($product['special']==1) {
$output .= "<span class='oldprice'>".nzshpcrt_currency_display($product['price'], $product['notax'])."</span><br />\n\r";
$output .= nzshpcrt_currency_display(($product['price'] - $product['special_price']), $product['notax'],false,$product['id']);
} else {
$output .= "".nzshpcrt_currency_display($product['price'], $product['notax']);
}
$output .= "</span>\n\r";
$output .= "</p>\n\r";
}
$output .= "</a>";
$output .= "</div>\n\r";
}
$output .= "</div>\n\r";
$output .= "<br style='clear: left;'>\n\r";
} // else
echo $output; ?>
</div>


<?php get_sidebar(); ?>

<?php get_footer(); ?>




Spero di esservi stato utile anche questa volta. Se avete voglia cliccate sui banner pubblicitari.
Ciao
Wsc

martedì 9 febbraio 2010

MySQL: Generare una chiave primaria per una tabella (versione migliorata)


Ciao a tutti,

l'altro giorno avendo un po' di tempo per sperimentare nuove e più comode soluzioni, sono voluto ritornare su un argomento che avevo trattato qualche mese fa in questo post, la generazione di una chiave primaria per le tabelle MySQL.

Siccome l'altra volta avevamo trattato una soluzione veloce, quindi non troppo elegante, per la gestione del problema ho ripensato alla cosa ed ho trovato che la cosa migliore fosse integrare il codice in una funzione, comodamente richiamabile, in qualsiasi punto del codice, e standardizzata.

Allego quindi il codice di creazione della procedura:
CREATE DEFINER=`root`@`localhost` FUNCTION `RowIdGen`() RETURNS CHAR(30) CHARSET latin1
DETERMINISTIC
BEGIN
RETURN CONCAT('PREF',DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s'),LPAD(FLOOR(1 + RAND() * 999999),7,0),LPAD(@numero := IFNULL(@numero,0) + 1,5,0));
END$$

DELIMITER ;
Non sto a ridiscutere il codice in quanto è già spiegato nel dettaglio nel vecchio post.
Spero di esservi stato utile, e se avete voglia cliccate sui banner pubblicitari.

Ciao

Wsc