added product variations to home page on pricing
This commit is contained in:
@@ -98,6 +98,26 @@ function materio_home_entity_bundle_field_info(EntityTypeInterface $entity_type,
|
||||
])
|
||||
->setClass(\Drupal\materio_home\Plugin\Field\FieldType\ComputedArticlesReferences::class);
|
||||
|
||||
$fields['computed_products_reference'] = BaseFieldDefinition::create('entity_reference')
|
||||
->setName('computed_products_reference')
|
||||
->setLabel(t('Computed Products References'))
|
||||
->setDescription(t('Computed Products References.'))
|
||||
// // The Entity Type this field belongs to.
|
||||
->setTargetEntityTypeId($entity_type->id())
|
||||
// // The Entity Type bundle this field belongs to.
|
||||
->setTargetBundle($bundle)
|
||||
->setSetting('target_type', 'commerce_product_variation')
|
||||
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
|
||||
->setComputed(TRUE)
|
||||
->setRevisionable(FALSE)
|
||||
->setTranslatable(FALSE)
|
||||
->setDisplayConfigurable('view', TRUE)
|
||||
->setDisplayOptions('view', [
|
||||
'label' => 'hidden',
|
||||
'weight' => -5,
|
||||
])
|
||||
->setClass(\Drupal\materio_home\Plugin\Field\FieldType\ComputedProdVariationsReferences::class);
|
||||
|
||||
return $fields;
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace Drupal\materio_home\Plugin\Field\FieldType;
|
||||
|
||||
use Drupal\Core\Entity\FieldableEntityInterface;
|
||||
use Drupal\Core\Field\EntityReferenceFieldItemList;
|
||||
use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
|
||||
use Drupal\Core\Field\FieldItemList;
|
||||
use Drupal\Core\TypedData\TypedDataInterface;
|
||||
use Drupal\Core\Field\BaseFieldDefinition;
|
||||
use Drupal\Core\TypedData\ComputedItemListTrait;
|
||||
|
||||
// https://www.drupal.org/node/2112677
|
||||
// https://www.cornel.co/article/entity-reference-computed-field-example-drupal
|
||||
// https://www.caxy.com/blog/drupal-custom-form-and-computed-fields
|
||||
|
||||
class ComputedProdVariationsReferences extends EntityReferenceFieldItemList
|
||||
{
|
||||
use ComputedItemListTrait;
|
||||
/**
|
||||
* The entity type manager.
|
||||
*
|
||||
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
|
||||
*/
|
||||
protected $entityTypeManager;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct(BaseFieldDefinition $definition, $name, TypedDataInterface $parent) {
|
||||
parent::__construct($definition, $name, $parent);
|
||||
$this->entityTypeManager = \Drupal::entityTypeManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the values.
|
||||
*/
|
||||
protected function computeValue() {
|
||||
$query = \Drupal::entityQuery('commerce_product_variation')
|
||||
->condition('status', 1)
|
||||
->sort('created', 'DESC')
|
||||
// ->exists('field_visuel')
|
||||
// ->condition('type', 'article')
|
||||
->range(0,12);
|
||||
$ids = $query->execute();
|
||||
foreach ($ids as $key => $id) {
|
||||
$this->list[$key] = $this->createItem($key, $id);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user