Commit be02734a authored by Daniel Pepin's avatar Daniel Pepin
Browse files

Issue #2536510: Setup extra images field for products.

parent 901eb9c5
Loading
Loading
Loading
Loading
+28 −0
Changes for src/Entity/ShopifyProduct.php: 28 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -100,6 +100,8 @@ class ShopifyProduct extends ContentEntityBase implements ShopifyProductInterfac
    // Format variant images as File entities.
    if (isset($values['images']) && is_array($values['images']) && !empty($values['images'])) {
      foreach ($values['images'] as $variant_image) {
        if (count($variant_image->variant_ids)) {
          // Setup these images for the variant.
          foreach ($variant_image->variant_ids as $variant_id) {
            foreach ($values['variants'] as &$variant) {
              if ($variant->id == $variant_id) {
@@ -109,6 +111,16 @@ class ShopifyProduct extends ContentEntityBase implements ShopifyProductInterfac
            }
          }
        }
        else {
          // This image is not attached to a variant, it should be applied to
          // to the extra images field.
          $values['extra_images'][] = self::setupProductImage($variant_image->src);
        }
      }
    }

    if (!isset($values['extra_images']) || empty($values['extra_images'])) {
      $values['extra_images'] = [];
    }

    if (isset($values['tags']) && !is_array($values['tags']) && !empty($values['tags'])) {
@@ -368,6 +380,22 @@ class ShopifyProduct extends ContentEntityBase implements ShopifyProductInterfac
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE);

    $fields['extra_images'] = BaseFieldDefinition::create('image')
      ->setLabel(t('Extra Images'))
      ->setDefaultValue('')
      ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
      ->setDisplayOptions('view', array(
        'label' => 'hidden',
        'type' => 'image',
        'weight' => -35,
      ))
      ->setDisplayOptions('form', array(
        'type' => 'image_image',
        'weight' => 2,
      ))
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE);

    $fields['body_html'] = BaseFieldDefinition::create('text_long')
      ->setLabel(t('Body HTML'))
      ->setDefaultValue('')