簡體   English   中英

在Drupal中向用戶添加新選項卡

[英]Adding a new tab to user in Drupal

如何向用戶配置文件添加新選項卡。 我想添加例如新用戶選項卡,管理員和用戶本身(而不是其他人)可以看到它。

如果要創建自己的模塊,代碼將如下所示:

<?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'),
        ),
    );
}

您可以通過視圖模塊實現此目的,而無需進行自定義編碼。

設置一個新視圖頁面,其路徑為'user /%'將上下文過濾器設置為'user:uid'

將您的頁面內容設置為“用戶”或“字段”或您想要呈現的任何內容。 這將把標准drupal頁面'劫持'到視圖渲染中。

現在,您可以通過添加視圖頁面並將路徑設置為“user /%/ path_of_your_tab”來添加任意數量的其他選項卡。 將每個標簽的菜單條目設置為“菜單標簽”和“用戶菜單”

然后,您可以在每個選項卡的視圖中設置訪問權限。

嗨朋友們,感謝您幫助我....我完成了代碼

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; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM