completed computed field_reference dev
This commit is contained in:
parent
75b908ba26
commit
d9e494e6db
|
@ -46,6 +46,7 @@
|
|||
"drupal/migrate_plus": "4.x-dev",
|
||||
"drupal/migrate_tools": "4.x-dev",
|
||||
"drupal/mimemail": "1.x-dev",
|
||||
"drupal/modules_weight": "^1.8",
|
||||
"drupal/restui": "^1.16",
|
||||
"drupal/search_api_autocomplete": "^1.2",
|
||||
"drupal/search_api_page": "1.x-dev",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "e67674c8f819a51a74785fddb76fb1d5",
|
||||
"content-hash": "7e10b3f48a875330ee707d7cee2bac93",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alchemy/zippy",
|
||||
|
@ -8130,6 +8130,70 @@
|
|||
},
|
||||
"time": "2019-05-08T04:46:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "drupal/modules_weight",
|
||||
"version": "1.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.drupalcode.org/project/modules_weight.git",
|
||||
"reference": "8.x-1.8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://ftp.drupal.org/files/projects/modules_weight-8.x-1.8.zip",
|
||||
"reference": "8.x-1.8",
|
||||
"shasum": "6861c4def64d489fda24ce6a1914ea970ccb7143"
|
||||
},
|
||||
"require": {
|
||||
"drupal/core": "~8.6"
|
||||
},
|
||||
"type": "drupal-module",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-1.x": "1.x-dev"
|
||||
},
|
||||
"drupal": {
|
||||
"version": "8.x-1.8",
|
||||
"datestamp": "1557514985",
|
||||
"security-coverage": {
|
||||
"status": "covered",
|
||||
"message": "Covered by Drupal's security advisory policy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packages.drupal.org/8/downloads",
|
||||
"license": [
|
||||
"GPL-2.0+"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Adrian Cid Almaguer (adriancid)",
|
||||
"homepage": "https://www.drupal.org/u/adriancid",
|
||||
"email": "adriancid@gmail.com",
|
||||
"role": "Maintainer"
|
||||
},
|
||||
{
|
||||
"name": "Ma'moun Othman (artofeclipse)",
|
||||
"homepage": "https://www.drupal.org/u/artofeclipse",
|
||||
"role": "Maintainer"
|
||||
},
|
||||
{
|
||||
"name": "josebc",
|
||||
"homepage": "https://www.drupal.org/user/1376836"
|
||||
}
|
||||
],
|
||||
"description": "Allows to change the modules execution order.",
|
||||
"homepage": "https://www.drupal.org/project/modules_weight",
|
||||
"keywords": [
|
||||
"Drupal",
|
||||
"Modules",
|
||||
"Order"
|
||||
],
|
||||
"support": {
|
||||
"source": "http://cgit.drupalcode.org/modules_weight",
|
||||
"issues": "https://www.drupal.org/project/issues/modules_weight"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "drupal/pagerer",
|
||||
"version": "1.4.0",
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
page_alter: false
|
||||
raw_names: false
|
||||
error_handlers:
|
||||
- 0
|
||||
rebuild_theme: true
|
||||
devel_dumper: default
|
|
@ -25,6 +25,7 @@ dependencies:
|
|||
- image.style.thumbnail
|
||||
- node.type.materiau
|
||||
module:
|
||||
- computed_field
|
||||
- cshs
|
||||
- field_group
|
||||
- file
|
||||
|
@ -90,7 +91,7 @@ third_party_settings:
|
|||
- field_materiau_images
|
||||
- field_video
|
||||
parent_name: group_htabs
|
||||
weight: 10
|
||||
weight: 11
|
||||
format_type: tab
|
||||
format_settings:
|
||||
id: ''
|
||||
|
@ -105,7 +106,7 @@ third_party_settings:
|
|||
- field_manufacturer
|
||||
- field_distributor
|
||||
parent_name: group_htabs
|
||||
weight: 11
|
||||
weight: 12
|
||||
format_type: tab
|
||||
format_settings:
|
||||
id: ''
|
||||
|
@ -119,7 +120,7 @@ third_party_settings:
|
|||
children:
|
||||
- field_attachments
|
||||
parent_name: group_htabs
|
||||
weight: 12
|
||||
weight: 13
|
||||
format_type: tab
|
||||
format_settings:
|
||||
id: ''
|
||||
|
@ -134,7 +135,7 @@ third_party_settings:
|
|||
- field_linked_materials
|
||||
- field_linked_articles
|
||||
parent_name: group_htabs
|
||||
weight: 13
|
||||
weight: 14
|
||||
format_type: tab
|
||||
format_settings:
|
||||
id: ''
|
||||
|
@ -148,7 +149,7 @@ third_party_settings:
|
|||
children:
|
||||
- field_samples
|
||||
parent_name: group_htabs
|
||||
weight: 14
|
||||
weight: 15
|
||||
format_type: tab
|
||||
format_settings:
|
||||
id: ''
|
||||
|
@ -170,7 +171,6 @@ third_party_settings:
|
|||
weight: 1
|
||||
format_type: tab
|
||||
format_settings:
|
||||
label: Internal
|
||||
formatter: open
|
||||
description: ''
|
||||
required_fields: true
|
||||
|
@ -200,7 +200,7 @@ content:
|
|||
type: file_generic
|
||||
region: content
|
||||
field_distributor:
|
||||
weight: 16
|
||||
weight: 17
|
||||
settings:
|
||||
match_operator: CONTAINS
|
||||
size: 60
|
||||
|
@ -209,7 +209,7 @@ content:
|
|||
type: entity_reference_autocomplete
|
||||
region: content
|
||||
field_famille:
|
||||
weight: 26
|
||||
weight: 17
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
type: options_select
|
||||
|
@ -250,7 +250,7 @@ content:
|
|||
type: image_image
|
||||
region: content
|
||||
field_memo:
|
||||
weight: 31
|
||||
weight: 20
|
||||
settings:
|
||||
rows: 5
|
||||
placeholder: ''
|
||||
|
@ -258,11 +258,17 @@ content:
|
|||
type: string_textarea
|
||||
region: content
|
||||
field_migration:
|
||||
weight: 33
|
||||
weight: 22
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
type: workflow_default
|
||||
region: content
|
||||
field_reference:
|
||||
type: computed_string_widget
|
||||
weight: 4
|
||||
region: content
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
field_samples:
|
||||
weight: 34
|
||||
settings: { }
|
||||
|
@ -302,14 +308,14 @@ content:
|
|||
type: video_embed_field_textfield
|
||||
region: content
|
||||
field_workflow:
|
||||
weight: 32
|
||||
weight: 21
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
type: workflow_default
|
||||
region: content
|
||||
langcode:
|
||||
type: language_select
|
||||
weight: 29
|
||||
weight: 18
|
||||
region: content
|
||||
settings:
|
||||
include_locked: true
|
||||
|
@ -329,7 +335,7 @@ content:
|
|||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
translation:
|
||||
weight: 30
|
||||
weight: 19
|
||||
region: content
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
|
@ -342,7 +348,6 @@ hidden:
|
|||
created: true
|
||||
field_index: true
|
||||
field_localisation_old: true
|
||||
field_reference: true
|
||||
promote: true
|
||||
status: true
|
||||
sticky: true
|
||||
|
|
|
@ -91,7 +91,6 @@ module:
|
|||
maillog: 0
|
||||
mailsystem: 0
|
||||
materio_home: 0
|
||||
materio_id: 0
|
||||
materio_jsonapi: 0
|
||||
materio_migrate: 0
|
||||
materio_samples: 0
|
||||
|
@ -107,6 +106,7 @@ module:
|
|||
migrate_plus: 0
|
||||
migrate_tools: 0
|
||||
mimemail: 0
|
||||
modules_weight: 0
|
||||
node: 0
|
||||
options: 0
|
||||
page_cache: 0
|
||||
|
@ -164,6 +164,7 @@ module:
|
|||
pathauto: 1
|
||||
content_translation: 10
|
||||
views: 10
|
||||
materio_id: 11
|
||||
figli_starter_kit: 1000
|
||||
theme:
|
||||
stable: 0
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
show_system_modules: true
|
||||
_core:
|
||||
default_config_hash: IMfcudoEwt2voUZwyBZA8OhzYCIGxe94CylyRFodjxc
|
|
@ -2,62 +2,36 @@
|
|||
|
||||
|
||||
function computed_field_field_index_compute($entity_type_manager, $entity, $fields, $delta){
|
||||
// drush_print($entity->field_index->value);
|
||||
// ksm($entity_type_manager);
|
||||
// ksm($entity);
|
||||
// ksm($fields);
|
||||
// ksm($delta);
|
||||
$famille = $entity->get('field_famille')->getValue()[0]['value'];
|
||||
|
||||
// $entity->isNew(); ??
|
||||
// TODO: what if familly change ?
|
||||
if (!empty($entity->field_index->value)) { // the node is not new
|
||||
return $entity->field_index->value;
|
||||
}
|
||||
|
||||
// TODO: finish the job
|
||||
/* FROM D7
|
||||
|
||||
// dsm('-- computed --');
|
||||
// dsm($entity_field, '$entity_field');
|
||||
// dsm($entity_type, '$entity_type');
|
||||
// dsm($entity, '$entity');
|
||||
// dsm($field, '$field');
|
||||
// dsm($instance, '$instance');
|
||||
// dsm($items, '$items');
|
||||
|
||||
// dsm($entity_field[0]['value'], 'entity_field value');
|
||||
|
||||
if (!empty($entity_field[0]['value'])) { // the node is not new
|
||||
|
||||
return $entity_field[0]['value'];
|
||||
|
||||
// the node is new
|
||||
// get all same entities in same family
|
||||
$query = \Drupal::entityQuery($entity->getEntityTypeId())
|
||||
->condition('type', $entity->bundle())
|
||||
->condition('field_famille', $famille)
|
||||
->sort('field_index', 'DESC')
|
||||
->range(0,1);
|
||||
|
||||
$nids = $query->execute();
|
||||
|
||||
if(is_array($nids)){
|
||||
$last = entity_load($entity->getEntityTypeId(), array_pop($nids));
|
||||
// get identifiants fo these entities
|
||||
$index = $last->get('field_index')->getValue()[0]['value'] + 1;
|
||||
}else{
|
||||
$index = '1';
|
||||
}
|
||||
else { // the node is new
|
||||
// get all same entities in same family
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', $entity_type)
|
||||
->entityCondition('bundle', $entity->type)
|
||||
->fieldCondition('field_famille', 'value', $entity->field_famille['und'][0]['value']);
|
||||
$result = $query->execute();
|
||||
if(is_array($result[$entity_type])){
|
||||
$entities = entity_load($entity_type, array_keys($result[$entity_type]));
|
||||
|
||||
// get identifiants fo these entities
|
||||
$ids = array();
|
||||
foreach ($entities as $id => $e) {
|
||||
$identifiant = field_view_field($entity_type, $e, 'field_identifiant');
|
||||
$ids[] = $identifiant[0]['#markup'] ? intval($identifiant[0]['#markup']) : 0;
|
||||
}
|
||||
sort($ids);
|
||||
|
||||
$value = strval(array_pop($ids) + 1);
|
||||
}else{
|
||||
$value = '1';
|
||||
}
|
||||
|
||||
// parse the value to a string as 0023 or 4458 or 0001
|
||||
$value_parts = str_split($value);
|
||||
while (count($value_parts) < 4) {
|
||||
array_unshift($value_parts, "0");
|
||||
}
|
||||
|
||||
// record the result
|
||||
$entity_field[0]['value'] = implode('', $value_parts);
|
||||
}
|
||||
*/
|
||||
return $index;
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,26 +43,32 @@ function computed_field_field_reference_compute($entity_type_manager, $entity, $
|
|||
if (!empty($entity->field_reference->value)) { // the node is not new
|
||||
return $entity->field_reference->value;
|
||||
}
|
||||
|
||||
// TODO: finish the job
|
||||
/* FROM D7
|
||||
|
||||
// dsm('-- computed --');
|
||||
// dsm($entity_field, '$entity_field');
|
||||
// dsm($entity_type, '$entity_type');
|
||||
// dsm($entity, '$entity');
|
||||
// dsm($field, '$field');
|
||||
// dsm($instance, '$instance');
|
||||
// dsm($items, '$items');
|
||||
if (!empty($entity_field[0]['value'])) { // the node is not new
|
||||
return $entity_field[0]['value'];
|
||||
// the node is new
|
||||
// parse the value to a string as 0023 or 4458 or 0001
|
||||
$index_parts = str_split($entity->field_index->value);
|
||||
while (count($index_parts) < 4) {
|
||||
array_unshift($index_parts, "0");
|
||||
}
|
||||
else { // the node is new
|
||||
$entity_field[0]['value'] = $entity->field_famille['und'][0]['value'].'-'.$entity->field_identifiant['und'][0]['value'];
|
||||
}
|
||||
*/
|
||||
return $entity->field_famille->value.'-'.implode('', $index_parts);
|
||||
}
|
||||
|
||||
// function computed_field_field_reference_materio_display($field, $entity_field_item, $entity_lang = "en", $langcode = "en") {
|
||||
// return $entity_field_item['value'];
|
||||
// }
|
||||
|
||||
/**
|
||||
* Implements hook_form_alter().
|
||||
*/
|
||||
function materio_id_form_node_materiau_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
|
||||
// dsm($form_id);
|
||||
$node = $form_state->getFormObject()->getEntity();
|
||||
$ref = $node->field_reference->value;
|
||||
// dsm($ref);
|
||||
if($ref != ''){
|
||||
$string = $form['#title']->getUntranslatedString() . ' (@ref)';
|
||||
// dsm($string);
|
||||
$args = $form['#title']->getArguments() + array('@ref'=>$ref);
|
||||
// ksm($args);
|
||||
$form['#title'] = t($string, $args);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue