Passare parametri da url

23 contenuti / 0 new
Ultimo contenuto
Passare parametri da url

Ciao a tutti!
una piccola domanda..è possibile passare un parametro da url per compilare un campo di cck?

grazie a tutti ;)
marco

chiedo aiuto ragazzi, mi serve questa cosa perchè vorrei evitare di creare tanti content-type uguali che cambiano soltanto di qualche parametro.

marco

non è molto chiaro quello che vuoi fare...
comunque credo si possano passare gli argomenti della url con php input o computed field arg(0), arg(1) eccetera

ciao bohz! grazie per il tuo aiuto :)
vorrei realizzare la seguente cosa.. www.mysito.it/?q=node/8&nomeCampo=valore e fare in modo che quando carico la pagina "8" compare il valore nel campo "nomeCampo"
non sono molto pratico di drupal, non ho capito bene dove mettere le mani con php input

grazie ancora
marco

L'URL che hai citato di solito viene usato per visualizzare il nodo. In più, sarebbe aperto ad 'attacho', semplicemente aggiungendo (e quindi modificando il campo CCK) il parametro al'URL. Forse meglio pensare ai interfaccie 'programmatiche' tipo XML-RPC o Services.

Altrimenti, bisogna modificare il nodo solo durante l'editing: node/123/edit, magari aggiundendo il tuo valore in fondo: node/123/edit/valore. Comunque, in questo caso, sarà necessario:

  1. Creare un modulo
  2. Modificare il form (per inserire il valore nel campo)
  3. Modificare il submit (per controllare che il valore è corretto)

Se non sei pratico di PHP o Drupal o moduli personalizzati - hai un bel gatto da pellare...

Se riesci a discrivere un pò più verbosemente il tuo problema (senza preoccuparti di termini Drupal, ecc) forse una soluzione più semplice c'è. Per esempio esistano moduli per importare nodi da testo CSV, ecc. Senza programmare...

John

Più imparo, più dubito.

