come separare la gerarchia della tassonomia in pathauto con le barre


14

Pathauto sembra avere un modo diverso di aliasare la gerarchia della tassonomia.

Dal menu Tassonomia :

  1. Piccoli Annunci> Automobili> Aston Martin> DB9 Coupé
  2. Annunci> Lavori> Contabilità

Quello che voglio è qualcosa di simile per l'URL:

  • annunci / lavori / contabilità (non annunci-lavori-classificati)

(Nota che Pathautho genera questo anche con trattini nell'ordine inverso.)

In Pathauto, sto usando questo modello: Default path pattern(si applica a tutti i vocabolari con motivi vuoti di seguito)

[term:parents-all]

Confuso.

Risposte:


10

Con il modulo token abilitato, è possibile impostare un modello come questo:

[term:vocabulary]/[term:parent:parent:name]/[term:parent:name]/[term:name]

Crea questo modello per tutto il tempo che desideri. I tuoi percorsi diventeranno quindi:

vocabulary
vocabulary/category1
vocabulary/category1/subcategory1
vocabulary/category1/subcategory2
vocabulary/category1/subcategory2/subsubcategory1

e così via...


Molte grazie a te! Quindi, se ho una gerarchia di tassonomia profonda 5 livelli (incluso il vocabolario) che sarebbe [termine: vocabolario] / [termine: genitore: genitore: genitore: nome] / [termine: genitore: genitore: genitore] / ... ecc. ., giusto? Vorrei che il modulo token potesse essere configurato in modo tale da non dover definire ripetutamente genitore-figlio in questo modo. Che cosa succede se inaspettatamente il tuo albero diventa 6 livelli, allora dovresti eliminare e aggiornare i tuoi percorsi per includerne un altro e poi diventa 7 livelli di profondità e così via .. Voglio dire, se un utente ha aggiunto i termini di un livello in basso, non può vedere i suoi contenuti a meno che un amministratore aggiorna pathauto!
gennaio

1
Anche se questa è la risposta accettata, rivedi la risposta di @ NenadP per una soluzione scalabile.
Paul,

16

C'è un modo intelligente per farlo usando join: /

Nel mio caso, ho usato:

[node:field-taxonomy-skolski:parents:join:/]

dove si field-taxonomy-skolskitrova il campo per scegliere il termine dall'albero della tassonomia. Le barre in avanti verranno rimosse, anche se è presente un'impostazione

Amministrazione »Configurazione» Ricerca e metadati »Alias ​​URL» Alias ​​URL - impostazioni

nella parte inferiore della pagina per il menu a discesa PUNCTUATION . Impostare su barra (/) "nessuna azione" anziché "rimuovi".


Bingo! Io stesso ho offerto la soluzione non scalabile sopra ( drupal.stackexchange.com/questions/27141/… ) e ovviamente questa mi piace molto di più. Giuro che l'opzione token non è stata lì quando stavo faticando a far funzionare quel modello. Grazie!
Artur,

2
[...: join: /] non ha funzionato per me, ma [...: join-path] ha funzionato. Nota: con join-path non è possibile scegliere il separatore. Usa / come separatore.

Se questo non funziona per te, probabilmente dovrai installare e abilitare il modulo "entità".
coderama,

Lo schema per Drupal 8 è leggermente diverso, ad esempio: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma,

6

Questo funziona per me su Drupal 7.15 con Token 7.x-1.3 e Pathauto 7.x-1.2:

[Termine: i genitori: si uniscono: /] / [termine: nome]

Come affermato da Brunops nella seconda risposta, unisciti a:% separator% fa la magia. Sostituisce il trattino predefinito con% separator%.

Un grande grazie ai bruni!


Questa deve essere la risposta giusta! Non importa affatto quanti livelli hai, questo funzionerà.
Rantiev,

3

Le chiavi per farlo funzionare è:

  • installare e abilitare i moduli Entity API, Entity Token, Path Auto e Taxonomy.
  • creare un campo sul tipo di contenuto e impostare Tipo campo su Riferimento termine e denominarlo in modo simile a "campo-contenuto-categoria" (nome macchina)
  • Impostare il Numero di valori, noto anche come "Numero massimo di valori che gli utenti possono immettere per questo campo" su 1 (molto importante se si desidera utilizzare i token del percorso unito che aggiunge automaticamente un / tra gli elementi del percorso).
  • imposta i pattern URL (admin / config / search / path / patterns) su qualcosa del tipo "[nodo: campo-contenuto-categoria: genitori: join-percorso] / [nodo: campo_content_categoria] / [nodo: titolo] '

0

Beh, consiglierei di usare qualcosa di intelligente come:

[Termine: genitore: termini: invertito: unire :?]

Ma non posso per la vita di me farlo funzionare neanche. Quindi, invece, ti consiglio quanto segue, ma puoi approfondire quanto la gerarchia lo consente (può essere visto nei modelli di sostituzione). Se aggiungi termini più profondi nella gerarchia, dovrai aggiornare anche il modello.

[Termine: i genitori-tutti: 3] / [termine: genitori-tutti: 2] / [termine: genitori-tutti: 1]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.