私のウェブサイトからイントラネットページにアクセスするために「ログインブロック」を使用しています。 www.example.com/common-intraページの「ログインブロック」を使用して、イントラネットセクションにログインしました。
serprotect モジュールを使用して、ユーザーがユニバーサルアカウントでイントラネットセクション(www.example.com/common-intra)にログインしたときに、プロファイル/ユーザー名/パスワード情報をユーザーから非表示にしています。
しかし、イントラネットのログインページで[新しいパスワードのリクエスト]リンクを非表示/削除したいと思いました。
私はこのモジュールを見つけましたが、まだ使用していません: 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;
}
これにより、印刷前にレンダー配列から削除されます。テーマの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>';
}
}
基本的には、ユーザーログインブロックのリンクのマークアップを書き換えるだけです。これをテーマに合わせて調整することもできます。これはユーザーブロックにのみ適用されます
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]);
}
?>
他の解決策は次の場所にあります。
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