Articoli

Pyramyd Il Gioco della Vita – Non un semplice gioco da tavolo

“La vita è un gioco!”

Questo è il messaggio che il nuovo gioco da tavolo (riduttivo chiamarlo così), ideato, realizzato e distribuito dalla italianissima Kontrast s.r.l. , vuole trasmettere.

Tutte le informazioni, le regole del gioco, i tutorial, vi rimandiamo al sito web Pyramyd – Il Gioco della Vita

Ciò che ha interessato il nostro lavoro, è stato lo sviluppo dell’intera piattaforma web.

Siamo partiti con l’adattamento del design grafico proposto dal Cliente, abbiamo poi realizzato tutte le funzionalità utente fino ad arrivare allo sviluppo del pannello di controllo per la gestione dei contenuti.

A tutti gli effetti, stiamo parlando di un CMS realizzato ad hoc!

Alcune delle tecnologie coinvolte nel progetto sono HTML5, CSS3, Bootstrap v3, jQuery, AJAX, oltre al framework CodeIgniter (basato sul linguaggio PHP e database MySQL), strumento con il quale realizziamo gran parte dei nostri progetti.

Ricordiamo che è possibile lasciare un messaggio (ovviamente moderato) dalla pagina COMMUNITY, e, se non lo avete già fatto, acquistare una o più confezioni di Pyramyd – Il Gioco della Vita dalla pagina GIOCA.

Vuoi realizzare un progetto simile?

 

FEAN Impianti Tecnologici… presto online col nuovo sito istituzionale!

Dopo aver progettato e realizzato il logo, stiamo sviluppando la nuova piattaforma CMS per l’azienda FEAN Impianti Tecnologici.

Seguici su Facebook, Twitter o iscriviti gratuitamente alla nostra NEWSLETTER per avere aggiornamenti!

Hai bisogno di realizzare un progetto simile? Contattaci…

 

Integrare WordPress in CodeIgniter (parte 2)

Continuiamo a parlare di WordPress e dell’integrazione di alcune delle sue funzionalità in CodeIgniter (per sapere cos’è CodeIgniter leggi l’articolo Codeigniter: framework PHP tuttofare)

Nell’articolo Integrare WordPress in Codeigniter (parte 1) abbiamo visto come andare ad interfacciare CodeIgniter al core di Wordrpess e soddisfare la prima delle due richieste fatte dal nostro ipotetico Cliente, cioè visualizzare anteprima di immagine e testo, e link di un determinato articolo in una determinata pagina.

Ora cercheremo di integrare, invece, la seconda richiesta: visualizzare l’elenco degli ultimi post del blog nel footer.
Utilizzeremo la funzione “wp_get_recent_posts()” di WordPress nel seguente modo:

<ul>
<?php
$post_recenti = wp_get_recent_posts();
foreach( $post_recenti as $recenti ){
if($recenti[‘post_status’]!=’draft’)
echo ‘<li>’.get_the_post_thumbnail($recenti[‘ID’], array(50,50)).'<a href=”‘.get_permalink($recenti[“ID”]).'” title=”‘.esc_attr($recenti[“post_title”]).'” >’.textPreview($recenti[“post_title”], 27).'</a></li> ‘;
}
?>
</ul>

Come vediamo, l’elenco si ottiene attraverso un ciclo foreach, col quale cicliamo l’array “$post_recenti”, nel quale ritroviamo, grazie alla suddetta funzione “wp_get_recent_posts()”, l’elenco degli ultimi post presenti nel blog.

Va detto, però, che la funzione ci restituisce tutti gli articoli, anche quelli con lo stato di “bozza”, perciò l’istruzione “if($recenti[‘post_status’]!=’draft’)” ci permette di filtrare i soli post pubblicati.

Nella riga successiva non facciamo altro che stampare, all’interno dei tag <li> e </li>, immagine 50×50 pixel, link e anteprima del testo del nostro post (abbiamo spiegato cos’è textPreview() nella parte 1).

