2011-12-06 7 views
0

私はDrupalでテーマをプレビューするための簡単なモジュールを作成しようとしています。各ユーザーには独自のカスタムノードがあり、実際にそれを有効にせずにテーマの仕組みをプレビューすることができます。今、これは私が持っているものです:Drupal 6でテーマプレビューモジュールを作成するにはどうすればよいですか?

function theme_preview_info($new_theme, $node_id) 
{ 
    global $custom_theme; 
    $custom_theme = $new_theme; 

    $node = node_load($node_id); 

    return $node->body; 

} 

これは、ノードの内容を表示しますが、フォーマットはすべて混乱しています。 node/1に行ったようにノードを正確に表示するにはどうすればよいですか?代わりにtheme_preview/theme_name/1で表示しますか?

答えて

5

Drupalモジュールを構築した経験がありますか?

もしそうでなければ、あなたがしようとしていることがそれほど単純ではないことがわかります。 プレビューするテーマをユーザーが選択できるようにするためのインターフェイスが必要です。次に、カスタマイズされたパスエイリアス(theme_preview/theme_name/1)に基づいて、選択したテーマプレビューを使用して適切なノードにユーザーを誘導するために、Drupalのルーティングにフックする必要があります。他のバックエンド・オーバーヘッドの可能性は非常に高いですが、現時点では予想していません。

Drupalモジュールを構築した経験があれば、それは大したことではないかもしれません。


おそらく最も簡単な部分です。 Drupal 7の場合は、hook_custom_theme()の実装を使用して、意図した基準(つまり、ユーザーが選択したテーマ)に基づいて特定のノードに使用されるテーマを変更できます。

http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_custom_theme/7

この方法で、あなたは実際には、より正確なプレビューを与え、Drupalは、選択したテーマは完全にページのレンダリングを処理できるようにすることができます。

ユーザーのテーマ切り替えインターフェイスを作成したり、各テーマ選択の特定のパスエイリアスにユーザーをルーティングする方法については、正確にはわかりません。

ThemeKeyモジュール(http://drupal.org/project/themekey)を調べることもできます。このモジュールをどういうわけか使って、それぞれのテーマごとに表示される各ノードのabバージョンを設定することができます。

+0

トップから専門家にお勧めします。ようこそ、すべての素晴らしいテーマに感謝します。正直なアドバイスのため+1。 –

関連する問題