Cómo Crear Un Pseudocampo en Drupal

Usando solo dos funciones

Sergio Guardiola Herrador
2 min readMay 2, 2024
Photo by Rubaitul Azad on Unsplash

Los pseudocampos son similares a los campos normales, excepto que se usan para representar algo simple, tal vez solo algo de texto o HTML. A diferencia de los campos normales, no tienen configuración de campo ni configuración de formulario.

Para crear un pseudocampo, solo necesitamos usar dos funciones: hook_entity_extra_field_info y hook_ENTITY_TYPE_view.

En este ejemplo, estoy creando un campo llamado my_own_pseudo_field (reemplázalo con tu ID de campo) para todos los tipos de nodos que simplemente mostrará un texto simple: “This is my custom content”.

Debes añadir este código en el archivo *.module de tu módulo y borrar la caché de Drupal. Luego, ve a los tipos de contenido donde agregaste el campo y en la página de administración de visualización, mueve el campo donde deseas que aparezca:

use Drupal\node\Entity\NodeType;

/**
* Implements hook_entity_extra_field_info().
*/
function my_module_entity_extra_field_info() {
$extra = [];

foreach (NodeType::loadMultiple() as $bundle) {
$extra['node'][$bundle->Id()]['display']['my_own_pseudo_field'] = [
'label' => t('My own field'),
'description' => t('This is my own pseudo-field'),
'weight' => 100,
'visible' => TRUE,
];
}

return $extra;
}
use \Drupal\Core\Entity\EntityInterface;
use \Drupal\Core\Entity\Display\EntityViewDisplayInterface;

/**
* Implements hook_ENTITY_TYPE_view().
*/
function my_module_node_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
if ($display->getComponent('my_own_pseudo_field')) {
$build['my_own_pseudo_field'] = [
'#type' => 'markup',
'#markup' => 'This is my custom content',
];
}
}

👉 Encuentra más sobre mí aquí: https://sergioguardiola.net 🔥

--

--

Sergio Guardiola Herrador

I write articles in English and Spanish, mostly about programming, technology, travel, money, investing. You can find me here: https://sergioguardiola.net