Racchiudiamo il codice PHP all’interno dei tag <ul> e </ul>, applichiamo il nostro foglio di stile ed ecco ottenuto il nostro elenco.

Integrare WordPress in CodeIgniter

Si sta realizzando una piattaforma attraverso il framework CodeIgniter e il Cliente dice:
“…vorrei che si vedessero immagine, anteprima dell’articolo e link del post ‘X’ in una determinata pagina e l’elenco degli ultimi post pubblicati sul blog nel footer…”

Per utilizzare le funzionalità di WordPress, dobbiamo in qualche modo interfacciarci al suo “core”, un po’ come abbiamo letto nell’articolo Integrare il carrello acquisti di Magento in WordPress, dove la necessità era l’integrazione di una funzionalità di Magento in WordPress.

Bene, iniziamo.

Apriamo il file index.php presente nella root del progetto CodeIgniter ed inseriamo, prima di qualsiasi altra cosa, le seguenti righe di codice:

define(‘WP_USE_THEMES’, false);
require(‘blog/wp-load.php’);

La prima riga indica a WordPress, nel momento in cui viene inizializzato, di non utilizzare il tema/template attualmente in uso (parametro impostato su “false”).

Nella seconda riga includiamo/importiamo il file “wp-load.php”, attraverso il quale potremo utilizzare le funzionalità del blog WordPress.

Fatto ciò, andremo nella “view” di CodeIgniter per aggiungere il codice necessario a visualizzare ciò che ci interessa.

Vediamo come soddisfare la prima richiesta del nostro Cliente: visualizzare le informazioni di uno specifico post..

Premessa: dobbiamo conoscere gli ID del post da visualizzare.

Abbiamo due modi:
1. utilizziamo un plugin;
2. nel back end di WP, nell’elenco dei post, passiamo col mouse sull’elemento che ci interessa e leggiamo, nella barra di stato del nostro browser, il numero dopo il testo “post=” (es.: post=123). Quel valore numerico indica l’ID del nostro post!

Recuperato l’ID, passiamo al codice e analizziamolo riga per riga.

$post_id=123;
$post_data=wp_get_single_post($post_id, ARRAY_A);
echo $post_data[‘post_title’];
echo ‘<a href=” ‘.get_permalink($post_id).'”>’.get_the_post_thumbnail($post_id, array(320, 240)).'</a>’;
echo “<p>”.textPreview(strip_tags($post_data[‘post_content’]), 150).”</p>”;
echo ‘<a href=”‘.get_permalink($post_id).'”>Leggi l’articolo completo </a>’;

Partiamo indicando il post del quale leggeremo i dati, nel nostro esempio quello con ID uguale a 123.

Recuperiamo tutte le informazioni del suddetto post tramite la funzione, messa a disposizione dalle API di WordPress, wp_get_single_post($postid, $mode) (ATTENZIONE: dalla versione 3.5 di WordPress questa funzione è deprecata! Al suo posto si può utilizzare la funzione get_post()).

Tale funzione prende come parametri l’ID del post da caricare e la modalità nella quale le informazioni devono essere restituite.
Abbiamo scelto di avere come risultato un array associativo. Le altre modalità sono: OBJECT e ARRAY_N.

Nella nostra variabile $post_data, quindi, avremo tutte le informazioni del post. Non elenchiamo tutti i campi ma focalizziamo l’attenzione solo su quelli che ci interessano:
– post_title
– post_content

In più, utilizzando altre funzioni andremo a prelevare informazioni quali il link e l’immagine di anteprima del post.
Andando per ordine
$post_data[‘post_title’] è il titolo del post
$post_data[‘post_content’] è il contenuto del post

Il resto del codice…

echo ‘<a href=” ‘.get_permalink($post_id).'”>’.get_the_post_thumbnail($post_id, array(320, 240)).'</a>’;

Non facciamo altro che visualizzare l’immagine del post, rendendola cliccabile.

get_the_post_thumbnail($post_id, array(320, 240))

