Queremos cambiar el nombre del texto "Solicitar nueva contraseña" en la página de inicio de sesión de Drupal a un texto personalizado.
En el archivo user.module, veo que este texto está codificado
if (variable_get('user_register', 1)) {
$items[] = l(t('Create new account'), 'user/register', array('attributes' => array('title' => t('Create a new user account.'))));
}
$items[] = l(t('Request new password'), 'user/password', array('attributes' => array('title' => t('Request new password via e-mail.'))));
$form['links'] = array('#value' => theme('item_list', $items));
¿Hay alguna otra forma de renombrar este texto en lugar de modificar el núcleo Drupal?
¿Has probado el módulo Anulaciones de cadena ?
Proporciona una manera rápida y fácil de reemplazar cualquier texto en el sitio.
Características
- Reemplace fácilmente cualquier cosa que pase por t ()
- Soporte regional, que le permite anular cadenas en cualquier idioma
- Posibilidad de importar/exportar archivos * .po, para facilitar la migración desde el módulo Locale
- Tenga en cuenta que esto no es un reemplazo de Locale, ya que tener miles de anulaciones puede causar más dolor que beneficio. Use esto solo si necesita algunos cambios de texto fáciles.
El módulo de anulaciones de cadenas es una buena sugerencia si tiene muchas cadenas o necesita modificarlas constantemente, pero también puede lograrlo editando la sección de anulaciones de cadenas de su archivo settings.php .
Simplemente descomente la sección para que se vea así:
$conf['locale_custom_strings_en'] = array(
'Request new password' => 'MY CUSTOM TEXT FOR A NEW PASSWORD',
);
Acabo de probar esto en Drupal 7 pero no fue del todo correcto. Necesita un bit adicional [''] agregado. Esto funciona:
$conf['locale_custom_strings_en'][''] = array(
'Request new password' => 'MY CUSTOM TEXT FOR A NEW PASSWORD',
);
Encontré dos formas más de hacerlo:
Instale el módulo de inicio de sesión iTweak
En un módulo personalizado, implemente hook_menu_alter () de esta manera:
Use el nombre de su módulo en lugar de 'mymodulename':
/*
* Implements hook_menu_alter(). Change link text of 'Request new password' link.
*/
function mymodulename_menu_alter(&$items) {
$items['user/password']['title'] = t('Reset password');
}
También puedes hacerlo en template.php
de su tema, solución más flexible para mi propósito ( Quería el texto en francés e inglés al lado ):
/**
* Implements hook_form_alter(&$form, &$form_state, $form_id)
*/
function YOURTHEME_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
//Modify the User Login Block Form
case 'user_login_block':
$item = array();
$items[] = l( t('Request new password') . ' | <span class="en">' . t('Request new password', array(), array('langcode' => 'en')) . '</span>', 'user/password', array('html' => TRUE) );
$form['links']['#markup'] = theme('item_list', array('items' => $items));
break;
}
}
Originalmente inspirado por Geoff Hankerson . Gracias a él.