配列をループして html 構造を構築する次のコードがあります。
<?php foreach ($view->result as $id => $row): ?>
<?php
$data = $row->field_field_slider_image;
if (!count($data)) {
continue;
}
//dpm($row);
// add captions to an empty array
if (isset($row->field_data_field_slider_image_field_slider_image_title)) {
$captions["caption-fid-" . $row->field_data_field_slider_image_field_slider_image_fid] = '<div class="header"><h3>'
. l($row->node_title, $row->field_field_slider_link[0]['raw']['url']) . '</h3></div><div class="body">'
. drupal_render($row->field_body)
. '</div>'
. l(t('read more'), $row->field_field_slider_link[0]['raw']['url'], array('attributes' => array('class' => array('button_link'))));
}
$file = $data[0]['rendered'];
// assign iamge style
$style = isset($file['#image_style']) && !empty($file['#image_style']) ? $file['#image_style'] :
variable_get('glossy_style_ff_slideshow', 'front_featured_slideshow_image');
?>
<a href="<?php print url($row->field_field_slider_link[0]['raw']['url']); ?>"><img src="<?php print image_style_url($style, $file['#item']['uri']); ?>" alt="<?php print $row->field_data_field_slider_image_field_slider_image_alt; ?>" title="#caption-fid-<?php print $row->field_data_field_slider_image_field_slider_image_fid; ?>"/></a>
<?php endforeach;?>
問題はリンクです$row->field_field_slider_link[0]['raw']['url']
。必須フィールドではないため、常に存在するとは限りません。
値が設定されているかどうかを最初に確認し、そうでない場合は別の行を出力する/除外する方法は?
たとえば、リンク値がない場合:
. l($row->node_title, $row->field_field_slider_link[0]['raw']['url']) . '</h3></div><div class="body">'
だろう:
. print $row->node_title . '</h3></div><div class="body">'
と:
. l(t('read more'), $row->field_field_slider_link[0]['raw']['url'], array('attributes' => array('class' => array('button_link'))));
まったく印刷されません。
と:
<a href="<?php print url($row->field_field_slider_link[0]['raw']['url']); ?>"><img src="<?php print image_style_url($style, $file['#item']['uri']); ?>" alt="<?php print $row->field_data_field_slider_image_field_slider_image_alt; ?>" title="#caption-fid-<?php print $row->field_data_field_slider_image_field_slider_image_fid; ?>"/></a>
だろう:
<img src="<?php print image_style_url($style, $file['#item']['uri']); ?>" alt="<?php print $row->field_data_field_slider_image_field_slider_image_alt; ?>" title="#caption-fid-<?php print $row->field_data_field_slider_image_field_slider_image_fid; ?>"/>
どんな助けでも大歓迎です。
ありがとう