|
@@ -1,16 +1,113 @@
|
|
|
<?php
|
|
|
+use Drupal\Core\Entity\EntityTypeInterface;
|
|
|
+use Drupal\Core\Field\BaseFieldDefinition;
|
|
|
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
|
|
|
+use Drupal\mymodule\Plugin\Field\FieldType\MyFieldComputed;
|
|
|
|
|
|
/**
|
|
|
* Implements hook_theme().
|
|
|
*/
|
|
|
-function materio_home_theme($existing, $type, $theme, $path) {
|
|
|
- // @see https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-from-custom-module
|
|
|
+// function materio_home_theme($existing, $type, $theme, $path) {
|
|
|
+// // @see https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-from-custom-module
|
|
|
+//
|
|
|
+// return array(
|
|
|
+// 'materio_home' => array(
|
|
|
+// // 'render element' => '',
|
|
|
+// 'file' => 'includes/materio_home.inc',
|
|
|
+// 'variables' => array(
|
|
|
+// 'frontpage_node' => NULL,
|
|
|
+// ),
|
|
|
+// ),
|
|
|
+// );
|
|
|
+// }
|
|
|
|
|
|
- return array(
|
|
|
- 'materio_home' => array(
|
|
|
- // 'render element' => '',
|
|
|
- 'file' => 'includes/materio_home.inc',
|
|
|
- 'variables' => array(),
|
|
|
- ),
|
|
|
- );
|
|
|
+/**
|
|
|
+ * Implement hook_entity_bundle_field_info().
|
|
|
+ *
|
|
|
+ * @param EntityTypeInterface $entity_type
|
|
|
+ * @param $bundle
|
|
|
+ * @param array $base_field_definitions
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+// function materio_home_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
|
|
|
+function materio_home_entity_base_field_info_alter(&$fields, EntityTypeInterface $entity_type) {
|
|
|
+ // $fields = array();
|
|
|
+ // if ($entity_type->id() == 'node' && $bundle === 'frontpage') {
|
|
|
+ if ($entity_type->id() == 'node') {
|
|
|
+ $fields['computed_materials_reference'] = BaseFieldDefinition::create('entity_reference')
|
|
|
+ ->setName('computed_materials_reference')
|
|
|
+ ->setLabel(t('Computed Materials References'))
|
|
|
+ ->setDescription(t('Computed Materials References.'))
|
|
|
+ // // The Entity Type this field belongs to.
|
|
|
+ ->setSetting('target_type', 'node')
|
|
|
+ // // The Entity Type bundle this field belongs to.
|
|
|
+ ->setTargetBundle('frontpage')
|
|
|
+ ->setTargetEntityTypeId('node')
|
|
|
+ ->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\ComputedMaterialsReferences::class);
|
|
|
+
|
|
|
+ $fields['computed_showrooms_reference'] = BaseFieldDefinition::create('entity_reference')
|
|
|
+ ->setName('computed_showrooms_reference')
|
|
|
+ ->setLabel(t('Computed Showrooms References'))
|
|
|
+ ->setDescription(t('Computed Showrooms References.'))
|
|
|
+ ->setSetting('target_type', 'taxonomy_term')
|
|
|
+ // // The Entity Type this field belongs to.
|
|
|
+ ->setTargetEntityTypeId('node')
|
|
|
+ // // The Entity Type bundle this field belongs to.
|
|
|
+ ->setTargetBundle('frontpage')
|
|
|
+ ->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\ComputedShowroomsReferences::class);
|
|
|
+ }
|
|
|
+ return $fields;
|
|
|
+}
|
|
|
+
|
|
|
+// /**
|
|
|
+// * implements hook_entity_extra_field_info
|
|
|
+// *
|
|
|
+// */
|
|
|
+// function materio_home_entity_extra_field_info() {
|
|
|
+// $extra = [];
|
|
|
+// // $extra['node']['frontpage']['form']['computed_materials_reference'] = [
|
|
|
+// // 'label' => t('Computed Materials References'),
|
|
|
+// // 'description' => t('Computed Materials References'),
|
|
|
+// // 'weight' => 10,
|
|
|
+// // ];
|
|
|
+// // $extra['node']['frontpage']['display']['computed_materials_reference'] = [
|
|
|
+// // 'label' => t('Computed Materials References'),
|
|
|
+// // 'description' => t('Computed Materials References'),
|
|
|
+// // 'weight' => 10,
|
|
|
+// // ];
|
|
|
+// return $extra;
|
|
|
+// }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_install().
|
|
|
+ */
|
|
|
+function materio_home_install() {
|
|
|
+ $entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
|
|
|
+ \Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_uninstall().
|
|
|
+ */
|
|
|
+function materio_home_uninstall() {
|
|
|
+ $entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
|
|
|
+ \Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
|
|
|
}
|