ノードページの編集タブをコンテキストメニューにしたい

カテゴリ コンテンツの管理 コアバージョン 7.38 関連モジュール Block Views node

Drupal標準では、ノード編集権を持つユーザーがノードページを表示した際、メインコンテンツとタイトルの間あたりにノード編集用のタブが表示されます。
これはこれで便利ですが、どうも見た目が未承認ユーザーで表示する場合といくらか異なり、気分が悪いです。
これをViewsやBlockのようにコンテキストメニュー(ネジアイコン)に置き換えるには?

コメント

ユーザー actbrain の写真

hook_preprocess_page() と hook_preprocess_node() を使うことで可能になります。

/**
* Implement hook_preproces_page().
*/
function モジュール名_preprocess_page(&$variables) {
if (ノード編集タブをネジアイコンにしたい) {
if (user_access('access contextual links')) {
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
$variables['tabs'] = array('#secondary' => array()); // 標準の編集タブを削除
}
}
}
}

/**
* Imprement hook_preprocess_node().
*/
function モジュール名_preprocess_node(&$variables) {
if (ノード編集タブをネジアイコンにしたい) {
if (user_access('access contextual links')) {
$menu_local_tasks = menu_local_tasks();
if (isset($menu_local_tasks['tabs']['output'])) {
$variables['content']['#prefix'] = '<div class="contextual-links-region">'.
'<div class="contextual-links-wrapper">'.
'<ul class="contextual-links">'.
render($menu_local_tasks['tabs']['output']).
'</ul>'.
'</div>';
$variables['content']['#suffix'] = '</div>';
}
}
}
}

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ昇順で並び替える Core Ver. 関連モジュール タイトル
ユーザの管理 7.27 PHP 新規ユーザーの追加ができない
ユーザの管理 7.59 user pass drupal 7 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
ユーザの管理 8.9.x user pass drupal 8 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
ユーザ 7.38 user form 新規ユーザー登録時、パスワード再設定時のパスワード入力抜けを防ぎたい
ユーザ 7.23 PHP user_load_multiple()の復帰値
ユーザ 7.44 Password Policy 無効なユーザーを整理したい
ユーザ 7.22 Realname ユーザーIDではなくニックネーム等を表示したい
ユーザ 7.23 User 長い投稿者名の表示が切れる
ユーザ 7.44 Quickbar 会員の種別(役割)別にメニューを設けたい
ユーザ 7.34 ip_ranges ログインアタック対策は?
メール 7.50 Smtp smtpでGmailアカウントを使いたい
ブロック 7.23 伸縮するfieldsetブロックを追加したい
ブロック 7.15 Views ひとつのViewsをページやブックページ中で再利用する方法は?
フォーム 7.16 Webform, Mail System, Mime Mail, Jp Mail Helper 送信メールのサブジェクトが長いと文字化けする
フォーム 7.38 Webform Webformモジュールをアップデートしたら「このフィールドを入力してください」
フォーム 7.15 Webform WebformのEntity Translation
フォーム 7.43 Webform フォーム関数が実行されるタイミングについて
フォーム 8.9.x api GET/POSTされた情報を得る方法
フォーム 7.15 DefaultTextForNode 新しいページの作成方法を一から教えてください
フォーム 8.6.x JavaScript 特定のformにJavaScriptを紐付ける方法

ページ