first commit for custom module
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
views.field.view_computed_date_unique:
|
||||||
|
type: views_field
|
||||||
|
label: 'Computed Date Unique'
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\popsu_uniqdate\Plugin\Field\FieldType;
|
||||||
|
|
||||||
|
use Drupal\Core\Entity\FieldableEntityInterface;
|
||||||
|
// use Drupal\Core\Field\EntityReferenceFieldItemList;
|
||||||
|
// use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
|
||||||
|
use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
|
||||||
|
use Drupal\datetime\Plugin\Field\FieldType\DateTimeItemInterface;
|
||||||
|
use Drupal\datetime\Plugin\Field\FieldType\DateTimeFieldItemList;
|
||||||
|
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 ComputedUniqDate extends DateTimeFieldItemList
|
||||||
|
{
|
||||||
|
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')
|
||||||
|
$entity = $this->getEntity();
|
||||||
|
// $storage = \Drupal::service('entity_type.manager')->getStorage('node');
|
||||||
|
$dates = $entity->get('field_date')->getValue();
|
||||||
|
asort($dates);
|
||||||
|
$last_date = array_pop($dates);
|
||||||
|
$this->list[0] = $this->createItem(0, $last_date);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\popsu_uniqdate\Plugin\views\field;
|
||||||
|
|
||||||
|
use Drupal\views\ResultRow;
|
||||||
|
use Drupal\views\Plugin\views\field\FieldPluginBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A handler to provide proper displays for profile current company.
|
||||||
|
*
|
||||||
|
* @ingroup views_field_handlers
|
||||||
|
*
|
||||||
|
* @ViewsField("views_computed_date_unique")
|
||||||
|
*/
|
||||||
|
class ViewsComputedDateUnique extends FieldPluginBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function render(ResultRow $values) {
|
||||||
|
$entity = $values->_entity;
|
||||||
|
$uniqdate = $entity->get('computed_date_unique')->getValue();
|
||||||
|
return $uniqdate[0]['value'];
|
||||||
|
// $dates = $entity->get('field_date')->getvalue();
|
||||||
|
// asort($dates);
|
||||||
|
// return array_pop($dates);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function query() {
|
||||||
|
// This function exists to override parent query function.
|
||||||
|
// Do nothing.
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user