web-dev-qa-db-ja.com

ビューブロックによって出力されたフィールドのリストを見つけるにはどうすればよいですか?

最終更新

成功!元の開発者がコンテンツのアクセス許可が有効になっていないと私に言ったにもかかわらず、必要なCCKフィールドのいくつかにフィールドレベルのアクセス許可が設定されていたようです。必須フィールドの匿名表示を許可すると、問題なく表示されました。


ブロック表示のビューを作成しました。ビューにはグループ化フィールドがあり、ビューのuiプレビューでは、出力はそのフィールドでグループ化されて表示されます。

enter image description here

しかし、テンプレートを使用してブロックを表示すると、グループ化情報(上級学習セッションまたは一般セッション)が出力されません。そのフィールドは、タイトルのような標準的なフィールドではありません-これは私のコンテンツタイプのCCKテキストフィールドです。テンプレートでそのフィールドにアクセスするにはどうすればよいですか?利用可能なフィールドのリストを取得するために、示されている解決策 here を試しましたが、どれも機能しません。

@ schnippyの回答を試した後に編集されました

フィールドの上にマウスを置くと、次のように表示されます。

enter image description here

だから私は追加してみました

<?php print "session type: ".$fields['field_session_type_value']->content; ?>

私のテンプレートには、「セッションの種類:」という文字列が表示されますが、その後に値はありません。値だけをテキスト文字列と組み合わせることに奇妙なことがあったが何もない場合に備えて、エラーログに値だけを書き込むことも試みました。

再度編集...

それが役立つ場合は、もう少し情報を提供するだけです-私は mobile jquery テーマを使用しています。リスト。そのテンプレートは次のようになります。

<?php
// $Id: views-view-list.tpl.php,v 1.3 2008/09/30 19:47:11 merlinofchaos Exp $
/**
 * @file views-view-list.tpl.php
 * Default simple view template to display a list of rows.
 *
 * - $title : The title of this group of rows.  May be empty.
 * - $options['type'] will either be ul or ol.
 * @ingroup views_templates
 */

?>

<div data-role="collapsible">
   <h3><?php print $title; ?></h3>
  <<?php print $options['type']; ?> data-role="listview">

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

      <li class="<?php print $classes[$id]; ?>"><?php print $row; ?></li>
    <?php endforeach; ?>
  </<?php print $options['type']; ?>>
</div>

このテンプレートを使用してブロックを介して表示されているビューがいくつかありますが、ほとんどの場合、それらはすべてタイトルフィールドによってグループ化されているので問題ありません。しかし、1つのビューでは、レコードはfield_session_type_valueと呼ばれるCCKフィールドによってグループ化され、そのフィールドの値が特定の値と一致する場合、$titleではなくそのフィールドを印刷します。

別の更新

Views-view.tpl.phpによると、$ rowsはビューがビュークエリの結果として送信する変数です。ここで、複数のフィールドがある場合、$ rowsでprint_rを実行すると多次元配列が返されると予想します。各レコードまたは行は、各フィールドのキー/値のペアを含む配列になります。そのようです:

Array (
  [0] => array('title'=> 'Advanced Consumer and Shopper Insight - An Interactive Symposium',
               'session' => 'general-session'),
  [1] => array('title' => 'Creating a Powerful Brand One Dirty Job at a Time',
               'session' => 'advanced-learning')
)

(はい、私は私の疑似コード配列が正しくフォーマットされていないことに気づきました。しかし、あなたは考えを理解します。)しかし、それは私が得ているものではありません。それが送り返しているのは、タイトルのみを含む単一次元配列です。

Array (
  [0] => Advanced Consumer and Shopper Insight - An Interactive Symposium
  [1] => Creating a Powerful Brand One Dirty Job at a Time
)

$ rows配列のすべてのフィールドを確実に送信するために何をする必要がありますか?

1
EmmyS

元の開発者がコンテンツの権限が有効になっていないと私に言ったにもかかわらず、必要なCCKフィールドのいくつかにフィールドレベルの権限が設定されていたようです。必須フィールドの匿名表示を許可すると、問題なく表示されました。

学んだ教訓;常にフィールドレベルの権限を確認してください。

0
EmmyS

ここでは「行スタイル」タイプの「フィールド」を使用していますか?これをプレビューに正しく表示するには、グループ化しているフィールドも「フィールド」リストのフィールドとして追加する必要があります。そのため、名前を見つけるだけです。これは、 cckフィールドタイプ。これを行う1つの方法は、ビュー内のフィールドエディターの「リンク」にカーソルを合わせることです。

enter image description here

そして、ブラウザのステータスバーのURLからフィールドの名前を取得します。

../view_name/display/field/<your field name>

次に、フィールドのレンダリングされたビューコンテンツをtplに出力します。

<?php print $fields['<your_field_name>']->content; ?>
0
schnippy