2011-10-31 4 views
-1

カスタムモジュールからそのテンプレートに変数を渡す最も簡単な方法を知る必要があります
私はcustom.moduleを作成し、custom.tpl.phpをモジュールフォルダカスタムモジュールからtplに変数を渡す方法

に配置しました
function custom_menu(){ 
    $items = array(); 

    $items['custom'] = array(
    'title' => t('custom!'), 
    'page callback' => 'custom_page', 
    'access arguments' => array('access content'), 
    'type' => MENU_CALLBACK, 
); 

    return $items; 
} 

function custom_page() { 

    $setVar = 'this is custom module'; 
    return theme('custom', $setVar);  
} 

私はテーマ機能を追加したが、それは動作していない、いずれかが、このコード

function theme_custom($arg) { 
    return $arg['output']; 
} 

function custom_theme() { 
    return array(
    'Bluemarine' => array(
     'variables' => 'output', 
     'template' => 'Bluemarine', 
    ), 
); 
} 

答えて

2

を必要とする:返信用

function custom_menu(){ 
    $items = array(); 

    $items['custom'] = array(
    'title' => t('custom!'), 
    'page callback' => 'custom_page', 
    'access arguments' => array('access content'), 
    'type' => MENU_NORMAL_ITEM, 
); 

    return $items; 
} 

function custom_page() { 
    $result = db_query('SELECT * from node'); 
    return theme('custom', array('output' => $result)); 
} 

function custom_theme() { 
    return array(
    'custom' => array(
     'arguments' => array('output' => NULL), 
     'template' => 'custom', 
    ), 
); 
} 

function template_preprocess_custom(&$variables) { 

} 
0

まずと間違っているものを私に提案することができ、あなたがテーマとどのようにしてその振る舞いを宣言しましたhook_themeの助けを借りてください。後は、簡単に機能のテーマを使用することができます。

さらに、hook_preprocessを使用する必要があります。

+0

おかげで、私はBluemarineのテーマを使用してメートル。あなたは上に投稿したコードに関してサンプルコードを投稿できますか? plzのヘルプ –

+0

親愛なるyvan私は本当にあなたがカスタムテーマに変数を渡すことができますか? –

1

不適切なテーマ機能を呼び出しています。 function theme_customの代わりにfunction theme_Bluemarineにする必要があります。変数配列hook_theme()に配列を渡す必要もあります。簡単な例hereを参照してください。

あなたの例を使用する:custom.tpl.phpで今

function custom_menu(){ 
    $items = array(); 

    $items['custom'] = array(
    'title' => t('custom!'), 
    'page callback' => 'custom_page', 
    'access arguments' => array('access content'), 
    'type' => MENU_NORMAL_ITEM, 
); 

    return $items; 
} 

function custom_page() { 
    $setVar = 'this is custom module'; 
    return theme('custom', array('output' => $setVar)); 
} 

function custom_theme() { 
    $path = drupal_get_path('module', 'custom'); 
    return array(
    'custom' => array(
     'variables' => array('output' => null), 
     'template' => 'custom', 
    ), 
); 
} 

ただこれは私の作品<?php print $output; ?>

関連する問題