url rewrite

7 contenuti / 0 new
Ultimo contenuto
url rewrite

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

<?php
 
print $content
?>
ho aggiunto questo codice:
<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: presumo un errore nella scrittura del post :)

Ciao
Marco
--
My blog
Working at @agavee