当前位置: 首页>>代码示例>>PHP>>正文


PHP ImageStyle::loadMultiple方法代码示例

本文整理汇总了PHP中Drupal\image\Entity\ImageStyle::loadMultiple方法的典型用法代码示例。如果您正苦于以下问题:PHP ImageStyle::loadMultiple方法的具体用法?PHP ImageStyle::loadMultiple怎么用?PHP ImageStyle::loadMultiple使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Drupal\image\Entity\ImageStyle的用法示例。


在下文中一共展示了ImageStyle::loadMultiple方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testNormal

 /**
  * Tests moving a randomly generated image.
  */
 function testNormal()
 {
     // Pick a file for testing.
     $file = File::create((array) current($this->drupalGetTestFiles('image')));
     // Create derivative image.
     $styles = ImageStyle::loadMultiple();
     $style = reset($styles);
     $original_uri = $file->getFileUri();
     $derivative_uri = $style->buildUri($original_uri);
     $style->createDerivative($original_uri, $derivative_uri);
     // Check if derivative image exists.
     $this->assertTrue(file_exists($derivative_uri), 'Make sure derivative image is generated successfully.');
     // Clone the object so we don't have to worry about the function changing
     // our reference copy.
     $desired_filepath = 'public://' . $this->randomMachineName();
     $result = file_move(clone $file, $desired_filepath, FILE_EXISTS_ERROR);
     // Check if image has been moved.
     $this->assertTrue(file_exists($result->getFileUri()), 'Make sure image is moved successfully.');
     // Check if derivative image has been flushed.
     $this->assertFalse(file_exists($derivative_uri), 'Make sure derivative image has been flushed.');
 }
开发者ID:aWEBoLabs,项目名称:taxi,代码行数:24,代码来源:FileMoveTest.php

示例2: calculateDependencies

 /**
  * {@inheritdoc}
  */
 public function calculateDependencies()
 {
     parent::calculateDependencies();
     $providers = \Drupal::service('breakpoint.manager')->getGroupProviders($this->breakpoint_group);
     foreach ($providers as $provider => $type) {
         $this->addDependency($type, $provider);
     }
     // Extract all the styles from the image style mappings.
     $styles = ImageStyle::loadMultiple($this->getImageStyleIds());
     array_walk($styles, function ($style) {
         $this->addDependency('config', $style->getConfigDependencyName());
     });
     return $this;
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:17,代码来源:ResponsiveImageStyle.php

示例3: testStyle


//.........这里部分代码省略.........
     foreach ($style->getEffects() as $uuid => $effect) {
         // Store the uuid for later use.
         $uuids[$effect->getPluginId()] = $uuid;
         $effect_configuration = $effect->getConfiguration();
         foreach ($effect_edits[$effect->getPluginId()] as $field => $value) {
             $this->assertEqual($value, $effect_configuration['data'][$field], SafeMarkup::format('The %field field in the %effect effect has the correct value of %value.', array('%field' => $field, '%effect' => $effect->getPluginId(), '%value' => $value)));
         }
     }
     // Assert that every effect was saved.
     foreach (array_keys($effect_edits) as $effect_name) {
         $this->assertTrue(isset($uuids[$effect_name]), format_string('A %effect_name effect was saved with ID %uuid', array('%effect_name' => $effect_name, '%uuid' => $uuids[$effect_name])));
     }
     // Image style overview form (ordering and renaming).
     // Confirm the order of effects is maintained according to the order we
     // added the fields.
     $effect_edits_order = array_keys($effect_edits);
     $order_correct = TRUE;
     $index = 0;
     foreach ($style->getEffects() as $effect) {
         if ($effect_edits_order[$index] != $effect->getPluginId()) {
             $order_correct = FALSE;
         }
         $index++;
     }
     $this->assertTrue($order_correct, 'The order of the effects is correctly set by default.');
     // Test the style overview form.
     // Change the name of the style and adjust the weights of effects.
     $style_name = strtolower($this->randomMachineName(10));
     $style_label = $this->randomMachineName();
     $weight = count($effect_edits);
     $edit = array('name' => $style_name, 'label' => $style_label);
     foreach ($style->getEffects() as $uuid => $effect) {
         $edit['effects[' . $uuid . '][weight]'] = $weight;
         $weight--;
     }
     // Create an image to make sure it gets flushed after saving.
     $image_path = $this->createSampleImage($style);
     $this->assertEqual($this->getImageCount($style), 1, format_string('Image style %style image %file successfully generated.', array('%style' => $style->label(), '%file' => $image_path)));
     $this->drupalPostForm($style_path, $edit, t('Update style'));
     // Note that after changing the style name, the style path is changed.
     $style_path = 'admin/config/media/image-styles/manage/' . $style_name;
     // Check that the URL was updated.
     $this->drupalGet($style_path);
     $this->assertTitle(t('Edit style @name | Drupal', array('@name' => $style_label)));
     $this->assertResponse(200, format_string('Image style %original renamed to %new', array('%original' => $style->id(), '%new' => $style_name)));
     // Check that the image was flushed after updating the style.
     // This is especially important when renaming the style. Make sure that
     // the old image directory has been deleted.
     $this->assertEqual($this->getImageCount($style), 0, format_string('Image style %style was flushed after renaming the style and updating the order of effects.', array('%style' => $style->label())));
     // Load the style by the new name with the new weights.
     $style = ImageStyle::load($style_name);
     // Confirm the new style order was saved.
     $effect_edits_order = array_reverse($effect_edits_order);
     $order_correct = TRUE;
     $index = 0;
     foreach ($style->getEffects() as $effect) {
         if ($effect_edits_order[$index] != $effect->getPluginId()) {
             $order_correct = FALSE;
         }
         $index++;
     }
     $this->assertTrue($order_correct, 'The order of the effects is correctly set by default.');
     // Image effect deletion form.
     // Create an image to make sure it gets flushed after deleting an effect.
     $image_path = $this->createSampleImage($style);
     $this->assertEqual($this->getImageCount($style), 1, format_string('Image style %style image %file successfully generated.', array('%style' => $style->label(), '%file' => $image_path)));
     // Delete the 'image_crop' effect from the style.
     $this->drupalPostForm($style_path . '/effects/' . $uuids['image_crop'] . '/delete', array(), t('Delete'));
     // Confirm that the form submission was successful.
     $this->assertResponse(200);
     $image_crop_effect = $style->getEffect($uuids['image_crop']);
     $this->assertRaw(t('The image effect %name has been deleted.', array('%name' => $image_crop_effect->label())));
     // Confirm that there is no longer a link to the effect.
     $this->assertNoLinkByHref($style_path . '/effects/' . $uuids['image_crop'] . '/delete');
     // Refresh the image style information and verify that the effect was
     // actually deleted.
     $style = entity_load_unchanged('image_style', $style->id());
     $this->assertFalse($style->getEffects()->has($uuids['image_crop']), format_string('Effect with ID %uuid no longer found on image style %style', array('%uuid' => $uuids['image_crop'], '%style' => $style->label())));
     // Additional test on Rotate effect, for transparent background.
     $edit = array('data[degrees]' => 5, 'data[random]' => 0, 'data[bgcolor]' => '');
     $this->drupalPostForm($style_path, array('new' => 'image_rotate'), t('Add'));
     $this->drupalPostForm(NULL, $edit, t('Add effect'));
     $style = entity_load_unchanged('image_style', $style_name);
     $this->assertEqual(count($style->getEffects()), 6, 'Rotate effect with transparent background was added.');
     // Style deletion form.
     // Delete the style.
     $this->drupalPostForm($style_path . '/delete', array(), t('Delete'));
     // Confirm the style directory has been removed.
     $directory = file_default_scheme() . '://styles/' . $style_name;
     $this->assertFalse(is_dir($directory), format_string('Image style %style directory removed on style deletion.', array('%style' => $style->label())));
     $this->assertFalse(ImageStyle::load($style_name), format_string('Image style %style successfully deleted.', array('%style' => $style->label())));
     // Test empty text when there are no image styles.
     // Delete all image styles.
     foreach (ImageStyle::loadMultiple() as $image_style) {
         $image_style->delete();
     }
     // Confirm that the empty text is correct on the image styles page.
     $this->drupalGet($admin_path);
     $this->assertRaw(t('There are currently no styles. <a href=":url">Add a new one</a>.', [':url' => \Drupal::url('image.style_add')]));
 }
开发者ID:Wylbur,项目名称:gj,代码行数:101,代码来源:ImageAdminStylesTest.php

示例4: viewElements

 /**
  * {@inheritdoc}
  */
 public function viewElements(FieldItemListInterface $items)
 {
     $elements = array();
     // Check if the formatter involves a link.
     $image_link_setting = $this->getSetting('image_link');
     if ($image_link_setting == 'content') {
         $entity = $items->getEntity();
         if (!$entity->isNew()) {
             // @todo Remove when theme_image_formatter() has support for route name.
             $uri['path'] = $entity->getSystemPath();
             $uri['options'] = $entity->urlInfo()->getOptions();
         }
     } elseif ($image_link_setting == 'file') {
         $link_file = TRUE;
     }
     $fallback_image_style = '';
     // Check if the user defined a custom fallback image style.
     if ($this->getSetting('fallback_image_style')) {
         $fallback_image_style = $this->getSetting('fallback_image_style');
     }
     // Collect cache tags to be added for each item in the field.
     $image_styles_to_load = array_filter($this->getSetting('image_styles'));
     if ($fallback_image_style) {
         $image_styles_to_load[] = $fallback_image_style;
     }
     $image_styles = ImageStyle::loadMultiple($image_styles_to_load);
     foreach ($image_styles as $image_style) {
         $all_cache_tags[] = $image_style->getCacheTag();
     }
     $cache_tags = NestedArray::mergeDeepArray($all_cache_tags);
     foreach ($items as $delta => $item) {
         if ($item->entity) {
             if (isset($link_file)) {
                 $image_uri = $item->entity->getFileUri();
                 $uri = array('path' => file_create_url($image_uri), 'options' => array());
             }
             // Extract field item attributes for the theme function, and unset them
             // from the $item so that the field template does not re-render them.
             $item_attributes = $item->_attributes;
             unset($item->_attributes);
             $elements[$delta] = array('#theme' => 'image_sizes_formatter', '#attached' => array('library' => array('core/picturefill')), '#item' => $item, '#item_attributes' => $item_attributes, '#image_styles' => array_filter($this->getSetting('image_styles')), '#fallback_image_style' => $this->getSetting('fallback_image_style'), '#sizes' => $this->getSetting('sizes'), '#path' => isset($uri) ? $uri : '', '#cache' => array('tags' => $cache_tags));
         }
     }
     return $elements;
 }
