it-swarm-eu.dev

Jak přejmenovat odkaz „Požádat o nové heslo“?

Chceme přejmenovat text „Vyžádat nové heslo“ na přihlašovací stránce Drupalu na nějaký vlastní text.

V souboru user.module vidím, že tento text je pevně zakódován

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));

Existuje jiný způsob, jak přejmenovat tento text, spíše než upravit jádro Drupal)?

8
Ajinkya Kulkarni

Vyzkoušeli jste modul String Overrides ?

Poskytuje rychlý a snadný způsob nahrazení jakéhokoli textu na webu.

Funkce

  • Snadno vyměňte vše, co prochází t ()
  • Podpora národního prostředí, která vám umožní přepsat řetězce v jakémkoli jazyce
  • Možnost importu/exportu souborů * .po pro snadnou migraci z modulu Locale
  • Všimněte si, že to není náhrada za Locale, protože mít tisíce přepsání může způsobit více bolesti než užitku. Tuto možnost použijte pouze v případě, že potřebujete několik jednoduchých změn textu.
5
Kevin

Modul Řetězce přepsání je dobrým návrhem, pokud máte mnoho řetězců nebo je potřebujete neustále měnit, ale můžete toho dosáhnout také úpravou sekce přepsání řetězců v souboru soubor settings.php .

Jednoduše odkomentujte sekci tak, aby to vypadalo takto:

$conf['locale_custom_strings_en'] = array(
  'Request new password' => 'MY CUSTOM TEXT FOR A NEW PASSWORD',
);
12
jhedstrom

Jen jsem to zkusil v Drupal 7, ale nebylo to úplně v pořádku. Je třeba přidat další bit ['']. Funguje to:

$conf['locale_custom_strings_en'][''] = array(
  'Request new password' => 'MY CUSTOM TEXT FOR A NEW PASSWORD',
);
4
Simon Davies

Našel jsem další dva způsoby:

  • Nainstalujte modul iTweak Login

  • Ve vlastním modulu implementujte hook_menu_alter () takto:

Namísto 'mymodulename' použijte název vašeho modulu:

/*
 * Implements hook_menu_alter(). Change link text of 'Request new password' link.
 */
function mymodulename_menu_alter(&$items) {
      $items['user/password']['title'] = t('Reset password');
}
1
pferlito

Můžete to také udělat v template.php vašeho tématu, flexibilnější řešení pro můj účel ( Chtěl jsem text ve francouzštině a angličtině vedle sebe ):

/**
 * 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;
  }
} 

Původně inspirováno Geoff Hankerson . Díky němu.

0
anou