欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Drupal專(zhuān)業(yè)開(kāi)發(fā)指南 第3章 模塊特定設置(1)

模塊特定設置

當你自己創(chuàng )建一個(gè)模塊時(shí),你常常想讓站點(diǎn)管理員能夠通過(guò)選擇不同的模塊設置屬性來(lái)改變模塊的行為。本章將詳細講述如何將一個(gè)模塊呈現在Drupal的管理頁(yè)面,如何為用戶(hù)呈現一個(gè)關(guān)于設置的表單,以及存儲設置屬性。

 

  把你的模塊放到管理頁(yè)面的模塊列表中

Drupal的管理頁(yè)面為站點(diǎn)管理員展示了不同的站點(diǎn)配置選項。你想在這個(gè)配置頁(yè)面找個(gè)未知把你的模塊放下,這樣站點(diǎn)管理員就可以調整你的模塊的設置?,F在讓我們?yōu)榍罢滤鶆?chuàng )建的注釋模塊添加更多的配置選項。

 

   創(chuàng )建一個(gè)鏈接

我們需要在管理頁(yè)面提供一個(gè)鏈接,這樣站點(diǎn)管理員可以進(jìn)入修改我們設置的頁(yè)面。通過(guò)在菜單鉤子(關(guān)于更多的菜單鉤子的信息,參看第4章)上創(chuàng )建一個(gè)入口,我們將鏈接放在了站點(diǎn)配置設置下面。下面的就是在我們的模塊中所實(shí)現的菜單鉤子:

/**

* Implementation of hook_menu().

*/

function annotate_menu($may_cache) {

$items = array();

if ($may_cache) {

$items[] = array(

‘path‘ => ‘a(chǎn)dmin/settings/annotate‘,

‘title‘ => t(‘Annotation settings‘),

‘description‘ => t(‘Change how annotations behave.‘),

‘callback‘ => ‘drupal_get_form‘,

‘callback arguments‘ => array(‘a(chǎn)nnotate_admin_settings‘),

‘a(chǎn)ccess‘ => user_access(‘a(chǎn)dminister site configuration‘)

);

}

return $items;

}

  指向我們模塊的鏈接現在出現在Drupal的管理頁(yè)面的站點(diǎn)配置部分,如圖3-1所示:

   3-1指向注釋設置頁(yè)面的鏈接

                     定義你自己的管理區域

 Drupal有多個(gè)管理設置的分類(lèi),比如內容管理和用戶(hù)管理,都出現在主管理頁(yè)面上。如果你的模塊需要一個(gè)自己的分類(lèi),你可以非常容易得創(chuàng )建一個(gè)這樣的分類(lèi)。在這個(gè)例子中,我們創(chuàng )建一個(gè)名為“Node annotation”的新的分類(lèi)。為了這樣,我們修改我們的菜單鉤子以定義新的分類(lèi):

/**

* Implementation of hook_menu.

*/

function annotate_menu($may_cache) {

$items = array();

if ($may_cache) {

$items[] = array(

‘path‘ => ‘a(chǎn)dmin/annotate‘,

‘title‘ => t(‘Node annotation‘),

‘description‘ => t(‘Adjust node annotation options.‘),

‘position‘ => ‘right‘,

‘weight‘ => -5,

‘callback‘ => ‘system_admin_menu_block_page‘,

‘a(chǎn)ccess‘ => user_access(‘a(chǎn)dminister site configuration‘)

);

$items[] = array(

‘path‘ => ‘a(chǎn)dmin/annotate/settings‘,

‘title‘ => t(‘Annotation settings‘),

‘description‘ => t(‘Change how annotations behave.‘),

‘callback‘ => ‘drupal_get_form‘,

‘callback arguments‘ => array(‘a(chǎn)nnotate_admin_settings‘),

‘a(chǎn)ccess‘ => user_access(‘a(chǎn)dminister site configuration‘)

);

}

return $items;

}

 

 現在我們代碼的結果改變了,我們的模塊設置的鏈接出現在了一個(gè)新的分類(lèi)中了,如圖3-2所示:

3-2 指向注釋設置模塊的鏈接現在作為一個(gè)單獨的分類(lèi)出現

 

  如果你是一步一步跟著(zhù)做的,那么你需要清除菜單緩存來(lái)查看鏈接的呈現。

