ฉันกำลังพยายามให้ Drupal พิมพ์รายการที่มีสองฟิลด์ที่แตกต่างกันในอาร์เรย์เดียวกัน ก่อนอื่นมาฟิลด์ A จากนั้นฟิลด์ B และมันจะพิมพ์ในลักษณะนี้จนกว่าจะพิมพ์อาเรย์ทั้งหมด
ผลลัพธ์ที่ฉันพยายามได้รับคือสิ่งที่ต้องการ
<tr>
<td>Field_1[value1]</td>
<td>Field_2[value1]</td>
</tr><tr>
<td>Field_1[**value'n'**]</td>
<td>Field_2[**value'n'**]</td>
</tr>
จนกว่าจะพิมพ์ค่าทั้งหมด
แก้ไข. ค้นพบวิธีหนึ่งในการบรรลุสิ่งนี้โดยตรงใน node--testnode.tpl.php
<table>
<?php if ($content['field_test'][1]): ?>
<tr><td><?php print render($content['field_test'][0])?></td><td><?php print render($content['field_test'][1])?></td></tr>
<?php endif; ?>
<?php if ($content['field_test'][3]): ?>
<tr><td><?php print render($content['field_test'][2])?></td><td><?php print render($content['field_test'][3])?></td></tr>
<?php endif; ?>
<?php if ($content['field_test'][5]): ?>
<tr><td><?php print render($content['field_test'][4])?></td><td><?php print render($content['field_test'][5])?></td></tr>
<?php endif; ?>
</table>
การแก้ไขประการที่สอง การทำงานด้วยตนเองเท่านั้นคือบอกว่าคุณต้องการทำซ้ำกี่ครั้ง
<dl class="My Class">
<?php
$i = 0;
$counter = 2 * render ($content['field_counter_slides'][0]) -1;
while ($i <= $counter):
if ($content['field_test'][1]){
echo "<dt>";
print render ($content['field_test'][$i]);
$i++;
echo "</dt><dd>";
print render ($content['field_test'][$i]);
echo "</dd>";
$i++;
}
endwhile;
?>
</dl>