sabato 4 maggio 2013

Virtuemart: scegliere il gruppo clienti nel form di registrazione

In Virtuemart possiamo creare gruppi clienti e assegnare gli utenti del sito web al gruppo cliente desiderato. Non ci è data però la possibilità di scegliere il nostro gruppo clienti mentre stiamo compilando il form di registrazione. In alcuni casi però è fondamentale avere questa possibilità direttamente nella fase di registrazione al sito web.

Plugin VMGroup


Virtuemart gruppo cliente nel form di registrazione

Ho realizzato un plugin che aggiunge un nuovo campo direttamente nel form di registrazione (vedi immagine) dando l'opportunità all'utente di selezionare il proprio gruppo cliente.  Questa operazione è possibile sia nel form di registrazione di Joomla sia nella vista Manutenzione Account Cliente di Virtuemart grazie ad un override da utilizzare assieme al plugin.

Configurazione plugin VMGroup

  1. Scegli i gruppi clienti che vuoi visualizzare durante la registrazione individuando i relativi ID. Come sicuramente saprai basta andare sulla maschera Gruppi Clienti di Virtuemart
  2. Abilitare il plugin ed inserire gli ID del punto sopra separati da un punto e virgola
  3. Caricare nella cartella html del template che state utilizzando l'override distribuito insieme al plugin
sabato 16 marzo 2013

Hosting VirtueMart Professionale

hosting virtuemart professionale
Un Hosting Professionale per il nostro e-commerce sviluppato con Virtuemart è molto importante per non vanificare gli sforzi. VirtueMart è un componente per Joomla che vi può permettere di avere un e-commerce completo ed efficace in pochissimo tempo.

Ma quale hosting scegliere per ospitare il nostro sito web?

Caratteristiche di un hosting VirtueMart professionale 

  1. Performante. Sembrerà banale ma la velocità di risposta di un e-commerce è decisiva. VirtueMart richiede la giusta dose di potenza. Hosting condivisi con molti siti web su macchine con poca RAM e con processori datati possono essere la fortuna del vostro portafoglio ma la rovina del vostro business.
  2. Sicuro. La sicurezza prima di tutto. Con i soldi non si scherza! Joomla è uno dei CMS più utilizzati e di conseguenza le persone che si divertono a trovare il modo di "bucarlo" sono molte. Oltre ad un server sicuro (magari che utilizza suPHP e altri accorgimenti) è importante avere un hosting con certificato SSL. E' difficile definire sicuro un e-commerce che non utilizza il protocollo HTTPS.
  3. Backup giornalieri. Inutile che vi spieghi l'importanza.
  4. Accessi FTP e a PhpMyAdmin
  5. Spazio adeguato. Magari senza limiti.
  6. Disponibilità da parte del fornitore del servizio. Mi è capitato di dover cambiare servizio di hosting solo per il fatto che non riuscivo ad ottenere risposte su esigenze particolari di configurazione del server.
Al prezzo di 129 € / anno 

vi offriamo oltre a tutto questo una installazione pronta all'uso di Joomla + VirtueMart già perfettamente configurata con certificato SSL.

Se sei interessato contattami per la tua
nuova installazione di VirtueMart
sabato 17 novembre 2012

Posizione moduli Joomla 2.5

Per definire una nuova posizione per i moduli di un sito web sviluppato con Joomla 2.5 dobbiamo eseguire le seguenti operazioni:

Inserire posizione nel file di definizione del template

Nel file xml di definizione del template, solitamente templateDetails.xml, sono dichiarate le posizioni modulo:

   <positions>
      <position>debug</position>
      <position>position-0</position>
      <position>position-1</position>
      <position>position-2</position>
      <position>...</position>
      <position>position-14</position>
   </positions>

I nomi delle posizioni non sono fissi ma possono variare da template a template. Inseriamo semplicemente un nuovo nome per la nostra posizione.

<position>myposition</position>


Inserire il codice php per la nuova posizione

Aprire il file sorgente del template selezionato (di solito index.php). Aggiungere queste righe nella posizione desiderata:

  <?php if ((bool)$this->countModules('myposition')) : ?>
    <div id="mydiv">
      <jdoc:include type="modules" name="myposition" style="xhtml" />    </div>
  <?php endif; ?>

Consiglio sempre di mettere la verifica che ci sia almeno un modulo pubblicato nella nostra posizione. In questo modo evitiamo di inserire un div vuoto se non abbiamo moduli in quella posizione.
La direttiva jdoc:include serve a definire il segnaposto che il motore di rendering di Joomla andrà a sostituire con i moduli associati alla posizione specifica (myposition in questo caso). Il parametro style serve ad indicare le varianti al codice html di generazione del modulo. Esso può assumere i seguenti valori standard: none, table, horz, xhtml, rounded e outline, definiti in templates/system/html/modules.php, oppure valori arbitrari definiti con un override nel file html/modules.php specifico del template.

Definiamo lo stile del modulo

Modifichiamo il foglio di stile associato al template, solitamente /templates/nome del template/css/position.css, inserendo le regole necessarie:

#mydiv {
  color: #000000;
  width: 90px;
}

Non resta che creare un nuovo modulo dal backend di Joomla ed assegnarlo alla posizione appena creata.
giovedì 23 agosto 2012

Call-time pass-by-reference is deprecated

Deprecated: Call-time pass-by-reference has been deprecated in filename.php

