0

次のフィールドを持つ「自動車販売」のコンテンツ タイプを開発しました。

  1. メーカー
  2. モデル
  3. 作る
  4. 燃料タイプ
  5. トランスミッション (マニュアル/オートマチック)
  6. 登録済み?(はい・いいえ)
  7. マイレージ
  8. エンジンパワー
  9. 状態 (新品/再生品/中古品)
  10. 価格
  11. 写真 (複数アップロード)

車のリストを表示するために、このコンテンツ タイプのビューを開発しました。今、私は次のような個々の自動車販売記録の画面/ビューを開発したいと考えています: ここに画像の説明を入力

フィールドの配置とは別に、間に画像ギャラリーを埋め込みたいことに注意してください。これは Drupal 7 管理 UI を介して実現できますか?それともカスタム CSS とテンプレート ファイルを作成する必要がありますか? 特定のテンプレート ファイル/css を編集する必要がある場合、それらは何ですか? Zen Sub Theme を使用しています。

4

1 に答える 1

0

これを実現するには、ページを作成し、それに付随するノード テンプレートを作成します。新しいノードを作成することから始めて、テンプレートの名前の NID を記録します。

次に、テンプレートで新しいファイルを作成し、次の方法で名前を付けます。node--[node id].tpl.php

次に、そのファイルに次のヘルパー関数を貼り付けます (または、サイトの他の場所で使用する場合は、template.php に配置できます)。

/**
 * Gets the resulting output of a view as an array of rows,
 * each containing the rendered fields of the view
 */
function views_get_rendered_fields($name, $display_id = NULL) {
    $args = func_get_args();
    array_shift($args); // remove $name
    if (count($args)) {
        array_shift($args); // remove $display_id
    }

    $view = views_get_view($name);
    if (is_object($view)) {
        if (is_array($args)) {
          $view->set_arguments($args);
        }
        if (is_string($display_id)) {
          $view->set_display($display_id);
        }
        else {
          $view->init_display();
        }
        $view->pre_execute();
        $view->execute();
        $view->render();
        //dd($view->style_plugin);
        return $view->style_plugin->rendered_fields;
    } else {
        return array();
    }
}

次に、次のコードをテンプレートに追加します。

<?php
  $cars = views_get_rendered_fields('view name', 'default', [...any arguments to be passed to the view]);
  foreach ($cars as $car): ?>
    <div>Put your mockup in here. It might be helpful to run <?php die('<pre>'.print_r($car, 1).'</pre>'); ?> to see what the $car array looks like.</div>
  <?php endforeach;
?>

コード内のプレースホルダーを、マークアップにしたいものに変更するだけで、設定が完了します!

<?php die('<pre>'.print_r($car,1).'</pre>'); ?>上で述べたように、配列が印刷されたように見えるものを視覚的に表現することは常に役に立ちます。

views_get_rendered_fieldsビューの出力を完全にカスタマイズできるため、コードで常に使用しています。

注意:新しいテンプレートを作成するたびに、必ずキャッシュをクリアしてください。

頑張ってください!

于 2012-06-28T03:02:47.677 に答える