2010-12-06 5 views
3

私は単純に4つのフィールドを取得するビューを持っていますが、基本的には特定のコンテンツタイプのフィールドを取得します。
CSSクラス(プレーンテキスト)
画像(イメージ)
タイトル
ボディDrupal Views 2:カスタムマークアップを使用した出力

非常にシンプルなものを次のようにフィールドがあります。ビューを作成しましたが、特殊な方法で出力する必要があり、ビルドのカスタムマークアップとの関連でこのようなものがどのように分解されるのか判断できません。私はコンテナ内の各行をラップする必要があり、各行はそれ自身のコンテナに分解され、次のコードを見てください。

<div id="homepage-folio-portlets"> 
    <div class="homepage-folio-portlet [CSS class]"> 
    <div class="homepage-folio-portlet-image"><img src="[Image]" width="450" height="330" alt="" class="[CSS class]-image" /></div> 
    <div class="homepage-folio-portlet-text"> 
     <strong>[Title]</strong> 
     <p>[Body]</p> 
    </div> 
    </div> <!-- /homepage-folio-portlet --> 
    </div> <!-- /homepage-folio-portlets --> 

は、だから私は、コンテナ、ホームページ・フォリオ・ポートレットを持って、その内部に、私は、各行のクラスホームページ-フォリオ・ポートレットを使用して新しいコンテナを作成するビューを反復処理したいですその行からCSSクラスを含めて返されました。

私の最大のハードルは、template.phpに自分の.tplファイルまたはテーマ機能を組み込む方法を考え出すことです。私は命名規則を理解していますが、中に入ると私は何をすべきか分かりません。私はtemplate.phpでちょっとした魔法をやって、自分の行出力がコンテンツからCSSクラスを認識しているかどうかを確かめる必要があると感じていますが、誰が知っていますか?どんな助けや方向性もありがとう。

答えて

3

上記のvideoを見てから、私がすることを達成する方法をもう少し明確にしました。 "ah-ha"の最大の理由は、 "行スタイル出力"テンプレートのデフォルトコードがforeachループのために混乱していたことです。私は、ループなしでこのファイルにどのように表示されているかにかかわらず、各フィールドを単に出力できることを認識していませんでした。このビデオでは、次のフィールド$ [[ID-of-field]] - > contentを使ってフィールドを個別に参照する方法を示しました。'IDフィールド'を取得するには、特定のビューの[Theming information]オプションペインで、「Display output」、「Style output」、および「Row style output」リンクをスクロールすることです。

私のビューの編集画面にある "Theme information"を使って、 "Row style output"のための最も特定の.tplを作成して作成しました。この場合、view-view-fields - my-ビュー名 - default.tpl.php。

ビュービューフィールド - 私のビュー名 - default.tpl.php - 行の出力が
(もはやので、代わりにフィールドをループのデフォルトのforeachを利用してファイルの.tplその後

<div id="homepage-folio-portlets"> 
    <div class="homepage-folio-portlet <?php print $fields['CSS_class']->content ?>"> 
    <div class="homepage-folio-portlet-image"><img src="<?php print $fields['Image']->content ?>" width="450" height="330" alt="" class="<?php print $fields['CSS_class']->content ?>-image" /></div> 
    <div class="homepage-folio-portlet-text"> 
     <strong><?php print $fields['Title']->content ?></strong> 
     <p><?php print $fields['Body']->content ?></p> 
    </div> 
    </div> <!-- /homepage-folio-portlet --> 
    </div> <!-- /homepage-folio-portlets --> 

)私は、私が欲しいのフィールドを知っていると私はとにかく、私はフィットそれら単に出力を参照することができ、私は取り除くために、「スタイル出力」と「ディスプレイの出力」の.tplファイルに少し再帰をしましたDrupalが追加したすべてのマークアップのうち、私が本当に気にしたのは、$ tar(foreachループを使って)スタイルの.tplと$ tlの行を表示することでした。それは私が欲しいものを正確に出力しており、私はもっと幸せになれませんでした。最後に、それは意味をなさない。うまくいけば、これは他の人々の束に役立ちます。

ただ、参考のために...

ビュー - ビュー - フォーマットされていない - 私のビュー名 - default.tpl.php - スタイルの.tplファイル
は(foreachループを維持したいですここで非常に各行が出力されます)

<?php foreach ($rows as $id => $row): ?> 
<?php print $row; ?> 
<?php endforeach; ?> 

ビュー - ビュー - 私のビュー名 - default.tpl.php - の.tplファイルを表示します

<?php print $rows; ?> 

すべての余分なマークアップを削除することで、私は管理リンクなどのようなビューに特有の重要な情報を失うことになりますが、それは問題ありません。

0

行にテンプレートファイルを使用しようとしましたか?ビューモジュール(admin内)に表示​​されます。ビューを作成するときに、左側の下のボックスにある「情報」をクリックします。テンプレートキャッシュをリフレッシュする必要があります(これを行うためのボタンが表示されます)。

1

ビューの[編集]タブの[基本設定]で[テーマ:]を探し、[情報]リンクをクリックします。次に、 "Default:Theming information"セクションで、太字のファイル名は、そのビューの特定のサブセクションをテーマにして現在使用されているものです。他の名前は、デフォルトを上書きするために使用できる「提案」であり、最も具体的でないものから順に並べられています。 「行スタイルの出力」リンクで

  1. をクリックし、デフォルトのテンプレートのコードをコピー:あなたは「行スタイルの出力を」上書きしたいようなあなたの場合には

    は、それが鳴り、開始します。
  2. このスタイルをすべてのビュー、このビュー、このビューの特定のディスプレイなどに使用するかどうかに基づいて、行スタイルに使用する推奨ファイル名の1つを選択します。
  3. コピーしたコードを貼り付けます「再スキャンテンプレートファイル」のステップ#2
  4. 編集して、必要に応じてコードを選択し、ファイル名へのステップ#1、特定のクラスを追加する
  5. をクリックして、テンプレートキャッシュを再構築する
  6. を繰り返して、1-5ステップカスタマイズする追加のサブテンプレート。
+0

私はこれらのステップを理解していますが、このビデオが見つかるまで、それは奇妙な「必要に応じてコードを編集する」ステップです。http://mustardseedmedia.com/podcast/episode30 – creativetim

+0

デフォルトforeachループのコードで、 "print $ fields ['id'] - > content"のようなものを私に利用できるかどうかは分かりませんでした。 – creativetim

関連する問題