Back to top

Autore Topic: Chronoforms e le WebForms di vtiger  (Letto 4609 volte)

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Chronoforms e le WebForms di vtiger
« il: 05 Set 2012, 09:24:30 »
Salve,
ho realizzato un form con ChronoForms che mi permette di inserire dei Leads in vtiger attraverso il sistema Webform che lo stesso vtiger mette a disposizione.

Creando un comunissimo form, con action che punta a "http://localhost/vtigercrm/modules/Webforms/post.php", tutto funziona regolarmente e i leads vengono caricati su vtiger.

La mia esigenza però è quella di utilizzare CURL per l'invio della richiesta e l'inserimento dei Lead su vtiger.
In "onSubmit" presente nella tab "Events" di chronoform, ho inserito un evento CURL e l'ho configurato in questo modo:

Target URL: http://localhost/vtigercrm/modules/Webforms/post.php
Header in response ?: No
Params/Fields map: moduleName=Leads

Ho provato in tutti i modi ma non riesco a farlo funzionare... dove sbaglio? non so più dove sbattere la testa, ho cercato in rete ma niente... qualche anima gentile che può aiutarmi?

PS:
due precisazioni:
1. Curl è installato correttamente nel mio webserver, l'ho già utilizzato in altre occasioni e funziona regolarmente
2. i nomi dei campi sono corretti, corrispondono ai corrispettivi di vtiger e l'inserimento dei lead, da un comune form chronoform senza l'utilizzo di CURL, funziona regolamente.


grazie mille

mau_develop

  • Visitatore
Re:Chronoforms e le WebForms di vtiger
« Risposta #1 il: 05 Set 2012, 15:17:04 »
io lascerei perdere il curl integrato in joomla e userei il curl di php ... non cambia molto almeno se nn funziona nn ho la preoccupazione di aver fatto qualche errore di sintassi J

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Chronoforms e le WebForms di vtiger
« Risposta #2 il: 05 Set 2012, 16:16:16 »
che intendi con "io lascerei perdere il curl integrato in joomla e userei il curl di php"... joomla, e in particolare chronoform, non fa già uso di CURL di php?
pensavo che chronoform utilizzasse semplicemente una libreria che si appoggia a CURL di php...

ma c'è un modo per switchare la cosa?

mau_develop

  • Visitatore
Re:Chronoforms e le WebForms di vtiger
« Risposta #3 il: 05 Set 2012, 16:28:08 »
scusa, magari ignoro io che chronoform ha implementato una classe curl... o mi confondo su joomla che integra una classe Curl, ..dopo guardo, comunque dicevo di provare ad usare direttamente http://php.net/manual/en/book.curl.php

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Chronoforms e le WebForms di vtiger
« Risposta #4 il: 05 Set 2012, 16:59:17 »
scusa, magari ignoro io che chronoform ha implementato una classe curl... o mi confondo su joomla che integra una classe Curl, ..dopo guardo, comunque dicevo di provare ad usare direttamente http://php.net/manual/en/book.curl.php

M.

ma joomla dovrebbe già far uso di curl php, voglio dire non ha una sua libreria ma si appoggia all'estensione che si abilita nel file di configurazione di php.

Forse tu intendi dire di scrivere uno script in CURL che faccia ciò che voglio e includerlo in un CustomCode all'onSubmit di chronoform??

mau_develop

  • Visitatore
Re:Chronoforms e le WebForms di vtiger
« Risposta #5 il: 05 Set 2012, 17:18:41 »
omioddio dove mi sono infilato :)

intendevo qs:
Codice: [Seleziona]
function grabPageCode($append=array()){

            /*
             * $append  = array of uri to append (hash =>)
             * $hash    = request get or post
             * $moreopt =
             *
             * For more curl options  http://php.net/manual/en/function.curl-setopt.php
             *
             */
$this->url='Your_base_url+implode di $append';

            $optcurl = array( // Base curls options
                    CURLOPT_RETURNTRANSFER => true, //-> return page
                    CURLOPT_HEADER => false, //-> return headers
                    CURLOPT_FOLLOWLOCATION => false, // follow redirects
                    CURLOPT_ENCODING => "", // blank-> all encodings
                    CURLOPT_USERAGENT => $this->agent, //-> user-agent
                    CURLOPT_CONNECTTIMEOUT => 120, //-> to connect timeout
                    CURLOPT_TIMEOUT => 120, // to response timeout
                  CURLOPT_POST => 0, // send post data
                   CURLOPT_POSTFIELDS => $curl_data, // this are my post vars
                    CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
                    CURLOPT_SSL_VERIFYPEER => false, //
                    CURLOPT_VERBOSE => 1 //
                );

            $call = curl_init($this->url);
            curl_setopt_array($call,$optcurl);
            $content = curl_exec($call);
            $err = curl_errno($call);
            $errmsg = curl_error($call) ;
            $header = curl_getinfo($call);

            curl_close($call);

            return $content;

        }