A partire dalla versione 5.3.0 di PHP è stato deprecato il passaggio per riferimento quando si chiama un metodo o una funzione.
l'utilizzo dell'operatore & nelle chiamate dei vostri metodi - esempio: metodo(&$a) - genera il messaggio di warning mostrato all'inizio.
In PHP 5 infatti gli oggetti vengono sempre passati per reference (per riferimento) e quindi in questo caso l'operatore & non serve. Per i tipi di dati primitivi basta indicarlo nella definizione del metodo.
Ricordo infatti che dalla versione 5.3.0 di PHP è stato deprecato il passaggio per riferimento nella chiamata di un metodo ma non certo il passaggio per riferimento. Vediamo un esempio:

function functionA(&$var) { 
    $var++; 

functionB($var) {
    $var++; 

$n = 1;

// corretto 
functionA($n); 

// deprecated 
// functionB(&$n);

echo $n; // output 2 

In entrambi i casi si vuole che la variabile $n venga incrementata dal metodo ma il secondo modo (commentato per non far attivare il warning) è scorretto.
Se stai utilizzando codice di terze parti ti può capitare che venga ancora utilizzato il passaggio per riferimento a tempo di chiamata. Per far funzionare la tua applicazione puoi intervenire sul php.ini attraverso la seguente direttiva

allow_call_time_pass_reference = on

Questa però deve essere presa come una soluzione temporanea in attesa della versione corretta.
giovedì 9 agosto 2012

Le Costanti di Joomla

Le costanti che Joomla ci mette a disposizione possono risultare molto utili quando scriviamo i nostri componenti
Di seguito riporto un elenco non esaustivo delle costanti che possiamo utilizzare nelle nostre estensioni di Joomla.


 Costanti legate al percorso

  • DS: il separatore di directory (/), garantisce la portabilità tra sistemi operativi diversi. Come ben sapete Windows utilizza il carattere \ a differenza di linux /
  • JPATH_ADMINISTRATOR: il percorso base dell’applicazione JAdministrator (/joomla/administrator) 
  • JPATH_BASE: il percorso base dell'applicazione corrente: assume valori diversi a seconda dell’applicazione in uso (JSite, JAdministrator, JInstallation o altre personalizzate) 
  • JPATH_COMPONENT: il percorso verso la directory del componente in uso (/joomla/components/com_in_uso) 
  • JPATH_COMPONENT_ADMINISTRATOR: il percorso verso la directory lato admin del componente in uso (/joomla/administrator/components/com_in_uso) 
  • JPATH_COMPONENT_SITE: il percorso verso la directory lato sito del componente in uso (/joomla/components/com_in_uso) 
  • JPATH_CONFIGURATION: il percorso della directory che contiene il file di configurazione (/joomla) 
  • JPATH_INSTALLATION: il percorso della applicazione di installazione JInstallation (/joomla/installation) 
  • JPATH_CACHE: il percorso della directory cache (/joomla/cache) 
  • JPATH_LIBRARIES: il percorso della cartella libraries (/joomla/libraries) 
  • JPATH_PLUGINS: il percorso della cartella plugins (/joomla/plugins) 
  • JPATH_ROOT: il percorso principale del framework Joomla (/joomla) 
  • JPATH_SITE: il percorso base dell'applicazione JSite (/joomla) 
  • JPATH_THEMES: il percorso della cartella templates (/joomla/templates)


 Costanti legate alla data

  • DATE_FORMAT_LC: mostra la data nella forma Giovedì, 09 Agosto 2012 
  • DATE_FORMAT_LC2: mostra la data e l’ora nella forma Giovedì, 09 Agosto 2012 10:00
  • DATE_FORMAT_LC3: mostra la data nella forma 09 Agosto 2012
  • DATE_FORMAT_LC4: mostra la data nella forma 09:08:12

Il mio consiglio è di utilizzare nelle operazioni di include e require le costanti messe a disposizione dal framework di Joomla in modo da garantire la corretta portabilità dei vostri componenti.
sabato 21 aprile 2012

Symfony 2: comandi del framework

Symfony 2 è un framework MVC (e non solo!) sviluppato in PHP. Riporto di seguito i comandi più utili per velocizzare lo sviluppo (per eseguire questi comandi spostarsi nella directory app della tua applicazione sviluppata con Symfony 2):

  • php console generate:bundle Genera la struttura delle directory di un nuovo bundle
  • php console gen:doctrine:entity Genera una nuova entità
  • php console doctrine:database:create Crea il database per la tua applicazione
  • php console doctrine:schema:update --dump-sql Genera le query per creare o aggiornare le tabelle corrispondenti alle entità di Symfony
  • php console doctrine:schema:update --force Aggiorna il database con le query ottenute con il comando precedente
  • php console doctrine:generate:crud Data una entity, permette di generare il controller e le relative viste  per effettuare le operazioni di creazione, lettura, aggiornamento e cancellazione di un elemento.
  • php console doctrine:generate:entities XXX Genera i metodi getter e setter per le entità del namespace indicato (XXX). Notiamo che è possibile specificare anche una singola entità.

Questi sono solo alcuni dei comandi che Symfony 2 mette a disposizione. Rimando alla guida ufficiale per una panoramica completa.
venerdì 23 marzo 2012

Joomla 2.5 Parametri del componente nel modello

Leggere i parametri di un componente dentro il modello è molto semplice con Joomla 2.5. Vediamo come fare:

Importare l'helper

Importiamo nel nostro modello la seguente classe:

jimport('joomla.application.component.helper');

Recuperiamo l'oggetto JRegistry

$params = JComponentHelper::getParams('nome_componente');

Dove nome_componente è il nome del vostro componente

Chiediamo il nostro parametro

$myParameter = $params->get('myParameter');