1

ユーザープロファイルに新しいタブを追加するにはどうすればよいですか。たとえば、管理者とユーザー自身(他のユーザーではない)に表示される[新しいユーザー]タブを追加したいと思います。

4

3 に答える 3

1

独自のモジュールを作成する場合、コードは次のようになります。

<?php
// Define callback for tab.
function user_tab_menu(){
    return array(
        'user/%/new_tab' => array(
            'title' => 'New tab',
            'page callback' => 'user_tab_page',
            'page arguments' => array(1),
            'access callback' => 'user_tab_access',
            'access arguments' => array(1),
            'type' => MENU_LOCAL_TASK,
        ),
    );
}

// Show the page
function user_tab_page($uid){
    return 'New tab';
}

// Check if user has permission, or views its own page
function user_tab_access($uid){
    return ($uid == $GLOBALS['user']->uid) || user_access('view user tabs');
}

// Define permission for administrators
function user_tab_perm(){
    return array(
        'view user tabs' => array(
            'title' => t('View user tabs'), 
            'description' => t('View user tabs'),
        ),
    );
}
于 2012-10-08T12:45:23.867 に答える
1

これは、カスタムコーディングを行わなくても、ビューモジュールを介して実現できます。

パスを「user/%」として新しいビューページを設定しますコンテキストフィルターを「user:uid」として設定します

ページのコンテンツを「ユーザー」または「フィールド」またはレンダリングしたいものとして設定します。これにより、標準のDrupalページがビューレンダリングに「ハイジャック」されます。

これで、ビューページを追加し、パスを「user /%/ path_of_your_tab」に設定することで、任意の数のタブを追加できます。各タブのメニューエントリを「メニュータブ」および「ユーザーメニュー」に設定します

次に、各タブのビューでアクセス許可を設定できます。

于 2012-10-08T13:22:29.020 に答える
1

こんにちは友達は私を助けてくれてありがとう....私はコードの下でやった

function downloaded_menu(){ $items['user/%user/downloaded'] = array( 'title' => 'Downloaded', 'page callback' => 'downloaded_content_page', 'access arguments' => array('access content'), 'type' => MENU_LOCAL_TASK, 'weight' => 10, ); return $items; }

于 2012-10-09T04:43:00.683 に答える