开发者ID:andrewl,项目名称:andrewlnet,代码行数:48,代码来源:ImageSizesFormatter.php

示例5: viewElements

 /**
  * {@inheritdoc}
  */
 public function viewElements(FieldItemListInterface $items)
 {
     $elements = array();
     $files = $this->getEntitiesToView($items);
     // Early opt-out if the field is empty.
     if (empty($files)) {
         return $elements;
     }
     $url = NULL;
     // Check if the formatter involves a link.
     if ($this->getSetting('image_link') == 'content') {
         $entity = $items->getEntity();
         if (!$entity->isNew()) {
             $url = $entity->urlInfo();
         }
     } elseif ($this->getSetting('image_link') == 'file') {
         $link_file = TRUE;
     }
     $fallback_image_style = '';
     // Check if the user defined a custom fallback image style.
     if ($this->getSetting('fallback_image_style')) {
         $fallback_image_style = $this->getSetting('fallback_image_style');
     }
     // Collect cache tags to be added for each item in the field.
     $responsive_image_style = $this->responsiveImageStyleStorage->load($this->getSetting('responsive_image_style'));
     $image_styles_to_load = array();
     $cache_tags = [];
     if ($responsive_image_style) {
         $cache_tags = Cache::mergeTags($cache_tags, $responsive_image_style->getCacheTags());
         $image_styles_to_load = $responsive_image_style->getImageStyleIds();
     }
     // If there is a fallback image style, add it to the image styles to load.
     if ($fallback_image_style) {
         $image_styles_to_load[] = $fallback_image_style;
     } else {
         // The <picture> element uses the first matching breakpoint (see
         // http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#update-the-source-set
         // points 2 and 3). Meaning the breakpoints are sorted from large to
         // small. With mobile-first in mind, the fallback image should be the one
         // selected for the smallest screen.
         $fallback_image_style = end($image_styles_to_load);
     }
     $image_styles = ImageStyle::loadMultiple($image_styles_to_load);
     foreach ($image_styles as $image_style) {
         $cache_tags = Cache::mergeTags($cache_tags, $image_style->getCacheTags());
     }
     foreach ($files as $delta => $file) {
         // Link the <picture> element to the original file.
         if (isset($link_file)) {
             $url = Url::fromUri(file_create_url($file->getFileUri()));
         }
         $elements[$delta] = array('#theme' => 'responsive_image_formatter', '#attached' => array('library' => array('core/picturefill')), '#item' => $file->_referringItem, '#image_style' => $fallback_image_style, '#responsive_image_style_id' => $responsive_image_style ? $responsive_image_style->id() : '', '#url' => $url, '#cache' => array('tags' => $cache_tags));
     }
     return $elements;
 }
开发者ID:Nikola-xiii,项目名称:d8intranet,代码行数:58,代码来源:ResponsiveImageFormatter.php

示例6: buildRow

  /**
   * {@inheritdoc}
   */
  public function buildRow(EntityInterface $entity) {
    $row = [];
    $row['name'] = [
      'data' => $this->getLabel($entity),
      'class' => ['menu-label'],
    ];
    $row['description'] = Xss::filterAdmin($entity->description);
    $row['aspect_ratio'] = $entity->getAspectRatio();

    // Load all image styles used by the current crop type.
    $image_style_ids = $this->queryFactory->get('image_style')
      ->condition('effects.*.data.crop_type', $entity->id())
      ->execute();
    $image_styles = ImageStyle::loadMultiple($image_style_ids);

    /** @var \Drupal\image\Entity\ImageStyle $image_style */
    $usage = [];
    foreach ($image_styles as $image_style) {
      if (count($usage) < 2) {
        $usage[] = $image_style->link();
      }
    }

    $other_image_styles = array_splice($image_styles, 2);
    if ($other_image_styles) {
      $usage_message = t('@first, @second and @count more', ['@first' => $usage[0], '@second' => $usage[1], '@count' => count($other_image_styles)]);
    }
    else {
      $usage_message = implode(', ', $usage);
    }
    $row['usage']['data']['#markup'] = $usage_message;

    return $row + parent::buildRow($entity);
  }
开发者ID:eloiv,项目名称:botafoc.cat,代码行数:37,代码来源:CropTypeListBuilder.php


注:本文中的Drupal\image\Entity\ImageStyle::loadMultiple方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。