2017-08-16 15 views
0

フルページのカスタムモジュールを作成したい。これにより、私はメインのDrupalサイトにラップされていないモジュールを意味します。ここに私のコードは次のとおりです。Drupal 7フルページカスタムモジュールを作成する

myapp.module:

function myapp_menu() 
{ 
$result = array(); 
$result['myapp/home'] = array(
    'title' => 'My App Title', // Title of our page 
    'description'=> 'My App Web Site', // Description of our page 
    'page callback' => 'myapp_function', 
    'access arguments' => array('access content'), // permission to access this page 
    'type' => MENU_NORMAL_ITEM, // type of menu item 
); 

return $result; 
} 

function myapp_function(){  
    return theme('my_custom_template'); 
}  

function myapp_theme(){ 
    return array(
    'my_custom_template' => array(   
     'template' => 'myapp-page', 
    ), 
); 
} 

myappの-page.tpl.php

Hello World 

問題は、ページが表示されたときに、それはまだ内に保持されることです主なDrupal Sitesメインテーマ。私はこのページを独自のフルページのサイトにしたいと考えています。誰もこれを行うのに役立つことができますか?あなたはこのようにハックすることができ

おかげ

答えて

0

function myapp_function(){  
    print theme('my_custom_template'); 
    exit; 
} 

また、あなたがhttps://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_theme/7.x

パラメータ

配列$既存に記載されている宣言オプションを使用することができます既存の配列をオーバーライド目的で を使用できる実装。これは主に、 が、独自のより高い優先度の 実装を適切に登録できるように、データを抽出するために既存の実装(例えば、 引数)を調べることを望むテーマに役立ちます。

$ type:テーマ、モジュールなどが処理されているかどうか。これは、 テーマが、実際にテーマ が呼び出されているか、親テーマであるかどうかを確認するために主に役立ちます。

'module':モジュールのテーマ実装がチェックされています。 'base_theme_engine': が使用されている実際のテーマの親であるテーマをテーマエンジンでチェックしています。 'theme_engine':テーマ エンジンが使用されている実際のテーマについてチェックされています。 'base_theme': 基本テーマがテーマ実装のためにチェックされています。 'theme':使用中の実際のテーマは です。 $ theme:実際に処理されているテーマ、モジュールなどの の名前。

$ path:テーマまたはモジュールのディレクトリパス。 を参照する必要はありません。

+0

素晴らしいです。しかし、あなたはこれが "ハック"だと言いました。これはぶつかるのですか?または、あまり「ハッキー」な方法がありますか? – jason

+0

私はかなりわかりませんが、別のテーマ(カスタム)とケースをURLで作成することもできます。https://drupal.stackexchange.com/questions/812/how-do-i-change-a-theme-based- on-the-url、またはhook_theme宣言からすべてのオプションを試してみてください。しかし、単純で効率的な方法は、このハックです – Fky

関連する問題