質問

4つのフィールドをつかむ簡単なビューがあります。基本的には、特定のコンテンツタイプのフィールドをつかみます。フィールドは次のとおりです。
CSSクラス(プレーンテキスト)
画像(画像)
タイトル

かなりシンプルなもの。私はビューを作成しましたが、私は物事を専門的に出力する必要があり、私のビルドからのカスタムマークアップと組み合わせてこのようなものがどのように壊れるかを判断することはできません。各行をコンテナに包む必要があり、各行は独自のコンテナに分解し、次のコードをご覧ください。

   <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クラスを含む各行について。

私の最大のハードルは、私の.tplファイルまたはテーマ機能をtemplate.phpで構築する方法を見つけることです。私は命名規則を理解していますが、中に入ると、私は何をすべきか本当にわかりません。私の行出力がコンテンツからのCSSクラスを認識していることを確認するために、Template.phpで少し魔法をかける必要があると感じています。どんな助けと方向性を高く評価しています。

役に立ちましたか?

解決

前述を見た後 ビデオ 私がやろうとしていることを達成する方法がもう少し明確になりました。最大の「Ah-Ha」は、「行スタイルの出力」テンプレートのデフォルトコードが、foreachループのために混乱していたことです。ループなしでこのファイルに適合していると思われる方法で、各フィールドを単純に出力できることを認識していませんでした。ビデオは、次の速記$フィールド['id-of-field'] - >コンテンツでフィールドを個別に参照する方法を示しました。 「id-of-field」を取得するには、「ディスプレイ出力」、「スタイル出力」、および「テーマ情報」オプションの「列スタイルの出力」リンクをスクロールして、特定のビューの「テーマ情報」オプションペインです。

ビューの編集画面にある「テーマ情報」を使用して、「行スタイルの出力」の最も具体的な.tplを決定して作成して作成しました。 -default.tpl.php。

view-view-fields - my-view-name-default.tpl.php -ow出力.tplファイル
(フィールドをループする代わりに、私が望むフィールドを知っているので、とにかく合成することができるので、フィールドをループする代わりに、もはやデフォルトのforeachを使用しません。

   <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が追加するすべてのマークアップを取り除きました。私が本当に気にかけているのは、スタイル.tplの$ row(foreach loopで)とディスプレイTPLの$行を印刷することだけだったことに注意してください。それは私が望むものを正確に出力しているので、私は幸せになることができませんでした。最後に、それはある程度理にかなっています。うまくいけば、これが他の多くの人々に役立つことを願っています。

参照のためだけに...

Views-view-unformatted - my-view-name - default.tpl.php -Style .tplファイル
(各行が出力されるように、ここにforeachループを保持したい)

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

views-view - my-view-name - default.tpl.php -.tplファイルを表示します

<?php print $rows; ?>

すべての余分なマークアップを削除することで、管理者リンクなどのビューに固有の重要なものを失いますが、私の目的のためには問題ありません。

他のヒント

ビューの編集タブで、基本設定の下で、「テーマ:」を探し、「情報」リンクをクリックします。次に、「デフォルト:テーマ情報」セクションでは、太字のファイル名は現在、そのビューの特定のサブセクションをテーマにするために使用されています。他の名前は、デフォルトをオーバーライドするために使用できる「提案」であり、最も具体的ではないものから注文されます。

あなたの場合、開始するために、「行スタイルの出力」をオーバーライドしたいように聞こえます。

  1. 「行スタイルの出力」リンクをクリックして、デフォルトのテンプレートコードをコピーします。
  2. このスタイルをすべてのビュー、このビュー、このビューの特定のディスプレイなどに使用するかどうかに基づいて、行スタイルに使用する提案されたファイル名のいずれかを選択します。
  3. 手順#1でコピーされたコードをステップ#2で選択したファイル名に貼り付けます
  4. 必要に応じてコードを編集して、特定のクラスを追加する
  5. 「Rescanテンプレートファイル」をクリックして、テンプレートキャッシュを再構築します
  6. カスタマイズする追加のサブテンプレートについては、手順1〜5を繰り返します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top