Buenas, esto es algo que he tenido que sacar esta semana, algo que no esta resuelto en ningún módulo ni contribuido ni del core, no he hecho un módulo, únicamente un simple form_alter para resolverlo.
Contexto: se ha creado un tipo de contenido (nodo) llamado incidencia para que los usuarios anónimos puedan dar de alta incidencias, se ha creado un nodo y no un webform porque esas incidencias tendrán estados, comentarios de las personas que tienen que resolverlas y supervisarlas, etc.
Uno de los campos de este contenido es un cambo booleano tipo "Acepto condiciones y política de privacidad" y se quería añadir un enlace en la palabra "política de privacidad" para que llevase al nodo de política de privacidad.
aquí el código:
/**
* Privacy policy link.
*/
#[Hook('form_alter')]
public function privacy_policy_link(array &$form, FormStateInterface $form_state, $form_id): void {
if ($form_id !== 'node_issue_form') {
return;
}
// NOTE: Para una segunda iteración hacer un formulario para elegir cual es el nodo de politica de privacidad y desde el hook_form_alter llamarlo para no tener a fuego la ruta.
$url = Url::fromUserInput('/politica-privacidad');
$form['field_issue_privacy_policy']['widget']['value']['#title_display'] = 'after';
$form['field_issue_privacy_policy']['widget']['value']['#title'] = t(
'Acepto la <a href=":url" target="_blank">política de privacidad</a>',
[':url' => $url->toString()]
);
}
Top comments (0)