コンテンツタイプごとにレイアウトする方法

s-jack's picture

CCKなどでコンテンツタイプを新たに作りましたが、
コンテンツタイプごとに統一されたレイアウト、たとえばテーブル内にフィールドとそのラベルを配置して整形する、ことをモジュールで作ることはできますでしょうか。

タイトル あああああ
都道府県 東京都 市区町村 品川区
本文 ほげほげほげ
ほげほげほげ
ほげほげほげ
作成日   更新日  

Comments

これまさに

Shin-gdo_J's picture

これまさに僕もどうしてもやりたいことなんですよね。
CCKでコンテンツタイプ作るところまでは割とわかりやすくって簡単にできたんですが、Viewsは相変わらずとっつきにくくて。
ぜひぜひどなたかにご教示願いたいです。

答えじゃなくてすみません。> snakeman.jack さん

テンプレート

aiwata55's picture

モジュールじゃなくて,テンプレートで対処する方法を簡単にご説明します。

node-your_content_type_name.tpl.php というファイルを使用中のテンプレートフォルダに作ります。この際,your_content_type_name のところは,レイアウトしたいコンテンツタイプの machine readable name (日本語でなんと呼ぶと適切でしょう? 機械用の呼び名?) と入れ替えてください。その中でいろいろと HTML タグや PHP を駆使して,この特定コンテンツタイプ向け HTML のひな形のようなものを作り込みます。

あとは,CSS でレイアウトを作り込めば,おっしゃっているようなことが実現可能です。


Aki Iwata
FOREST & trees

filmoreha's picture

node-content_typeテンプレートを使用の際、<?php print $content; ?>の変わりに以下のPHPコードが必要です。
<?php print $node->field_name[0]['view']; ?>

例えば、CCKコンテンツタイプはCarsであればnode-cars.tpl.phpファイルの中に以下のコードを使用できます:

<table>
  <tr>
    <td><?php print $node->field_make[0]['view']; ?></td>
    <td><?php print $node->field_model[0]['view']; ?></td>
  </tr>
</table>

s-jack's picture

過去の質問ですみません。
Drupal7の場合、nodeモジュールのnode.tpl.phpを、node--hogehoge.tpl.phpにしてオーバーライドするのは理解しているのですが、

<table>
  <tr>
    <td><?php print $node->field_make[0]['view']; ?></td>
    <td><?php print $node->field_model[0]['view']; ?></td>
  </tr>
</table>

の部分は同じでよいのでしょうか。
ノードオブジェクトで、labelが_makeで、フィールドの中身が_model、配列の添字の意味も教えていただけると助かります。
または記載されているdocumentを教えていただけないでしょうか。

テンプレートのオーバーライド

s-jack's picture

みなさま、ありがとうございました。
sites\all\themesの中のtemplates\overridesにありました!
オーバーライドするようになっているのですね、なるほど。

http://groups.drupal.org/node/56883
にもご教示いただいているように、firefoxのプラグインで、CSSのクラスを調べてみたいと思います。

Japan

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week