Views Field-Variablen
Eingetragen von yannick-149 (78)
am 13.10.2010 - 17:03 Uhr in
am 13.10.2010 - 17:03 Uhr in
N'abend,
wie kann ich herausfinden welche Variablen VIEWS für eine Abfrage verwendet und wie kann ich anschließend mit denen arbeiten?
Ich habe also zb eine Abfrage, die lediglich Titel und Textkörper abfragt und möchte die nun einzeln in ein Template einbauen. Dafür brauch ich aber mehr als dieses "Block->content" Das ganze müsste ja auch irgendwo einmal aufgesplittet sein oder in einem Array stehen, aus dem ich mir das holen kann. Aber wie genau kann ich die einzelnen Fields in ein Template einfließen lassen?
Ich hoffe, jemand nimmt sich meiner Frage an.
Gruß aus Hamburg
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn Du einen View erstellst,
am 13.10.2010 - 17:37 Uhr
Wenn Du einen View erstellst, dann kannst Du dort auch unter "Theme: Information" Infos dazu bekommen.
Dort bekommst Du dann die Default Templates angezeigt. Schau Dir diese mal an und dann wirst Du schnell sehen welche Variablen es gibt und wie Du an diese rankommst in dem entsprechenden view-template.
Da bekomme ich nur, dass
am 13.10.2010 - 17:53 Uhr
Da bekomme ich nur, dass 'rows' die gesamt Abfrage ist. Wenn ich aber rows['title'] benutze, passiert gar nichts.
oder soetwas:
* - $fields: an array of $field objects. Each one contains:
* - $field->content: The output of the field.
* - $row: The raw result object from the query, with all data it fetched.
*
* @ingroup views_templates
*/
?>
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
<?php if ($field->label): ?>
<label class="views-label-<?php print $field->class; ?>">
<?php print $field->label; ?>:
</label>
<?php endif; ?>
<?php
// $field->element_type is either SPAN or DIV depending upon whether or not
// the field is a 'block' element type or 'inline' element type.
?>
<<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
</<?php print $field->inline_html;?>>
<?php endforeach; ?>
Aber woran sehe ich da, was ich schreiben muss um den Titel und den Textkörper einzeln in ein Template schreiben zu können...?!
Gib Dir die Variablen, die Du
am 13.10.2010 - 21:34 Uhr
Gib Dir die Variablen, die Du untersuchen willst, etwa so aus:
<pre> <?php print_r($row); ?> </pre>
Dann siehst Du genau die Struktur und die verwendeten Indizes bei den Arrays.
Beste Grüße
Werner
Hallo Werner, Aber wo finde
am 14.10.2010 - 11:12 Uhr
Hallo Werner,
Aber wo finde ich denn die Indizes? Es tut mir Leid, aber ich werde aus diesen ganzen Codeschnipseln nicht schlau.
Das ist quasi der relevante(???) Code, den mir die php anzeigt.
<?php if ($rows): ?>
<div class="view-content">
<?php print $rows; ?>
</div>
Das Template für die Blöcke sieht so aus:
<?php if($block->subject) : ?>
<div class="block_title">
<?php print $block->subject ?>
</div>
<?php endif; ?>
<div class="block_content">
<?php print $block->content ?>
</div>
Nun würde ich aber gerne, dass das Template für den Block so in der Art aussieht und auch funktioniert:
<?php if($block->subject) : ?>
<div class="block_title">
<?php print <strong>$rows[title]</strong> ?>
</div>
<?php endif; ?>
<div class="block_content">
<?php print <strong>$rows[body]</strong> ?>
</div>
Aber so einfach scheint es nicht zu sein, kann mir also jemand helfen?
Was muss ich tun, damit ich das Template so gestalten kann, wie ich es gerne, wie oben beschrieben, hinbekomme.