2011-12-06 15 views
1

私はサイトのための定期的なモバイルテーマを持っています。現在、各テーマのtemplate.phpには、同じフィールドでいくつかのテキストが重複して機能する2つの重複機能があります。つまり、マークアップは両方のテーマのこれらのフィールドで同じです。Drupal 6:2つのテーマで重複するテーマ機能

どのようにしてDRYを課すことができ、論理は1か所にしかありませんか?

私はモバイルテーマmake the regular theme inheritを理解できましたが、テーマは終わりにはかなり異なるため、これは「適切な」ソリューションのようには見えません。さらに、前処理機能の事後処理を必要とし、モバイルCSSやJSファイルをオーバーライドする必要があります。これは、一見多くの仕事と未来のWTHを解決するものです。

ありがとうございます!

答えて

1

私はこれに対する適切な答えを見たいと思います。

私が考えることは、機能の複製を保持するモジュールを作ることです。もしそうならライブラリモジュール。

私はこれを会話のスターターとして「回答」しています。

中:

preprocess_page(&$vars){ 
mymodulename_pagepreprocess($vars,'desktop'); 
} 

template.php(モバイル)template.php

preprocess_page(&$vars){ 
mymodulename_pagepreprocess($vars,'mobile'); 
} 

(デスクトップ)あなたはところで、同様のモジュールで前処理・機能を有することができます。しかし、あなたは引数として魔女のテンプレートを送っていいかもしれません(しかし、これはグローバル$テーマから抽出することができます)

+1

+1。他のテーマがない場合は、モジュール内の '実際の'前処理関数を使用して、template.phpファイル内のindirectinの必要性を取り除くことを提案します。そして、他のテーマがあっても、モジュール内のpreprocess-functionは 'munged'値を別々の変数として追加することができるので、必要なバージョンを使うためにテーマテンプレートまでになります。 –

+0

モジュールは理にかなっていますが、2つのテーマで使用する2つのCCKフィールドの出力を操作するためのヘルパー機能を保持するだけのモジュールの作成と保守のコーディングオーバーヘッドを行うのはばかげているようです。ここに。 – yitznewton

1

関数を保持する基本テーマを作成し、両方をそのサブテーマ。

モバイルテーマだけのサブテーマで、PCテーマはベースですか?モジュールに共通の機能を移動させるための

Creating a sub-theme

+0

Hmm、抽象的な親テーマです。それは一見価値がある、私はそれを考えなかった。しかし、ストレートモバイルサブテーマのアイデアは、私は疑問に反論した。私は、モバイルでの非モバイルの前処理機能を呼びたくないとしなければならないと考えています。 – yitznewton

関連する問題