Программная генерация Picture элемента в Drupal 7
Осваивал на днях модули Breakpoints, Picture и столкнулся с вопросом как же программно сгенерировать этот самый <picture> тэг с содержимым. Понятное дело, что нужно использовать theme_picture(), однако не сразу разберешься какие параметры и в каком виде передавать. Именно поэтому и решил сохранить данный код в блоге.
- // Loads an image object.
- $image = field_get_items('node', $node, MY_IMAGE_FIELD_MACHINE_NAME);
-
- // Loads a Picture conf.
- $picture_mapping = picture_mapping_load(MY_PICTURE_MAPPING_MACHINE_NAME);
- $fallback = MY_IMAGE_STYLE_MACHINE_NAME;
- $breakpoints = picture_get_mapping_breakpoints($picture_mapping, $fallback);
-
- // Creates an output html.
- $output = theme('picture', array(
- 'uri' => $image[0]['uri'],
- 'style_name' => $fallback,
- 'breakpoints' => $breakpoints,
- 'alt' => t('Alt example'),
- 'title' => t('Title example'),
- 'attributes' => array('class' => array('my-class')),
- ));
У модуля Picture правда есть один нюанс: он постоянно создает атрибуты Alt и Title, даже если они пустые. По этому случаю я создал патч, который, надеюсь, попадет рано или поздно в модуль.
Добавлено: 14.02.2017
Метки:
Добавить комментарий