¿Cómo configurar el alias de URL automáticamente para un tipo de contenido SIN usar Pathauto? ¿Qué gancho implementar?

11

Pathauto puede hacer el trabajo fácilmente para todos los tipos de contenido, pero en mi caso solo tengo una URL de tipo de contenido que necesita ser personalizada, y preferiría no instalar Pathauto y Token.

¿Alguien puede aconsejarme cómo hacerlo?

gilzero
fuente
2
Ahórrate el dolor de cabeza y solo usa pathauto. Este problema ya se ha resuelto, ¿por qué resolverlo? Pathauto solo causa un impacto en el rendimiento cuando está guardando nodos (e incluso entonces, solo un mínimo).
Matthew Scharley
44
Debido a que uno puede generar URL más agradables que Pathauto y si todo lo que necesita es generar URL para uno o dos tipos, puede deshacerse de dos módulos mediante la implementación de un solo enlace. Además, la importación masiva es bastante lenta (e incluso se rompió en algún momento personalmente, simplemente se niega a importar cualquier cosa después de 400 nodos), mientras que mi script cron / masivo ligero logró importar 500 nodos por segundo, lo cual es bastante bueno cuando tienes 100k nodos para generar alias.
wildpeaks

Respuestas:

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

Además, puede agregar este código a hook_node_update ()

ya.teck
fuente
1

Ver p. 149 de Pro Drupal Development, use hook_insert (). Cuando se guarda un nuevo nodo, se llama a hook_insert (). Este es el lugar para manejar cualquier procesamiento personalizado del contenido del nodo antes de que se guarde el nodo. También mira la p. 152-156 Pro Drupal Development que habla sobre todas las diferentes funciones hook_node_xxxx ().

Creo que usar hook_node_insert () como se sugirió en la respuesta anterior dará como resultado un gancho en TODAS las creaciones de nodos que no abordará su necesidad de alterar un tipo de contenido específico.

DeeZone
fuente
Vea lo que se informa en hook_insert () , que contiene la siguiente oración: "Este enlace se invoca solo en el módulo que define el tipo de contenido del nodo (use hook_node_insert()para actuar en todas las inserciones de nodo)".
kiamlaluno