Prova la demo di vtiger 5.1 | Scarica la localizzazione in italiano | Chiedi consiglio ...
Personalizzare webform di vtiger
Questa guida si prefigge come obbiettivo la personalizzazione del webform di vtiger che interagisce con il modulo Leads.
Per scaricare la versione ufficiale dei webform di vtiger cliccare su questo link

Il manuale inerente all'installazione e utilizzo dei webform è reperibile utilizzando questo link

Per poter effettuare le seguenti personalizzazioni va modificato il webform (lato client) e la gestione soap (lato server)

Il webform personalizzato da me e discusso in questa guida è reperibile dalla sezione sviluppatori dei Download di vtiger-italia.net -

Inoltre ho implementato il webform personalizzato sulla demo di vtiger 5.0.4 reperibile utilizzando questo link

Il questa guida, andiamo a inserire tre campi aggiuntivi all'interno del webform standard. Per far ciò tratteremo inizialmente il lato client ovvero
il webform in se e dopodiche il lato server ovvero la gestine delle soap.


LATO CLIENT (WEBFORM)

Per poter modificare il Webform di vtiger è sufficente modificare due file ovvero:

1)vtigercrm-webforms-5.0.3/Lead/index.php il quale contiene il codice che mostra a video i form da riempire con relativo pulsante "submit"
2)vtigercrm-webforms-5.0.3/Lead/send_data.php il quale contiene gli array di parametri prelevati dai campi della pagina sopra indicata.

Nella pagina index.php dovete inserire i form (standard o custom field) che desiderate. Un passaggio molto importante è quello di specificare nonche
tenere a mente il nome dato al form inserito perchè ci servira nei passaggi successivi.

Qui di seguito condivido un esempio:

Esempio di custom field formato picklist:

        <tr><th>Interessato a:</th>
        <td>  <select name = "interessato" onChange="getSelect()">
            <option value="--Nessuno--">--Nessuno--
            <option value="vtiger">vtiger
            <option value="joomla">joomla
        <option value="penthao">penthao
            </select></td></tr>

Esempio di custon field formato testo:

        <tr><th>Sitoweb:</th>
        <td><input type=text name=sitoweb size=30 value="<?php echo $_POST['sitoweb']?>"></td></tr>


Nella pagina send_data.php bisogna inizializzare le variabili prelevando i valori tramite il POST:


NB: DA QUI IN POI BISOGNERA' FARE MOLTA ATTENZIONE ALL'ORDINE DI INSERIMENTO DELLE VARIABILI IN QUANTO IN OGNI PUNTO, PERCHE' IL SISTEMA FUNZIONI CORRETTAMENTE, ESSO DEVE ESSERE UGUALE

    $firstname =$_POST['firstname'];
    $lastname = $_POST['lastname'];
    $company = $_POST['company'];
    $email = $_POST['email'];
    $fax = $_POST['fax'];
    $interessato=$_POST['interessato'];
    $sitoweb=$_POST['sitoweb'];
    $phone = $_POST['phone'];
    $country = $_POST['country'];
    $description = $_POST['description'];

Dopodiche bisogna inizializzare i parametri associando le variabile ai relativi campi presenti nel database:

    $params = array(
    'firstname'=>"$firstname",
    'lastname' => "$lastname",
    'company'=>"$company",
    'email'=>"$email",
    'fax'=>"$fax",
    'cf_452'=>"$interessato",//Da cambiare
    'cf_450'=>"$sitoweb",//Da cambiare
    'phone'=>"$phone",
    'country'=>"$country",
        'description'=>"$description",
        'assigned_user_id'=>"$assigned_user_id");

N.B. cf_452 è un esempio di custom field;
Per poter sapere quali sono i nomi che il sistema ha assegnato ai custom field al momento della creazione o i nomi effettivi dei campi standard di vtiger contenuti nel modulo Leads bisogna accedere al database mysql ed effettuare la seguente query: select * from vtiger_field where tabid=7;
Effettuando questa query vi apparira una tabella che conterra svariate colonne; quelle che rientrano nel nostro interesse sono la columnname (contiene effettivamente il nome dei custom field o del campo standard) e la fieldlabel (contiene il nome del campo associato visualizzato all'interno di vtiger).
 
N.B. In questa guida stiamo trattando solamente la personalizzazione dei webform che interagiscono con il modulo Lead; questo non toglie che le modifiche che stiamo apportando sul webform per il modulo Lead non siano utilizzabili anche per i webform sul modulo Contacts. See avete bisogno di sapere quali sono i nomi dei campi contenuti nel modulo COntacts non dovete fare altro che effettuare la seguente query: select * from vtiger_field where tabid=4



LATO SERVER (SOAP)

Il file che andiamo a modificare è soap/webforms.php il quale contiene la funzione create_lead_from_webform che va effettivamente a aggiungere i dati al database
Nella pagina soap/webforms.php dovete modificare l'array contenente le etichette dei relativi campi presenti nel database relativi a quelli inseriti nella pagina index.php

$server->register(
    'create_lead_from_webform',
    array(
        'firstname'=>'xsd:string',
        'lastname'=>'xsd:string',
        'company'=>'xsd:string',
        'email'=>'xsd:string',
        'fax'=>'xsd:string',
        'cf_452'=>'xsd:string',//Da cambiare
        'cf_450'=>'xsd:string',//Da cambiare
        'phone'=>'xsd:string',
        'country'=>'xsd:string',
        'description'=>'xsd:string',
        'assigned_user_id'=>'xsd:string' ),
    array('return'=>'xsd:string'),
    $NAMESPACE);



Dopodiche bisognerà modificare la funzione di creazione del nuovo lead per fare ciò bisogna cambiare le variabili utilizzate all'interno della funzione

function create_lead_from_webform($firstname,$lastname,$company, $email,$fax,$interessato,$sitoweb,$phone,$country,$description, $assigned_user_id)


Infine bisognerà cambiare le variabili associate alle relative etichette del database contenute all'interno della funzione di creazione del Lead.

require_once("modules/Leads/Leads.php");
    $focus = new Leads();
    $focus->column_fields['firstname'] = $firstname;
    $focus->column_fields['lastname'] = $lastname;
    $focus->column_fields['company'] = $company;
    $focus->column_fields['email'] = trim($email);
    $focus->column_fields['fax'] = $fax;
    $focus->column_fields['cf_452'] = $interessato;//Da cambiare
    $focus->column_fields['cf_450'] = $sitoweb;//Da cambiare
    $focus->column_fields['phone'] = $phone;
    $focus->column_fields['country'] = $country;
    $focus->column_fields['description'] = $description;
    $focus->column_fields['assigned_user_id'] = $assigned_user_id;



Written by Dolce Stefano ( Indirizzo e-mail protetto dal bots spam , deve abilitare Javascript per vederlo )
Happy vtiger!!! : - )

Per dubbi o informazioni non esitate a scrivermi o usate il forum italiano di vtiger (il mio nick è sdolce)