questa è una chiamata usando curl che nn centra nulla con joomla e non interferisce con nulla anche se la usi al suo interno generando variabili interne (runtime)

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Chronoforms e le WebForms di vtiger
« Risposta #6 il: 05 Set 2012, 17:28:08 »
ok ho risolto
Dopo quello che ci siamo detti (di realizzare uno script CURL ad-hoc per l'occasione da far eseguire a chronoform) ho pensato di andare a controllare prima il codice del plugin CURL utilizzato da chronoforms.
Leggendo il codice mi sono accorto che, durante la chiamata CURL, i dati inviati erano incompleti (praticamente un piccolo bug O_O). I dati inviati erano soltamente quelli specificati nel Params/Fields map e quindi soltanto moduleName=Leads (nel mio caso). Il resto dei valori del form, obbligatori per vtiger, venivano tralasciati.
Vtiger, dal canto suo, in assenza di tutti i valori non permetteva l'inserimento dei dati.

A questo punto, apportando una piccola modifica al plugin, riesco a recuperare tutto quello che mi serve, lo invio con la chiamata CURL e adesso funziona.


brevemente ecco un pezzo di codice estratto dal plugin
Codice: [Seleziona]

// qui prende solamente i valori specificati nell'area di testo sottoforma di
// nomevalore=valore
// nomevalore=valore
// e cosi via

//prende i valori e con un elaborazione, che non sto a spiegare, genera un output di tipo

//nomevalore=valore&nomevalore=valore&nomevalore=valore&

// il risultato lo mette in $query

// infine $query lo invia direttamente con la chiamata CURL tralasciando il resto dei dati che sono presenti nel form

        if(!empty($actiondata->content1)){
            $list = explode("\n", trim($actiondata->content1));
            $curl_values = array();
            foreach($list as $item){
                $fields_data = explode("=", $item);
                $curl_values[$fields_data[0]] = trim($fields_data[1]);
            }
        }
        $query = JURI::buildQuery($curl_values);

        echo $query;
        exit;

        $form->debug['curl'][] = '$curl_values: '.print_r($query, true);
        $form->debug['curl'][] = 'curl_target_url: '.$params->get('target_url');
        $ch = curl_init($params->get('target_url'));
        curl_setopt($ch, CURLOPT_HEADER, $params->get('header_in_response', 0));// set to 0 to eliminate header info from response
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// Returns response data instead of TRUE(1)
        curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// use HTTP POST to send form data
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        $response = curl_exec($ch);//execute post and get results
        curl_close($ch);

« Ultima modifica: 05 Set 2012, 17:32:19 da pino8314 »

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Chronoforms e le WebForms di vtiger
« Risposta #7 il: 05 Set 2012, 17:28:49 »
omioddio dove mi sono infilato :)

intendevo qs:
Codice: [Seleziona]
function grabPageCode($append=array()){

            /*
             * $append  = array of uri to append (hash =>)
             * $hash    = request get or post
             * $moreopt =
             *
             * For more curl options  http://php.net/manual/en/function.curl-setopt.php
             *
             */
$this->url='Your_base_url+implode di $append';

            $optcurl = array( // Base curls options
                    CURLOPT_RETURNTRANSFER => true, //-> return page
                    CURLOPT_HEADER => false, //-> return headers
                    CURLOPT_FOLLOWLOCATION => false, // follow redirects
                    CURLOPT_ENCODING => "", // blank-> all encodings
                    CURLOPT_USERAGENT => $this->agent, //-> user-agent
                    CURLOPT_CONNECTTIMEOUT => 120, //-> to connect timeout
                    CURLOPT_TIMEOUT => 120, // to response timeout
                  CURLOPT_POST => 0, // send post data
                   CURLOPT_POSTFIELDS => $curl_data, // this are my post vars
                    CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
                    CURLOPT_SSL_VERIFYPEER => false, //
                    CURLOPT_VERBOSE => 1 //
                );

            $call = curl_init($this->url);
            curl_setopt_array($call,$optcurl);
            $content = curl_exec($call);
            $err = curl_errno($call);
            $errmsg = curl_error($call) ;
            $header = curl_getinfo($call);

            curl_close($call);

            return $content;

        }


questa è una chiamata usando curl che nn centra nulla con joomla e non interferisce con nulla anche se la usi al suo interno generando variabili interne (runtime)

M.

grazie lo stesso

mau_develop

  • Visitatore
Re:Chronoforms e le WebForms di vtiger
« Risposta #8 il: 05 Set 2012, 18:31:00 »
l'importante è sempre il risultato... non ho letto gli script... attenzione solo alle var che usi, dichiarale prima di usarle e se vengono da ambienti esterni un bel controllino... una call curl è un proxi e se qualcuno ne abusa... sei tu che ne abusi

M.
« Ultima modifica: 05 Set 2012, 18:33:00 da mau_develop »

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:Chronoforms e le WebForms di vtiger
« Risposta #9 il: 06 Set 2012, 23:49:43 »
pino Ciao.

Ho visto che hai risolto.

Ti volevo solo segnalare un articolo che scrissi un pò di tempo fa.

http://www.joomla.it/articoli-della-community/4716-integrare-joomla-con-crm-vtiger-tramite-il-componente-chronmoforms-di-joomla.html

magari ti può interessare.

Ciao.
Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

 



Web Design Bolzano Kreatif