URLify... secondo i miei gusti.

 

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).

AllegatoDimensione
urlify.po2.55 KB
urlify.module4.77 KB

Altri contenuti che potrebbero interessarti

  • Drupal si occupa esclusivamente della validazione lato server delle informazioni, ma spesso è consigliabile prevedere ad una prima validazione dei dati inseriti dall'utente lato client, in modo da evitare l'invio della richiesta limitando quindi le possibilità di errore. Ovviamente la validazione...
  • Esempio di vista generata dall'integrazione del nostro modulo con views
    Alzi la mano chi non ha mai usato views. Alzi la mano che l'ha mai usato. Ok, non proprio tutti ma buona parte di voi ha alzato la mano, questo perchè è sicuramente uno strumento potentissimo per la visualizzazione delle informazioni, quindi è fondamentale (o comunque molto utile) andare ad...
  • Pagina di ricerca con filtri dinamici nelle views
    Le viste sono uno strumento estremamente potente e permettono di andare ad elaborare le informazioni creando degli elementi (pagine, blocchi, ...) di presentazione. La possibilità di usare dei filtri esposti ne fa degli strumenti adatti alla creazione di strumenti di ricerca dei contenuti. L'...
  • Chi avesse iniziato ad utilizzare Drupal 7 si sarà senz'altro d'accordo che stanno nascendo dei temi di partenza molto sofisticati da cui partire per la realizzazione di temi, in particolare sta emergendo sempre più Omega 3. Questi temi, però possono avere necessità di essere estesi per aggiungere...

Commenti

Ritratto di Peppigno

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?

Ritratto di mavimo

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).

Ritratto di Danilo

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

Ritratto di mavimo

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.

Ritratto di Danilo

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!!!

Ritratto di mavimo

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 con

  var mio_path = s.substring(0, num_chars) + '.html';     // trim to first num_chars chars
  return mio_path;

Non l'ho testato ma dovrebbe andare, eventualmente giocaci su un pò per correggere possibili problemi.

Ritratto di Danilo

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!!

Ritratto di mavimo

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

Ritratto di Danilo

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

Ritratto di thePanz

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!

Ritratto di mavimo

Le vecchie abitudini, dure a

Le vecchie abitudini, dure a morire ;)
In ogni caso grazie della precisazione.

Ritratto di psicomante

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?

Ritratto di mavimo

Allora...

  • Per il comment_info lo farò di sicuro, anzi... mo lo faccio :P
  • Per il servizio di chiamate si... ho ancora 4 min di chiamate gratis ;)

Ciao

Ritratto di psicomante

Ho visto la traduzione e le

Ho visto la traduzione e le lettere accentate non sono in UTF8. Dovresti usare PoEdit per la traduzione. =)

Ritratto di mavimo

Ci sto lavorando...

...l'avevo detto che era una prima bozza ;)

Ciao

Ritratto di Psicomante

Perchè non hai usato

Perchè non hai usato Pathauto? Era troppo semplice ammettilo :)

Ritratto di mavimo

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 ;)

Ritratto di psicomante

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...

Ritratto di mavimo

Esattamente

ed eventualmente puoi modificarlo, è proprio li il bello ;)

Ciao

Invia nuovo commento





  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h2> <h3> <h4> <table> <thead> <tbody> <tr> <th> <td>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.



Condividi contenuti