Программный вывод полей и ID элементов

Главные вкладки

Аватар пользователя McSeem McSeem 19 февраля 2017 в 12:51

Здарова,
Вывожу программно нужные мне поля в page.tpl.php, далее нужно прикручивать этим полям стили CSS. Но для этого нужны ID этих элементов. Пример:

<?php $output field_view_value('node'$nid'field_image'$image[0], array(
                                  
'type' => 'image',
                                  
'settings' => array(
                                  
'image_style' => 'material_image_full_1200',
                                  
'image_link' => 'content',
                                  ),
                                ));
print 
render($output);?>

в результате код вывода выглядит:

<?php <img class="pure-img" typeof="foaf:Image" src="image.jpg?itok=5v6fRzru" alt=""
style="position: absolute;" width="1211" height="272"?>

Как обратиться конкретно к этому элементу в CSS, не затрагивая другие элементы "pure-img"? В данном случае я использую field_view_value(), т.к. очень удобно использовать преднастроенные стили изображений. Есть ли возможность при программном выводе присваивать ID выводимым полям(элементам) и есть ли такая возможность при использовании функций field_view_value() и/или field_view_field()?
Заранее спасибо

Комментарии

Аватар пользователя Carrot Carrot 26 февраля 2017 в 20:23

Я делал следующим образом - генерировал тег img самостоятельно. Что угодно добавляйте - свои class, id и т.п.
Изображение (image_field c полями alt и title) в ссылке на node:


<?php
    
if(isset($node->field_image[LANGUAGE_NONE][0])):
?>
    <a href="<?php print file_create_url($node->field_image[LANGUAGE_NONE][0]['uri'])?>" title="<?php print $node->field_image[LANGUAGE_NONE][0]['title']?>">
        <img id="" class="" src="<?php print file_create_url($node->field_image[LANGUAGE_NONE][0]['uri'])?>" title="<?php print $node->field_image[LANGUAGE_NONE][0]['title']?>" alt="<?php print $node->field_image[LANGUAGE_NONE][0]['alt'];?>"/>
    </a>
<?php
    
endif;
?>

Либо, генерацию кода картинки выведите в контейнер со своим id и дальше перекрывайте css .pure-img.

Аватар пользователя McSeem McSeem 28 марта 2017 в 21:18

Разобрался... Правда долго руки не доходили написать, но все же, может кому будет полезно:
<?php array('attributes' => array('id' => array('your-id'), 'class' => array('your-class-name'))) ?>
Просто используйте массив с опциями вывода как обычно, например в функциях l(), field_fiew_field() и т.д.
Пример:

<?php print l(
              
$author->name,
              
'user/'.$author->uid,
              array(
'attributes' => array('id' => array('user-name'), 'class' => array('material-header-url')))); ?>