continue to build frontpage
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
<?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 ComputedArticlesReferences 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('node')
|
||||
->condition('status', 1)
|
||||
->sort('created', 'DESC')
|
||||
->range(0,5)
|
||||
->condition('type', 'article');
|
||||
$nids = $query->execute();
|
||||
foreach ($nids as $key => $nid) {
|
||||
$this->list[$key] = $this->createItem($key, $nid);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -44,13 +44,8 @@ class ComputedMaterialsReferences extends EntityReferenceFieldItemList
|
||||
->range(0,200);
|
||||
$results = $query->execute();
|
||||
$nids = array_rand($results, 20);
|
||||
$nodes = entity_load_multiple('node', $nids);
|
||||
// \Drupal::logger('materio_home')->notice(print_r($nodes, true));
|
||||
$key = 0;
|
||||
foreach ($nodes as $nid => $node) {
|
||||
// \Drupal::logger('materio_home')->notice($nid);
|
||||
$this->list[$key] = $this->createItem($key, $node->id());
|
||||
$key++;
|
||||
foreach ($nids as $key => $nid) {
|
||||
$this->list[$key] = $this->createItem($key, $nid);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -40,13 +40,8 @@ class ComputedShowroomsReferences extends EntityReferenceFieldItemList
|
||||
->condition('vid', 'showroom');
|
||||
$tids = $query->execute();
|
||||
shuffle($tids);
|
||||
$terms = entity_load_multiple('taxonomy_term', $tids);
|
||||
// \Drupal::logger('materio_home')->notice(print_r($nodes, true));
|
||||
$key = 0;
|
||||
foreach ($terms as $tid => $term) {
|
||||
// \Drupal::logger('materio_home')->notice($nid);
|
||||
$this->list[$key] = $this->createItem($key, $term->id());
|
||||
$key++;
|
||||
foreach ($tids as $key => $tid) {
|
||||
$this->list[$key] = $this->createItem($key, $tid);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user