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

lunedì 9 novembre 2009

HTC Tattoo e Vodafone: come attivare Mobile Internet Phone


Giovedì scorso ho acquistato il mio nuovo cellulare HTC Tatto. Il terminale è dotato del sistema operativo Android 1.6.
Essendo il mio operatore telefonico Vodafone, e non avendo alcuna intenzione per il momento di cambiarlo, ho iniziato a cercare quale opzione tariffaria rispondesse al meglio all'utilizzo del nuovo terminale.
Dopo una serie di indagini sul sito, navigando in un marasma di cattive informazioni (ho persino attivato un'opzione che non era quella corretta), ho trovato che l'opzione corretta è Mobile Internet Phone.
Questa opzione consente, sulle ricaricabili, un traffico di 500MB a settimana al costo di 3€.
Qui iniziano i problemi in quanto è attivabile chiamando il numero 42046 solo se il terminale è l'HTC Magic.
In realtà questa opzione è attivabile per qualsiasi terminale dotato di Android come sistema operativo, e ora vi spiegherò passo passo come attivarla.
Innanzitutto bisogna chiamare il 190 e parlare con un operatore. Visto che non sempre è facile orientarsi nei menù di scelta vi dirò la combinazione per parlare con una persona 2-9-2 (spero di facilitarvi così la vita). Fate attenzione dal telefono di un mio collega la combinazione per parlare con un operatore è 3-9-9-2, quindi occhio!
A questo punto spiegate la situazione all'operatore e fatevi attivare l'opzione Mobile Internet Phone (per HTC Magic). State attenti a non farvi attivare quella per iPhone (in un primo tempo mi avevano attivato questa) o come come Internet Phone che vi consente la sola navigazione e dietro proxy.
A questo punto non dovrete fare altro che configurare sul vostro terminale il punto di accesso corretto (se vi attivano la promozione giusta deve funzionare questo APN) con questi parametri:
APN: mobile.vodafone.it
MCC: 222
MNC:10
Gli altri campi lasciateli non impostati.
Al ricevimento dell'SMS di attivazione basta spegnere e riaccendere il terminale dopo aver scelto il nuovo punto di accesso e il gioco è fatto!
Spero di esservi stato utile.
Un saluto a tutti.

Wsc

PS: giusto per la cronaca il tempo trascorso tra i vari casini per me è andato dal pomeriggio di giovedì alle 11 di sabato. Spero per voi grazie a questa guida possa essere più breve. Un ringraziamento particola ad Enzo l'operatore del call center che ha sistemato la situazione!

PPS: Se il tutto vi è stato utile e vi va di aiutarmi, cliccate sui banner pubblicitari!

mercoledì 24 giugno 2009

JasperServer e iReport: Collegamento ad un database Oracle

Oggi mi è arrivata una nuova richiesta. Creare un report che potesse prendere dati da una fonte Oracle e non Mysql.
Come sempre partendo dalla documentazione web ho subito verificato che la cosa fosse possibile.

Quindi sono entrato nella creazione dei Data Source e ho iniziato a configurare per primo iReport.
La connessione è stata così configurata:
Driver:
oracle.jdbc.driver.OracleDriver
URL:
jdbc:oracle:thin:@Indirizzo_IP_Server:Porta_Server:Nome_DataBase
(usare l'IP del server per evitare problemi sulla network interface e non i nomi WINS es: nomeserver.dominio)

Ovviamente user e password.
E qui iniziano i problemi. Perchè anche se i parametri sono tutti corretti riceviamo un messaggio di errore sulle classi java.
E' necessario scaricare la classe java apposita per la comunicazione.
Il pacchetto è:
ojdbc14.jar
Ne ho trovato una versione scaricabile senza effettuare registrazioni di sorta su www.findjar.com.
Questo pacchetto va messo nelle directory:
X:\Programmi\jasperserver-3.0\ireport\lib (iReport)
X:\Programmi\jasperserver-3.0\apache-tomcat\common\lib
(JasperServer)
Riavviando Jasperserver sarà possibile inizializzare i Data Source necessari.
Buon lavoro.

Wsc

martedì 26 maggio 2009

JasperServer e iReport: Inserimento delle immagini nei report

Per la prima volta oggi mi sono trovato a dover gestire l'inserimento di immagine statiche in un report. Come al solito è stato il solito delirio per riuscire a trovare una risposta.
I manuali sono sempre molto poco ricchi e spiegano spesso male o in maniera incompleta le procedure.

Ad ogni modo siamo arrivati ad una risposta.

Innanzitutto le immagini possono essere caricate come risorsa legata al singolo report oppure inserita nella Cartella Images della Repository di JasperServer.

Ci verranno chiesti un nome per la risorsa, una label e una breve descrizione.

Una volta caricato il file non ci resta che legarlo nel report.
Aggiungiamo quindi un oggetto immagine nel layout delle immagini e per linkarlo all'immagine caricata entriamo nel cammpo Expression e qui usiamo la seguente sintassi:
"repo:nome_risorsa"
Ora il nostro report visualizzarà correttamente l'immagine.
Buon lavoro a tutti. Alla prossima difficoltà.

Wsc

mercoledì 6 maggio 2009

Una passione genera un nuovo progetto

Oggi ho avviato un piccolo progetto sperimentale. Per chi è appassionato di modellismo ferroviario può dare un occhio e un commento qui.

Attendo i vostri commenti in merito.

PS: purtroppo non posso adottare tecnologie database (essendo sulla piattaforma di blogspot) per ora, ma non si sa mai.