有兩種方式:截去cache_menu表或者使用Drupal開(kāi)發(fā)專(zhuān)用模塊所提空的清空緩存鏈接。

 

  秘密消息:開(kāi)發(fā)專(zhuān)用模塊(http://drupal.org/project/devel)是為了專(zhuān)門(mén)支持Drupal開(kāi)發(fā)所寫(xiě)的一個(gè)模塊。它能幫你獲取多種開(kāi)發(fā)功能,比如清空緩存,查看變量,追蹤查詢(xún)語(yǔ)句,以及更多。它是專(zhuān)業(yè)開(kāi)發(fā)的必需品。

 

  我們可以在兩步內建立我們的新分類(lèi)。首先,我們添加一個(gè)描述分類(lèi)頭部的菜單項。這個(gè)菜單項有一個(gè)唯一的路徑(admin/annotate)。我們生命:它應該放在右欄中,重量為-5,這是因為這個(gè)位置恰好位于站點(diǎn)配置分類(lèi)的上面,這樣方便我們截圖,如圖3-2所示的。^_^

  2步是告訴Drupal,把指向注釋設置的真實(shí)鏈接放在分類(lèi)” Node annotation”內部。我們通過(guò)修改原來(lái)菜單項的路徑來(lái)這樣做,以前路徑為admin/settings/annotate,現在替換為了admin /annotate/settings。以前,菜單項是站點(diǎn)配置分類(lèi)的路徑admin/settings的孩子,,如表3-1所示。

當我們清空菜單緩存,Drupal重新構造菜單樹(shù),由于admin /annotate/settingsadmin /annotate的孩子,這決定了像圖3-2所展示的這樣。將模塊菜單項嵌套在如表3-1所示的任一路徑下,將使模塊出現在Drupal管理頁(yè)面的該分類(lèi)下面。

  當然,這是個(gè)有點(diǎn)做作的例子,在真實(shí)場(chǎng)景下,你必須有個(gè)很好的理由來(lái)創(chuàng )建一個(gè)新的分類(lèi),以阻止讓管理員(通常是你自己)面對太多分類(lèi)時(shí)所產(chǎn)生的困惑。

 3-1管理頁(yè)面分類(lèi)的路徑

Path                 Category

admin/content          Content management

admin/build             Site building

admin/settings          Site configuration

admin/user              User management

admin/logs              Logs

 

 

為用戶(hù)呈現一個(gè)設置表單

當一個(gè)站點(diǎn)管理員想要修改注釋模塊的的設置時(shí),我們需要展示一個(gè)表單以使管理員可以從中進(jìn)行選擇。在我們的菜單項中,我們把回調函數設置為drupal_get_form(),把回調參數設置為annotate_admin_settings.這意味著(zhù),當你訪(fǎng)問(wèn)http://example.com/?q=admin/

annotate/settings時(shí),命令drupal_get_form(‘a(chǎn)nnotate_admin_settings‘)將被執行,它主要告訴Drupal構造由函數annotate_admin_settings()所定義的表單。

  下面讓我們看一下定義表單的函數,它定義了一個(gè)關(guān)于節點(diǎn)類(lèi)型的復選框(參看圖2-1),并且增加了另外兩個(gè)選項:

/**

* Define the settings form.

*/

function annotate_admin_settings() {

$form[‘a(chǎn)nnotate_nodetypes‘] = array(

‘#type‘ => ‘checkboxes‘,

‘#title‘ => t(‘Users may annotate these node types‘),

‘#options‘ => node_get_types(‘names‘),

‘#default_value‘ => variable_get(‘a(chǎn)nnotate_nodetypes‘, array(‘story‘)),

‘#description‘ => t(‘A text field will be available on these node types

to make user-specific notes.‘),

);

$form[‘a(chǎn)nnotate_deletion‘] = array(

‘#type‘ => ‘radios‘,

‘#title‘ => t(‘Annotations will be deleted‘),

‘#description‘ => t(‘Select a method for deleting annotations.‘),

‘#options‘ => array(

t(‘Never‘),

t(‘Randomly‘),

t(‘After 30 days‘)

),

‘#default_value‘ => variable_get(‘a(chǎn)nnotate_deletion‘, 0) // default to Never

);

Table 3-1. Paths to Administrative Categories

Path Category

admin/content Content management

admin/build Site building

admin/settings Site configuration

admin/user User management

admin/logs Logs

$form[‘a(chǎn)nnotate_limit_per_node‘] = array(

‘#type‘ => ‘textfield‘,

‘#title‘ => t(‘Annotations per node‘),

‘#description‘ => t(‘Enter the maximum number of annotations allowed per

node (0 for no limit).‘),

‘#default_value‘ => variable_get(‘a(chǎn)nnotate_limit_per_node‘, 1),

‘#size‘ => 3

);

return system_settings_form($form);

}

 

我們添加了一個(gè)單選按鈕來(lái)選擇什么時(shí)候應該刪除注釋?zhuān)砑恿艘晃谋据斎肟騺?lái)限制一個(gè)節點(diǎn)所允許的注釋數量(對此模塊增強特性的實(shí)現留給讀者作為練習)。在這里,我們沒(méi)有自己管理處理我們自己的表單的流程,而是使用了函數system_settings_form()來(lái)讓系統模塊為表單添加一些按鈕,并讓它管理表單的驗證和提交。圖3-3顯示的當前表單的選項的樣子。

3-3使用了復選框,單選按鈕,文本輸入框的增強的表單

 

發(fā)表于 @ 2007年09月22日 20:15:00|評論(0)|編輯

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
使用開(kāi)源軟件設計、開(kāi)發(fā)和部署協(xié)作型 Web 站點(diǎn),第 10 部分: 外部網(wǎng) Web 站點(diǎn)的...
Introduction to PHP for theming | drupal.org
說(shuō)說(shuō)遠程命令執行漏洞的那些事兒
Open Atrium 是一套開(kāi)源的團隊協(xié)作和知識管理系統
如何在Drupal中生成PDF? | Drupal China
Drupal 常用模塊匯總
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久