Como definir o alias de URL automaticamente para um tipo de conteúdo SEM usar o Pathauto? Qual gancho para implementar?

11

O Pathauto pode fazer o trabalho facilmente para todos os tipos de conteúdo, mas, no meu caso, só tenho um URL de tipo de conteúdo que precisa ser personalizado, e eu preferiria não instalar o Pathauto e o Token.

Alguém pode me aconselhar como fazer?

Gilzero
fonte
2
Salve-se da dor de cabeça e use apenas pathauto. Esse problema já foi resolvido, por que resolvê-lo? Pathauto somente causa um impacto no desempenho quando você está salvando nós (e mesmo assim, apenas um mínimo).
Matthew Scharley
4
Como é possível gerar URLs mais agradáveis ​​que o pathauto e se tudo o que você precisa é gerar URLs para um ou dois tipos, você pode se livrar de dois módulos implementando um único gancho. Além disso, a importação em massa é bastante lenta (e até quebrou em algum momento pessoalmente, simplesmente se recusa a importar qualquer coisa após 400 nós), enquanto meu script cron / bulk leve conseguiu importar 500 nós por segundo, o que é bastante bom quando você tem 100k nós para os quais gerar aliases.
wildpeaks

Respostas:

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

Além disso, você pode adicionar esse código a hook_node_update ()

ya.teck
fonte
1

Veja a pág. 149 do Pro Drupal Development, use hook_insert (). Quando um novo nó é salvo, hook_insert () é chamado. Este é o local para lidar com qualquer processamento customizado do conteúdo do nó antes que ele seja salvo. Veja também a p. 152-156 Pro Drupal Development, que fala sobre todas as diferentes funções hook_node_xxxx ().

Eu acho que usar hook_node_insert (), como sugerido na resposta anterior, resultará em um gancho para TODAS as criações de nós, que não atenderão à sua necessidade de alterar um tipo de conteúdo específico.

DeeZone
fonte
Veja o que foi relatado em hook_insert () , que contém a seguinte frase: "Esse gancho é chamado apenas no módulo que define o tipo de conteúdo do nó (use hook_node_insert()para atuar em todas as inserções de nós)."
Kiamlaluno