2010-06-14 62 views
1

我是一個Drupal新手誰需要一些建議創建一個塊...創建「ON/OFF新聞鏈接」的功能與視圖模塊

我在主頁的新聞列表塊,用視圖模塊創建。它列出了所有添加的新聞標題和鏈接。到目前爲止,一切都很酷。現在我需要在管理端爲主頁新聞塊添加一個ON/OFF選項。設置爲ON時,它將按原樣運行。當它關閉時,只有標題將被列出,不會鏈接到新聞詳情頁面。

那麼,現在我應該在哪裏添加這個ON/OFF選項?我只爲每個新聞添加/編輯/刪除頁面,沒有常見的新聞頁面添加此類選項。我應該創建一個帶有這種開/關選項的管理頁面嗎?此外,我想我需要創建一個數據庫表來保持這種開/關狀態。並控制在網頁塊這個值,如果是1或0,顯示鏈接根據分貝值:/

它看起來太漫長的道路

  1. 創建數據庫表
  2. 創建上頁在
  3. 添加PHP代碼/ OFF選項更新分貝管理員的選擇
  4. 獲得網頁塊分貝值顯示鏈接等

有沒有更短,更好的方法來做我所需要的?

欣賞幫助這麼多!非常感謝!!

+0

開啓/關閉整個網站或每個節點? – 2010-06-14 18:59:27

+0

for block,我使用View Module創建了所有新聞標題。 – 2010-06-14 19:07:20

回答

3

你絕對不需要爲這樣的東西創建任何數據庫表。如果你想要一個基本的管理頁面,你將需要編寫一個簡單的模塊。首先遵循此quick start指南來設置基本模塊。 (注意:您不需要添加在.install文件的數據庫查詢)

一旦啓用你的模塊...

1)在你的mynewmodule.module文件,添加一個菜單項告訴Drupal的在您的管理頁面可以訪問:

 

function mynewmodule_menu() { 
    return array(
    'admin/settings/mynewmodule' => array(
     'title' => 'My New Module', 
     'description' => 'Change settings for news display.', 
     'page callback' => 'drupal_get_form', 
     'page arguments' => array('mynewmodule_admin_form'), 
     'acces callback' => 'user_access', 
     'access arguments' => array('administer site configuration'), 
    ), 
); 
} 

2)另外,在您的mynewmodule.module文件,添加一個函數來創建你只需在菜單項所引用的形式:


function mynewmodule_admin_form() { 
    $form = array(); 
    $form['mynewmodule-on-off-switch'] = array(
    '#type' => 'checkbox', 
    '#title' => t('Enable news links'), 
    '#description' => t('Control whether news items are linked to stories'), 
    '#default_value' => variable_get('mynewmodule-on-off-switch', 1), 
); 
    return system_settings_form($form); 
} 

3)清除緩存以使Drupal識別您的管理頁面(您需要清除任何時候更改mynewmodule_menu())。你可以在這裏清除它:admin/settings/performance

4)訪問admin/settings/mynewmodule來查看你的管理員表單。它的工作方式是保存配置時,Drupal會將一個名爲「mynewmodule-on-off-switch」(與表單中的數組鍵名稱相同)的變量保存到數據庫中的變量表中。你可以通過使用variable_get()來獲得這個值。

+0

wowowo!人!你剛剛救了我的命!它完美的作品!非常感謝您的明確詳細的職位!我很想給你買一杯冰啤酒,你在哪裏?認真:) – 2010-06-15 14:19:13

+0

我也使用http://drupal.org/project/views_customfield模塊來添加我的PHP條件:)現在工作很棒:)只剩下1個問題。我無法在權限頁面看到模塊權限設置:/我需要授予訪問admin用戶的權限:/我如何控制自定義模塊的權限設置? – 2010-06-15 15:05:48

+0

很高興幫助。如果你發現自己在泰國,我會帶你去報價。 要設置自定義權限,您可以使用hook_perm(),將mynewmodule_perm()函數添加到模塊並定義新的權限。然後在mynewmodule_menu()中,您將使用該權限作爲訪問回調。 – wynz 2010-06-15 15:21:29

1

在admin/settings/on-off-switch上創建表單。 表單提交函數,variable_set('on/off switch',$ value)(嘗試使用布爾值作爲值)。 然後在視圖主題上,在打印鏈接之前檢查variable_get('on/off switch',$ default_value)。

+0

感謝您的回覆。我的意思是當我寫我是一個新手:)你說關於創建形式在管理員/設置/關閉開關。用CCK之類的模塊創建它,還是其他的東西?你可以請詳細一點,因爲這裏是一個drupal模型:/欣賞你的時間! – 2010-06-14 20:13:40

1

Drupal的弱點,恕我直言,是配置獲取網站的管理員設置的絕對數量,而且您不希望被添加到該設置中。

我會做的是讓視圖公開兩個不同的塊,一個是全視圖,一個是縮略視圖。然後所有的配置都可以通過塊接口來完成,從長遠來看,這將更加靈活。例如:使用通配符或php代碼來顯示塊的可見性;對具有不同角色的用戶展示不同的觀點;讓遊客控制他們看到的視角;更清楚地將這兩種觀點暴露給主題引擎;並與任何其他與塊一起工作的模塊進行集成。

+0

我對artmania的目標很朦朧,但這可能是最好的選擇。它也會改善緩存。我更希望保留管理員下拉菜單中的另一個菜單項。 – Grayside 2010-06-15 06:26:36