J'ai un champ de date personnalisé dans un type de nœud "jour". Lorsque le nœud est enregistré (ou édité puis enregistré), je voudrais obtenir la valeur field_date (pas la date de publication) et l'enregistrer dans le champ de titre.
Je voudrais savoir comment, peut-être en utilisant un module pour:
hook_presave
OBTENEZ UNE VALEUR SUR LE TERRAIN
RÉGLER LE TITRE COMME VALEUR DE TERRAIN
ENREGISTRER LE NOEUD
Vous devez implémenter hook_entity_presave ()
/**
* Implements hook_entity_presave().
*/
function YOUR_MODULE_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
switch ($entity->bundle()) {
// Here you modify only your day content type
case 'day':
// Setting the title with the value of field_date.
$entity->setTitle($entity->get('field_date')->value);
break;
}
}
Pour l'entité de type utilisateur
/**
* Implements hook_entity_presave().
*/
function YOUR_MODULE_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
$entity->field_uhid->value = 'testing'; //set value for field
}
Pour l'entité de type profil, j'ai utilisé le code ci-dessous
/**
* Implements hook_entity_presave().
*/
function YOUR_MODULE_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
if ($entity->getEntityType()->id() == 'profile') {
$zipcode = $entity->field_Zip_code->value;
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=".$zipcode."&sensor=false";
$details=file_get_contents($url);
$result = json_decode($details,true);
$lat=$result['results'][0]['geometry']['location']['lat'];
$lng=$result['results'][0]['geometry']['location']['lng'];
$entity->field_geolocation->lat = $lat;
$entity->field_geolocation->lng = $lng;
}
}
Cela a fonctionné pour moi pour obtenir et définir la valeur du champ de date à l'aide du crochet de préenregistrement basé sur le type de contenu/** * Implémente hook_entity_presave (). * /
function YOUR_MODULE_global_entity_presave (Drupal\Core\Entity\EntityInterface $ entity) {if ($ entity-> bundle () == 'blog') {$ published = $ entity-> get ('created') -> value; $ entity-> set ('field_published_date', date ('Y-m-d\TH: i: s', $ published)); }}