restituisce l’immagine del post. Il primo parametro è l’ID del post, il secondo è riferito alle dimensioni di visualizzazione dell’immagine (noi abbiamo scelto 320×240 pixel; attenzione alle proporzioni!).

Impostiamo poi la proprietà href del tag <a> con il link al nostro post tramite la funzione get_permalink(). Anche qui dobbiamo indicare l’ID.

textPreview(strip_tags($post_data[‘post_content’]), 150)

Qui abbiamo utilizzato una funzione PHP scritta ad hoc per accorciare il testo del post. I parametri passati alla funzione sono il contenuto del post ($post_data[‘post_content’]) e la lunghezza massima del testo da visualizzare. Inoltre vogliamo “pulire” il codice da eventuali tag aggiunti durante l’inserimento del testo da WordPress.

Utilizziamo per questo compito la funzione PHP strip_tags().

echo ‘<a href=”‘.get_permalink($post_id).'”>Leggi l’articolo completo </a>

Ques’ultima riga ci permette di creare un link al post del blog.

Non ci resta che uniformare la visualizzazione allo stile del sito ed il nostro primo step è completato!

Nel prossimo articolo vedremo come realizzare la successiva richiesta del nostro Cliente, ovvero visualizzare l’elenco degli ultimi post del blog nel footer…

Integrare il carrello acquisti di Magento in WordPress

Un nostro recente progetto ha interessato due delle più famose e utilizzate piattaforme open-source, WordPress e Magento (rispettivamente CMS ed E-commerce).
Una delle necessità era quella di visualizzare, nel blog, il numero di articoli attualmente nel carrello dello store.
Di seguito un breve riassunto dei passi necessari per effettuare il suddetto adattamento.
Precisiamo che esistono alcuni plugin, per citarne uno FishPig, che rendono tale integrazione automatica.
Iniziamo con alcune informazioni:

1. I cookies del “frontend” di Magento non sono accessibili al di fuori di Magento stesso. Questo rende i dati di sessione dell’ambiente ecommerce inaccessibili da una directory diversa da quella di installazione. Bisogna modificare dal pannello amministratore di Magento il percorso dei cookies (Sistema>Configurazione>Web>Sessione gestione Cookie) così che siano resi disponibili in un percorso comune a, in questo caso, WordPress. Nel nostro caso abbiamo utilizzato la root “/”.
2. Si deve conoscere il percorso del file “Mage.php” contenuto nella cartella “app” di Magento.
3. Bisogna conoscere l’identificativo dello store Magento del quale si vogliono recuperare i dati. Per conoscere l’id, da pannello di controllo andare in “Sistema>Gestione negozi”, posizionare il cursore del mouse sulla riga relativa allo store interessato (ultima colonna a destra “Nome vista negozio”) e leggere dall’URL il valore numerico (es.: …system_store/editStore/store_id/1/key/…).
4. La nostra configurazione prevedeva WordPress installato nella root del dominio, mentre Magento risiedeva nella sottodirectory “shop”.

Il codice riportato di seguito è stato inserito nel file “header.php” del tema attivo in WordPress, ma può essere inserito laddove vi sia necessità:

// richiediamo il file core Magento dal percorso di installazione dell’ecommerce
require_once(“shop/app/Mage.php”);

// comando per l’assegnazione dei permessi
umask(0);

// metodo Magento per impostare lo store di default, nel nostro caso lo store con id “1”.
Mage::app()->setCurrentStore(1);

// metodo che ci permette di recuperare un “oggetto” dall’ambiente Magento, in questo caso le sessioni del fronted
Mage::getSingleton(‘core/session’, array(‘name’=>’frontend’));

// con questa riga assegnamo ad una variabile il numero di articoli attualmente presenti nel carrello di Magento
$numArticoli=Mage::getSingleton(‘checkout/cart’)->getItemsCount();

Con poche righe è possibile, quindi, recuperare informazioni dalla piattaforma Magento e visualizzarle, modificando opportunamente il codice, direttamente in WordPress.

Elementi di portfolio