2014-11-05 104 views
2

我需要創建一個自定義模塊,以在特定菜單項上生成靜態HTML頁面。我知道如何使用菜單鉤子來創建菜單項,但是如何讓模塊在該菜單頁上生成靜態html?自定義Drupal模塊中的靜態HTML頁面

基本上我有一個靜態的HTML網站創建,我需要被納入模塊。然後,我將模塊發送給其他人在他們的網站上安裝。

我必須包含所有的圖像,CSS和JavaScript。它還需要生活在當前主題之外,因爲它具有不同的外觀和感覺。

回答

2

創建的.html,的.css和.js文件就像你通常會(但不包括在.html文件<html><head>,或者<body>的標籤,當加載你的模塊,這些都已經包括在內) 。你定義的任何CSS都會覆蓋Drupal的默認CSS。

然後,您可以使用Form API的item元素導入您的靜態HTML頁面。

static_page.module

/** 
* Implements hook_menu(). 
*/ 
function static_page_menu() { 
    $items = array(); 
    $items['staticpage'] = array(
    'title' => t('My Static Page'), 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('static_page_form'), 
    'access arguments' => array('access content'), 
    'type' => MENU_NORMAL_ITEM, 
); 
    return $items; 
} 

/** 
* Implements hook_form(). 
*/ 
function static_page_form($form, &$form_state) { 
    // Add CSS and JS 
    drupal_add_css(drupal_get_path('module', 'static_page') . '/static_page.css'); 
    drupal_add_js(drupal_get_path('module', 'static_page') .'/static_page.js'); 
    // Import your static HTML page 
    $form['html'] = array(
    '#type' => 'item', 
    '#markup' => file_get_contents(drupal_get_path('module', 'static_page') .'/static_page.html'), 
); 
    return $form; 
} 

如果你不希望你的靜態頁面就包含了標準的頭,麪包屑,即顯示該網站的其餘側邊欄和頁腳,您可以使用CSS隱藏它們。

static_page.css

#header, 
#breadcrumb, 
.sidebar, 
#footer-wrapper { 
    display: none !important; 
} 
+0

謝謝這已經得到了我接近我所需要的。 – 2014-11-06 16:04:12