0

配列をループして 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; ?>"/>

どんな助けでも大歓迎です。

ありがとう

4

0 に答える 0