web-dev-qa-db-ja.com

Drupal 7の[新しいパスワードのリクエスト]リンクを非表示/削除する方法は?

私のウェブサイトからイントラネットページにアクセスするために「ログインブロック」を使用しています。 www.example.com/common-intraページの「ログインブロック」を使用して、イントラネットセクションにログインしました。

serprotect モジュールを使用して、ユーザーがユニバーサルアカウントでイントラネットセクション(www.example.com/common-intra)にログインしたときに、プロファイル/ユーザー名/パスワード情報をユーザーから非表示にしています。

しかし、イントラネットのログインページで[新しいパスワードのリクエスト]リンクを非表示/削除したいと思いました。

私はこのモジュールを見つけましたが、まだ使用していません:enter image description here https://www.drupal.org/project/noreqnewpass

そのイントラネットログインページから「Request New password」リンクを単に非表示にする他の簡単な方法はありますか?

Www.example.com/userなどの一般的なログインページには、このタブが必要ですが、www.example.com/common-intraページからは非表示にしたいだけです。

また、CSSでそれを非表示にしようとしました。

これは私のページのソースコードです:

<div class="panel-separator"></div><div class="panel-pane pane-block pane-user-login common-intra pane-user common_login_button"   class="panel-pane pane-block pane-user-login common-intra pane-user common_login_button">


    <div class="pane-content">
        <form action="/common-login?destination=node/16" method="post" id="user-login-form" accept-charset="UTF-8"><div><div class="form-item form-type-textfield form-item-name">

      <label for="edit-name">Username <span class="form-required" title="This field is required.">*</span></label>

     <input type="text" id="edit-name" name="name" value="" size="15" maxlength="60" class="form-text required" />
    </div>


<div class="form-item form-type-password form-item-pass">
  <label for="edit-pass">Password <span class="form-required" title="This field is required.">*</span></label>

 <input type="password" id="edit-pass" name="pass" size="15" maxlength="128" class="form-text required" />
</div>


    <div class="item-list">
<ul>
<li class="first last"><a href="/user/password" title="Request new password via e-mail.">Request new password</a></li>
</ul></div>

<input type="hidden" name="form_build_id" value="form-_xyzabc" />
<div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Log in" class="form-submit" /></div></div></form>  </div>

  </div>

クラス名を付けました'common-intra'ユーザーログインブロックをノードテンプレートに追加します。

.common-intra ul li{
    display: none;
}

私も試しました:

.panel-pane pane-block pane-user-login common-intra pane-user common_login_button ul li
    {
          display: none;
    }
3
Vidushi

これにより、印刷前にレンダー配列から削除されます。テーマのtemplate.phpに、次を追加します。

function MYTHEME_form_alter(&$form, &$form_state, $form_id)
{
    if($form_id == 'user_login_block')
    {
        $form['links']['#markup'] = '<div class="item-list"><ul><li class="first"><a href="/dev/user/register" title="Create a new user account.">Create new account</a></li></ul></div>';
    }
}

基本的には、ユーザーログインブロックのリンクのマークアップを書き換えるだけです。これをテーマに合わせて調整することもできます。これはユーザーブロックにのみ適用されます

4
Geoff

No request new password モジュールを使用できます:

ブロックとユーザーページから[新しいパスワードのリクエスト]リンクを削除します。

モジュールをテストしましたが、正常に動作します。

別の解決策は、このコードをrender($ tabs)行の直前にpage.tpl.phpに配置することです。 Drupal 7で正常に動作します。

<?php
if(isset($tabs['#primary'][2]['#link']['path']) && $tabs['#primary'][2]['#link']['path'] == 'user/password'){
   hide($tabs['#primary'][2]);
}
?>

他の解決策は次の場所にあります。

ログインブロックで「新しいパスワードのリクエスト」を無効にする

メニュータブのフロントログインページを削除するには?

2

APIリファレンス のとおり、カスタムモジュールでは次のことができます。

function MYMODULE_menu_alter(&$items) { // Example - disable the page at node/add $items['user/password']['access callback'] = FALSE; }

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu_alter/7.x

1
augusto