Salve a tutti e grazie per il supporto che date ai nuovi drupaliani come me. Veniamo al duque: installazione fresca fresca di drupal 6, vorrei sapere se si può fare quanto segue:
ho creato un nodo che riceve via post delle variabili, in base a queste interroga in database esterno a drupal e mostra il risultato intabellato. Fin qui tutto ok. Come potrei fare per avere un url semplificato, dello stesso nodo, assegnato in base ai termini che passo come variabili?
Es:
url reale: mysite.com/?q=node/59&name=chat&family=felin
oppuere mysite.com/?q=node/59&name=dog&family=dog (fate caso il nodo è sempre il 59)
url modificato da drupal con in modulo url aliasing: mysite.com/animal/?name=chat&family=felin
oppure mysite.com/animal/?name=dog&family=dog
quello che vorrei: mysite.com/animal/chat/felin
oppure mysite.com/animal/dog/dog
Grazie a tutti per l'aiuto!
Questo è quello che ti serve:
http://drupal.org/project/pathauto
Ciao e buon lavoro :-)
E' un pò più complesso di così. Ho fatto qualche piccolo sperimento...
Prima però, usando Clean URLs e Path puoi convertire l'URL così:
Prima: mysite.com/?q=node/59
Con Clean URLs: mysite.com/node/59
Con Path: mysite.com/ricevitore
In Drupal la funzione
arg(n)
restituisce l'ennesimo argomento del URI, partendo da 0. Quindi nel template di pagina (page.tpl.php
), prima del solito<pre>
Parameters received:
<?php
print('0='. arg(0) ."\n");
print('1='. arg(1) ."\n");
print('2='. arg(2) ."\n");
print('3='. arg(3) ."\n");
print('4='. arg(4) ."\n");
print('5='. arg(5) ."\n");
print('6='. arg(6) ."\n");
print('7='. arg(7) ."\n");
print('8='. arg(8) ."\n");
print('9='. arg(9) ."\n");
?>
End of list.
</pre>
Allora chiamando mysite.com/ricevitore mi dà:
Parameters received:
0=node
1=59
2=
3=
4=
5=
6=
7=
8=
9=
End of list.
Ma provando con mysite.com/ricevitore/chien/chien/chou-chou/mex risulta in una pagina 404, e la lista è:
Parameters received:
0=iface
1=chien
2=chien
3=chou-chou
4=mex
5=
6=
7=
8=
9=
End of list.
Okay, chiamami ottimista ;-). A questo punto la soluzione è un pò più complesso - ma forse qualcun'altro ha una soluzione più semplice.
Bisogna creare un modulo, e un menu item tipo
ricevitore/%1/%2/%3/%4/%5/%6/%7/%8/%9
e una funzione per gestire i valori ricevuti.Il codice in
modules/node/node.module
potrebbe essere utile come esempio...HTH
John
Più imparo, più dubito.
Invece, sembra più facile...
Ho cambiato il codice in:
<pre>
Params:
<?php
print('0='. arg(0) ."\n");
print('1='. arg(1) ."\n");
print('q='. $_GET['q'] ."\n");
print('name='. $_GET['name'] ."\n");
print('family='. $_GET['family'] ."\n");
?>
End
</pre>
Poi lanciando
mysite.com/ricevitore?name=dog&family=dog
il risultato è:Params:
0=node
1=59
q=node/59
name=dog
family=dog
End
Quindi probabilmente va bene così per il tuo problema...
John
[Edit] Cercavo 'p', invece è 'q', scusa. I must mind my p's and q's...
Più imparo, più dubito.
heemm.. ma struttare semplicemente l'htaccess?
Non ho capito se devi gestire molti nodi o solo qualcuno, se non sono tantissimi usando l'htaccess non pesi sul DB e probabilemnte riesci a non impazzire dovendo separare i tuoi arguments da quelli di Drupal.
Ciao
Marco
--
My blog
Working at @agavee
Sono
confuso parli di nodo che accetta aparametri in POST e poi ragioni in GET?
Uccio
Il mio sito con drupal
@uccio: presumo un errore nella scrittura del post :)
Ciao
Marco
--
My blog
Working at @agavee