Pregunta:
He creado un gancho de guardado previo en el módulo que está poblando mi nodo al obtener información de varias API. Sin embargo, no puedo pensar en cómo agregar un alias de nodo al nodo recién creado. ¿Hay alguna función o módulo o algo (Drupal 7 tenía path_auto)? ¿O debería ir con una inserción sin procesar en url_alias
? ¿Podría dispararme en el pie con un movimiento tan drástico?
Respuesta:
Para crear el alias, primero verifico si el alias se configuró en la interfaz de usuario, y si está vacío, lo configuro manualmente usando la etiqueta ().
use Drupal\Core\Entity\EntityInterface;
/**
* hook_entity_insert
*/
function mymodule_entity_insert(EntityInterface $entity) {
// Convert to lowercase, trim spaces, replace spaces with underscore and then truncate to 60 chars.
$pathTitle = substr(str_replace(" ","_",trim(strtolower($entity->label()))),0,60);
if ($entity->toArray()['path'][0]['alias'] == "") {
$path = \Drupal::service('path.alias_storage')->save("/node/" . $entity->id(), "/mynewpath/" . $pathTitle, "en");
}
}
https://www.drupal.org/node/1853148 para más información