Ciao John! grazie mille per il tuo aiuto
Quindi esiste un modulo per importare direttamente i valori da un file CSV ? Questa cosa mi riempie di gioia :) Come si chiama?
perché se riesco a passare i valori da file ho risolto automaticamente il problema.
Comunque ho realizzato con cck un nodo che mi permette di creare contenuti nel mio sito e nel suo interno ci sono vari campi da compilare. siccome è scomodo compilare il modulo perchè ci sono tanti campi vorrei trovare un metodo più pratico per rendere più veloce questa procedura.
All'inizio ho pensato a passare i parametri da url ma come dici giustamente tu non è una buona soluzione perchè non è sicura..l'idea di caricare da file mi piace molto
sul sito di drupal ho trovato questa documentazione(http://drupal.org/node/296453#webform-url-default) ma non mi funziona ._.

grazie ancora
marco

Più imparo, più dubito.

Grazie per il link John!

purtroppo non riesco ad utilizzarlo, quando creo il wizard al 6°passo viene fuori questo errore "Fatal error: Call to undefined function mb_convert_encoding() " e fa riferimento a "aef_table\aef_table.module on line 115"

come posso fare per risolvere questo problema?

aef_table è un altro modulo che non mi risulta sia richiesto da node import.
Forse hai confuso i nomi dei moduli...
questo è il modulo suggerito da john: http://drupal.org/project/node_import

Se sei in vena di tentativi http://drupal.org/project/feeds + http://drupal.org/project/data offrono un meccanismo di import più evoluto (certo, c'è da studiare!)

Per la prima domanda (passare i parametri dall'url ai campi cck), non è certo un modo di importare i dati, ma si può fare con http://drupal.org/project/prepopulate

bohz ho installato il modulo node_import ma purtroppo anche il modulo aef_table non vorrei che questo crea dei conflitti.
l'errore sulla aef_table comprare quando vado su (Administer >> Content managment >> Import content.) che credo appartenga a node_import
scusatemi sto impazzendo :(

per quanto riguarda prepopulate proverò subito :)

grazie ancora!

Non è un problema di moduli, ma di una funzione di PHP mancante: http://php.net/manual/en/function.mb-convert-encoding.php
Probabilmente manca mbstring, vedi qui: http://www.drupalitalia.org/node/8777#comment-26942 dove era successo la stessa cosa...

Più imparo, più dubito.

grazie ancora per il tuo aiuto john! quindi devo abilitare questa funzione mancante di php.
ho letto la documentazione ufficiale e onestamente non ho capito come si fa, cercando sul web e sul link ho tolto il ";" ad extension=php_mbstring.dll ed a tutte le istruzioni di mbstring presenti nel file php.ini di php.
ma ancora non parte :(

Più imparo, più dubito.

non so se era quello che si voleva ottenere in questo 3d ma tempo fa io cercavo di avere una cosa simile:
tramite url mi serviva completare dei campi di cck ad esempio:
vado su www.sito.com e tramite un link "segnalibro" mi rimandava in automatico al mio sito e mi compilava i campi cck a seconda del sito da cui avevo cliccato su quel link

Grazie John! finalmente adesso riesco a caricare il file csv e visualizzo il suo contenuto in una tabella.
devo capire bene come autocompilare i campi cck prendendo i dati dal csv, ho impostato il match ma sembra non andare..sicuro c'è qualcosa che mi sfugge :)

ciao azz si è lo stesso problema..per passare i parametri devo ancora provare il modulo consigliato da bohz
con il file csv dovrei risolvere i due problemi con un solo colpo

marco

io non riesco a capire come fanno, se ci riesci me lo spieghi?
scusate :)

Ciao a tutti! scusate l'assenza dal forum
Per quanto riguarda il caricamento dati con csv tutto ok! ringrazio tutti per i preziosi consigli :)

invece per la questione dei parametri da url ancora non riesco a farlo funzionare..ho provato il modulo "prepopulate" ma non riesco a passare il valore dall'url al field cck.
ho inserito il codice suggerito nella guida nel campo "PHP Code" ma non ci riesco :(
nel mio esempio ho un campo che si chiama Impianto(field_impianto) nel nodo inserimento
nella textarea inserisco
<input id="edit-field-impianto-0-nserimentoinverter" class="form-text   form-autocomplete" type="text" value="" size="60"   name="field_impianto[0][inserimento]" maxlength="128" autocomplete="OFF"/>"
e dall'url http://localhost/?edit[field_impianto][0][inserimento]=23

dove sbaglio?

marco

non ho mai usato questo modulo ma ad occhio direi che l'errore sta qui:

http://localhost/?edit[field_impianto][0][***********]=23
[/codefilter_c...

dovrebbe essere [value] o, se come sembra è un campo noderef, [nid]

Un form viene inviato al server come POST, non GET. La parte query di un URL (dal ? in poi) viene usato solo per un GET. Non sarà mai possibile spedire un GET ad un form che vuole un POST.
HTTP http://www.w3.org/Protocols/rfc2616/rfc2616.html (Okay ci vuole tutto il giorno a leggerlo) [it - breve] http://it.wikipedia.org/wiki/Hypertext_Transfer_Protocol
GET http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3
POST http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5

Prepopulate usa un GET per 'settare' i valori di un form. Ma poi quel form dev'essere inviato (POST). In più, sia nel nome, sia nel valore bisogna seguire un sintasse di codifica per la query (query syntax and encoding) - non così facile da fare a mano. http://en.wikipedia.org/wiki/Query_string#URL_encoding Gli esempi nella pagina home di prepopulate (tutti sbagliati) mi hanno fatto crescere altri capelli grigi!

Probabilmente bisogna studiare il 'modello' di Prepopulate - ma non ho letto il codice, nemeno scaricato. Oppura, come dicevo io prima, creare un modulo che legge questi parametri, per poi caricarli nel node e salvarli. Non impossibile, solo un pò complesso. Un passo in più di quanto fa Prepopulate.

Se invece devi farlo per n nodi (mi sembra di si, dato che stai caricando i nodi con csv) si potrebbe forse usare wget per 'inviare' il form compilato - usando POST. bisogna fare il login ed ottenere il cookie - sempre con wget, ma non è troppo complesso. Anche qui però l'encoding è necessario...
wget --post-string="name=valore&name1=valore1" http://www.drupalitalia.org/node/123/edit[/codefilter_code] (esempio di pura fantasia - sicuramente non funzionale, ma rende l'idea.
Non letto completamente - solo browsed: http://gerlos.altervista.org/usa-wget-scaricare-file-sito-che-richiede-a...

Tutto dipende quanto è grande 'n'...

Più imparo, più dubito.

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
Per la prima domanda (passare i parametri dall'url ai campi cck), non è certo un modo di importare i dati, ma si può fare con http://drupal.org/project/prepopulate[/quote]

Perché non usare del semplice codice PHP per caricare valore di default nel campo CCK? In quel modo si risparmia di installare un modulo no?

Non lo metto in dubbio.
Prepopulate è fatto in particolare per i bookmarklets; non saprei da dove cominciare per ottenere la stessa funzionalità con php (o qualunque altro linguaggio!). Quindi per il momento userei il modulo. ;)

Ciao a tutti! Grazie mille ancora per i consigli
Quindi gli esempi del modulo Prepopulate non sono corretti..proverò da subito ad usare wget!
devo utilizzarlo per tanti moduli speriamo di trovare una soluzione :)

finex purtroppo non sono pratico di php..quindi per me la vedo molto dura prendere quella strada

Marco

Marcojazz wrote:

finex purtroppo non sono pratico di php..quindi per me la vedo molto dura prendere quella strada

Ti consiglio di fare pratica allora. È decisamente utile :-) :-)

ciao!