Come impostare automaticamente l'alias URL per un tipo di contenuto SENZA usare Pathauto? Quale gancio implementare?


11

Pathauto può fare facilmente il lavoro per tutti i tipi di contenuto, ma nel mio caso ho solo un URL del tipo di contenuto che deve essere personalizzato e preferirei non installare Pathauto e Token.

Qualcuno può consigliarmi come fare?


2
Salva te stesso il mal di testa e usa solo pathauto. Questo problema è già stato risolto, perché risolverlo? Pathauto provoca un impatto sulle prestazioni solo quando si salvano i nodi (e anche in questo caso, solo minimo).
Matthew Scharley,

4
Poiché uno può generare URL più belli di Pathauto e se tutto ciò di cui hai bisogno è generare URL per uno o due tipi, puoi sbarazzarti di due moduli implementando un singolo hook. Inoltre, l'importazione in blocco è piuttosto lenta (e persino a un certo punto si è rotta personalmente, semplicemente rifiuta di importare qualcosa dopo 400 nodi), mentre il mio script cron / bulk riuscito è riuscito a importare 500 nodi al secondo, il che è abbastanza bello quando hai 100k nodi per cui generare alias.
Wildpeaks

Risposte:


12
/**
 * Implements hook_node_insert()
 */
 function mymodule_node_insert($node) {
   if ($node->type == 'mytype') {
     $node->path['alias'] = 'mytype/' . $node->nid;
   }
 }

Inoltre, puoi aggiungere questo codice a hook_node_update ()


1

Vedi pag. 149 di Pro Drupal Development, usa hook_insert (). Quando viene salvato un nuovo nodo, viene chiamato hook_insert (). Questo è il posto in cui gestire qualsiasi elaborazione personalizzata del contenuto del nodo prima che il nodo venga salvato. Vedi anche p. 152-156 Pro Drupal Development che parla di tutte le diverse funzioni hook_node_xxxx ().

Penso che l'utilizzo di hook_node_insert () come suggerito nella risposta precedente comporterà un aggancio a TUTTE le creazioni di nodi che non risolveranno la necessità di modificare un tipo di contenuto specifico.


Guarda cosa riportato in hook_insert () , che contiene la seguente frase: "Questo hook è invocato solo sul modulo che definisce il tipo di contenuto del nodo (usa hook_node_insert()per agire su tutti gli inserimenti)."
kiamlaluno
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.