料理サイトモジュール

こんにちは、ユーザー名、



「ノード参照Drupalフィールドの非自明なタスク」に応えて、調理用のカスタムモジュールの1つを提出することにしました。



モジュールが機能するために、サイト資料の次の構造が想定されます。

レシピ材料タイプ-レシピ説明付きのメインコンテンツ

成分を含む材料の種類:

  1. 成分1-最初のグループの成分を含むサイト材料(例:材料の種類「スパイス」)
  2. 成分2-2番目のグループの成分を含むサイト材料(例:材料の種類「果物」)
  3. ...
  4. 成分N-グループN成分を含むサイトマテリアル


ドロップダウンリストのすべての材料はグループに分けられます。 したがって、それらを見つけるのは簡単です。



モジュールをオンにすると、使用可能なフィールドタイプのリストに「タイプ」という追加のタイプが表示されます。

このモジュールを使用すると、成分のノードに参照リンクを追加し、製品の数量と測定単位を設定できます。 複数行の追加、ドラッグアンドドロップの並べ替えをサポートします。



原料の種類を示すだけで十分です。



モジュールの便利な機能は、表示されるデータのテーマ機能です



関数theme_recipe_site_formatter_default($要素){
   $ fields = $ element ['#item'];
   $ res = '';
   if(!empty($ fields)){
     $ item = explode( '[nid:'、$ fields ['ingredient_name']);
     $ title = trim($アイテム[0]);
     $ nid = drupal_substr($アイテム[1]、0、-1);
     $ res = l($タイトル、「ノード/」。$nid)。  -'。  $ fields ['ingredient_qty']。($ fields ['ingredient_unit'] == '<space>'? '': ''。$ fields ['ingredient_unit']);
   }

   $ resを返します。 
 } 




テーマファイルtemplate.phpで、関数を作成し、変数$ resを事前準備済みのビューへのリンクとして作成します。これは、引数として成分のnidを受け取ります。 これにより、この成分を使用するすべてのレシピのリストを取得できます。



関数NAME_recipe_site_formatter_default($要素){
   $ fields = $ element ['#item'];
   $ res = '';

   if(!empty($ fields)){
     $ item = explode( '[nid:'、$ fields ['ingredient_name']);
     $ title = trim($アイテム[0]);
     $ nid = drupal_substr($アイテム[1]、0、-1);
     $ res = l($タイトル、 'WAY_C_VIEWS/'。$nid)'  -'。  $ fields ['ingredient_qty']。($ fields ['ingredient_unit'] == '<space>'? '': ''。$ fields ['ingredient_unit']);
   }

   $ resを返します。 
 } 


キャッシュをフラッシュすることを忘れないでください。



実際には、 モジュール自体



奇妙なことに-それは動作します;)



Habrahabrのユーザーではなく、友人からの招待状を受け取るための記事。

親切な人がいる場合は、serjik.bozhko @ gmail.comにメールを送ってください。






All Articles