2011-06-25 6 views
1

これはおそらくn00bの質問ですが、私はどこでも答えを探して何かを見つけました。マルチプルバリューフィールドのテーマ表示

私は、製品に複数の機能がランダムに入力されている「機能」のCCK複数値フィールドを持っています。私はビューを編集しているので、製品ページの機能の出力をスタイルすることができます。

は今の私の見解で、私は一度使用した時の出力機能のリスト全体をすることができます

<?php print $fields['field_features_value']->content ?> 

これは私の製品に与えられたすべての機能のリストを提供します。しかし、私がしたいのはループスルーして、個々の特徴を引き出し、それを別々にフォーマット/スタイルすることです。どのくらい私はこれを行うだろうか?

+1

さて私は、これは一般的な質問だろうと思ったが、私はどこでも検索したと私はまだビュー行テーマでこれを行う方法を見つけたhavent。 – Justin

答えて

0

私は再びこの昨日に走った、と無駄に、Googleに構文をしようと時間を費やしました。

私はこれを動作させることができましたが、私はそれがではなく、であることを認めなければなりません。 Viewsがすでに行っている作業の一部を複製しており、ブルートフォースアプローチとみなされるべきです。

私のユースケースは、ノードベース行ごと、別々のノードで各FileFieldにファイルをテーマ設定関係:

<?php 
// $Id: views-view-field.tpl.php,v 1.1 2008/05/16 22:22:32 merlinofchaos Exp $ 
/** 
    * This template is used to print a single field in a view. It is not 
    * actually used in default Views, as this is registered as a theme 
    * function which has better performance. For single overrides, the 
    * template is perfectly okay. 
    * 
    * Variables available: 
    * - $view: The view object 
    * - $field: The field handler object that can process the input 
    * - $row: The raw SQL result that can be used 
    * - $output: The processed output that will normally be used. 
    * 
    * When fetching output from the $row, this construct should be used: 
    * $data = $row->{$field->field_alias} 
    * 
    * The above will guarantee that you'll always get the correct data, 
    * regardless of any changes in the aliasing that might happen if 
    * the view is modified. 
    */ 
?> 
<?php 

$output = explode('|', $output); // I've rewritten the field output in Views like this: [field_portfolio_image-field_name]|[nid] 
$paths = $output[0]; // I've set filefield to show file paths rather than the file 
$nid = $output[1]; // The NID is all that's really needed for this approach 

$node = node_load($nid); 
$slots = $node->field_portfolio_image; 

foreach($slots as $prop) { 
     print '<a href="'.$prop[filepath].'" title="'.$prop[data][description].'" rel="gallery-'.$nid.'" class="colorbox hidden">'.$prop[data][description].'</a>'; 
    } 

?> 

Iを得るためには、(添付この例の画像参照)重くここDevelモジュールを使用しました私が必要とするネストされた値。

Devel view of fields used

は、私は、ビューはすでに、ページの読み込み時にこのへのアクセス権を持っているはずなので、これを行うのではなく、ノードのデータをリロードするより良い、適切な方法がある知っています。

0

景色をテーマ設定、私は条件、関係、パラメータおよびすべてのビューは、フィールド以外を詰める設定あまりにも固有のものです。私が使用する唯一のフィールドはノードIDです。その後

ノードオブジェクトを取得するには... ...

$node = node_load($nid); 

を私が使用してテーマをやって。 develモジュールに付属しているdpm関数を使ってノードオブジェクトを調べることができます。あなたは千台のノードでこれをやろうとしている場合は、バッチ上のノードをロードする必要がありますので、あなたは、最適化やスピードを気にしないとき

​​

この「技術」は、ノードに適していますと。

関連する問題