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

カテゴリ コンテンツの管理 コアバージョン 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.34 ip_ranges ログインアタック対策は?
JavaScript 7.34 PHP PHPからJavaScriptに変数値を渡したい
コンテンツの作成 7.31 CKEditor CKEditorの新規生成ダイアログ内の初期値の変更
サイトの構築 7.31 Views ブロックViewsの絞り込みが表示されない
言語 7.28 vim vimで全角が化けてしまう
GoogleMaps 7.28 Javascript IE9でGoogle Map APIを利用した住所情報所得がうまくゆかない
アップデート 7.28 Views Pagerが表示されなくなった
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
ユーザの管理 7.27 PHP 新規ユーザーの追加ができない
サイトの構築 7.27 Context block ページ別、カテゴリ別等でブロックの表示有無を簡単にするには
チューニング 7.26 PHP DrupalはNginxで動く?
排他 7.26 lock Viewsモジュールの設定ページのような排他機能
コンテンツの作成 7.26 PHP ノード内の一部(フィールド)を変更する
テーマ 7.23 hook ページや状況によってテーマを切り替える
ユーザ 7.23 User 長い投稿者名の表示が切れる
サイトの環境設定 7.23 Image Style 画像スタイルの使い方(Crop)
サイトの構築 7.23 Conditional fields ノード編集フォームを動的にしたい
コンテンツの作成 7.23 maxlength テキストフィールドの最大長のチェック&カウントダウン
ユーザ 7.23 PHP user_load_multiple()の復帰値
ブロック 7.23 伸縮するfieldsetブロックを追加したい

ページ