Chi usa Drupal e ci tiene un pò a avere un buon rapporto con gli spider di rete avrà sicuramente abilitato il modulo path e clear url, ma sicuramente si sarà accorto di quanto è noioso ogni volta andare a inserire il nome del path a mano per ogni contenuto (con la possibilità di commettere errori). Per ovviare a questo problema esiste un modulo che se abilitato converte automaticamente il titolo in un path sostituendo gli spazi con il carattere "-" (ma vedremo dopo come inserire il carattere che più preferiamo) eliminando tutte quelle parole che si ritengono inutili (come di, a, ...).
come prima cosa dobbiamo scaricare il modulo (lo potete trovare qui) e caricarlo, dopo averlo decompresso nella cartella /modules della vostra installazione di Drupal. Fatto questo andiamo nel pannello di amministrazione e abilitiamo il modulo URLify, richiede anche che il modulo path sia già stato abilitato, altrimenti vi verrà chiesto di abilitarlo. Fatto queste semplici operazioni possiamo utilizzarlo direttamente, oppure possiamo personalizzarlo secondo le nostre esigenze. Personalmente trovo alquanto sgradevole avere le parole dell'URL separate da "-" e prediligo l'underscore. Per fare questo apriamo il file /modules/urlify/urlify.module e troviamo la funzione function urlify_head()Di questa funzione sostituiamo le righe
s = s.replace(/[^-A-Z0-9\s]/gi, '');
s = s.replace(/^\s+|\s+$/g, '');
s = s.replace(/[-\s]+/g, '-');
s = s.toLowerCase();con
s = s.replace(/[^_A-Z0-9\s]/gi, '');
s = s.replace(/^\s+|\s+$/g, '');
s = s.replace(/[_\s]+/g, '_');
s = s.toLowerCase();Se per caso voleste utilizzare un qualche altro carattere (per esempio ~) andate a sostituirlo dove io ho messo il _ e dovreste essere a posto.
Il modulo non è localizzato in lingua italiana, ma trovate il file della traduzione da importare in allegato a questo articolo (per piacere segnalate eventuali errori, non ho avuto molto tempo per debuggarlo). Sempre per il fatto che il modulo è sviluppato per la lingua inglese di default rimuove alcune parlo "inutili" nei titoli in inglese, ma ciò non risponde alle nostre esigenze di persone che scrivono articoli in italiano, quindi dovremmo andare a effettuare ancora qualche modifica al codice, in particolare dobbiamo editare le funzioni urlify_settings() e urlify_head() trasformando l'array da
array(
"a", "an", "as", "at", "before", "but", "by", "for", "from",
"is", "in", "into", "like", "of", "off", "on", "onto", "per",
"since", "than", "the", "this", "that", "to", "up", "via",
"with"
); in
array(
"un", "una", "a", "alle", "dopo", "ma", "da", "di",
"è", "in", "per", "con", "o", "su", "e", "fino", "gli",
"la", "questo", "il", "quello", "quella", "fra", "oppure"
);dove ovviamente potete andare a inserire i termini che ritenete più inutili, l'importante è rimuovere i termini inglesi, poiché l'aggiunta di ulteriori termini italiani è effettuabili anche tramite l'interfaccia di amministrazione. Fatto questo salvate le modifiche fatte e usate tranquillamente il modulo. Il modulo già modificato lo trovate anch'esso allegato a questo articolo (sostituite il file urlify.module, lasciando il file urlify.info).
| Allegato | Dimensione |
|---|---|
| urlify.po | 2.55 KB |
| urlify.module | 4.77 KB |
Commenti
e con Drupal 6 ?
Ho controllato nella pagina del modulo e non c'è la minima traccia della versione per Drupal 6?
Forse è già implementata nel core di D6 oppure non è prevista nessuna nuova versione?
Guarda sul forum di Drupal
Guarda sul forum di Drupal Italia, che c'era un utente che mi pare avesse fatto la conversione del modulo, in alternativa usa pure pathauto che è abbastanza simile (anche se IMHO URLify è meglio, perché ti permette maggior controllo, per lo meno sui titoli dei nodi).
path con .htm
Ciao, volevo sapere se era possibile modificare questo modulo in modo tale da far terminare la path modificata con estensione .htm o html. Se si potesse fare, come e dove dovrei apportare questa modifica?!!
Grazie
La cosa è fattibile,
ma devi poter intervenire sulla configurazione del server, in particolar modo il problema si presenta poiché il server interpreta la richiesta di una pagina htm come la richiesta di una pagina statica e quindi non la indirizza al modulo che la processa come pagina PHP. Alcuni hoster permettono di impostare queste caratteristiche, altri no, una volta fatto questo non dovresti avere problemi a inserire path con l'.htm finale. Se invece funzioan già tutto e vuoi semplicemente aggiungere l'.html finale nel codice (ora non l'ho sottomano) devi aggiungere al path che viene memorizzato anche l'estensione della pagina.
Si funziona già tutto...
quindi mi servirebbe solo aggiungere al path che viene memorizzato l'estensione della pagina. Io ho provato a scrivere un pagina di prova e a cambiare il path mettendo pagina-prova.htm e poi ho salvato. Tutto funziona regolarmente. Il problema è che purtroppo il sito non è mio e quindi dire alla persona di aggiungere ogni volta questa cosa è alquanto difficile.... quindi mi chiedevo se potevo fare una modifica al modulo in modo tale che la creasse in automatico.
Grazie ancora per l'aiuto!!!
Ok, capito il tuo problema.
Apri il file urlify.module e vai alla riga 107 dove troverai:
return s.substring(0, num_chars); // trim to first num_chars charse sostituiscilo convar mio_path = s.substring(0, num_chars) + '.html'; // trim to first num_chars charsreturn mio_path;
Non l'ho testato ma dovrebbe andare, eventualmente giocaci su un pò per correggere possibili problemi.
Non esiste la riga....
ho controllato il file come mi hai suggerito ed ho cercato la riga in questione ma non l'ho trovata. Non esiste proprio nel mio file.... possibile che abbiamo due versioni diverse del file?!! Va be.. non vorrei farti perdere troppo tempo.... se ne hai voglia.. puoi verificare.... nel frattempo cercherò di mettere url modificato a mano!!
Grazie mille per il tuo aiuto e per la tua pazienza!!
Hai ragione
scusa, la mia versione era vecchia, ora è stato spostato nel file urlify.js, riga 137 (in fondo). in ogni cao la modfica dovrebbe essere la stessa
Non devi scusarti...
mi hai fatto un grosso favore rispondendomi durante un giorno festivo..... ora provo le modifiche che mi hai detto.... nel caso... tornerò a chiederti "perle di saggezza!!".
Grazie mille...
Ciao
Percorso corretto
Probabilmente, se utilizzi Drupal5 il modulo conviene metterlo in /sites/all/modules/nome_del_modulo è sconsigliato mettere i moduli "esterni" in /modules; per creare meno confusione tra i moduli del "core" e quelli aggiunti!
Ciao!
Le vecchie abitudini, dure a
Le vecchie abitudini, dure a morire ;)
In ogni caso grazie della precisazione.
Due cose ancora, così ti
Due cose ancora, così ti spammo bene nei commenti. Metti comment_info ti prego =)
PS. ma ti posso chiamare con quel servizio...jaxtrjhkjdfkg?
Allora...
Ciao
Ho visto la traduzione e le
Ho visto la traduzione e le lettere accentate non sono in UTF8. Dovresti usare PoEdit per la traduzione. =)
Ci sto lavorando...
...l'avevo detto che era una prima bozza ;)
Ciao
Perchè non hai usato
Perchè non hai usato Pathauto? Era troppo semplice ammettilo :)
URLify è meglio ;)
Perché con pathauto non hai nessun controllo sul path che va a memorizzare, se poi devi modificarlo devi andarlo a modificare negli alias. In questo modo, invece, è vero che crea l'alias in automatico, ma ti lasci la possibilità di fare qualche correzione al volo prima di inviare il nodo al DB (basta andare a aprire il campo path).
Ciao
PS: Molto lieto che tu mi legga ;)
Cioè, URLlify ti fa
Cioè, URLlify ti fa modificare il path prima di inviarlo? Cioè ti fa già vedere un'anteprima del path alias che verrà creato? interessante...
Esattamente
ed eventualmente puoi modificarlo, è proprio li il bello ;)
Ciao
Invia nuovo commento