added thesaurus ordered in sapi solr database index
This commit is contained in:
parent
aca756e64d
commit
7056bce803
|
@ -3,6 +3,6 @@ raw_names: false
|
||||||
error_handlers:
|
error_handlers:
|
||||||
- 0
|
- 0
|
||||||
rebuild_theme: false
|
rebuild_theme: false
|
||||||
devel_dumper: default
|
devel_dumper: kint
|
||||||
debug_logfile: 'temporary://drupal_debug.txt'
|
debug_logfile: 'temporary://drupal_debug.txt'
|
||||||
debug_pre: false
|
debug_pre: false
|
||||||
|
|
|
@ -6,6 +6,8 @@ dependencies:
|
||||||
- search_api_solr
|
- search_api_solr
|
||||||
- taxonomy
|
- taxonomy
|
||||||
- node
|
- node
|
||||||
|
- materio_sapi
|
||||||
|
- synonyms
|
||||||
- search_api
|
- search_api
|
||||||
- address
|
- address
|
||||||
config:
|
config:
|
||||||
|
@ -204,25 +206,134 @@ field_settings:
|
||||||
label: 'Thesaurus » Taxonomy term » Name'
|
label: 'Thesaurus » Taxonomy term » Name'
|
||||||
datasource_id: 'entity:node'
|
datasource_id: 'entity:node'
|
||||||
property_path: 'field_thesaurus:entity:name'
|
property_path: 'field_thesaurus:entity:name'
|
||||||
type: solr_text_wstoken
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
boost: !!float 8
|
boost: !!float 2
|
||||||
dependencies:
|
dependencies:
|
||||||
config:
|
config:
|
||||||
- field.storage.node.field_thesaurus
|
- field.storage.node.field_thesaurus
|
||||||
module:
|
module:
|
||||||
- taxonomy
|
- taxonomy
|
||||||
|
thesaurus_name_0:
|
||||||
|
label: 'Thesaurus 0 » Terme de taxonomie » Nom'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_0:entity:name'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 21
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_name_1:
|
||||||
|
label: 'Thesaurus 1 » Terme de taxonomie » Nom'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_1:entity:name'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 13
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_name_2:
|
||||||
|
label: 'Thesaurus 2 » Terme de taxonomie » Nom'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_2:entity:name'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 8
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_name_3:
|
||||||
|
label: 'Thesaurus 3 » Terme de taxonomie » Nom'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_3:entity:name'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 5
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_name_4:
|
||||||
|
label: 'Thesaurus 4 » Terme de taxonomie » Nom'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_4:entity:name'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 3
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
thesaurus_synonyms:
|
thesaurus_synonyms:
|
||||||
label: 'Thesaurus » Taxonomy term » Synonyms'
|
label: 'Thesaurus » Taxonomy term » Synonyms'
|
||||||
datasource_id: 'entity:node'
|
datasource_id: 'entity:node'
|
||||||
property_path: 'field_thesaurus:entity:field_synonyms'
|
property_path: 'field_thesaurus:entity:field_synonyms'
|
||||||
type: solr_text_wstoken
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
boost: !!float 8
|
boost: !!float 2
|
||||||
dependencies:
|
dependencies:
|
||||||
config:
|
config:
|
||||||
- field.storage.node.field_thesaurus
|
- field.storage.node.field_thesaurus
|
||||||
- field.storage.taxonomy_term.field_synonyms
|
- field.storage.taxonomy_term.field_synonyms
|
||||||
module:
|
module:
|
||||||
- taxonomy
|
- taxonomy
|
||||||
|
thesaurus_synonyms_0:
|
||||||
|
label: 'Thesaurus 0 » Terme de taxonomie » Synonyms list'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_0:entity:synonyms'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 21
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- synonyms
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_synonyms_1:
|
||||||
|
label: 'Thesaurus 1 » Terme de taxonomie » Synonyms'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_1:entity:field_synonyms'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 13
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- field.storage.taxonomy_term.field_synonyms
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_synonyms_2:
|
||||||
|
label: 'Thesaurus 2 » Terme de taxonomie » Synonyms'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_2:entity:field_synonyms'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 8
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- field.storage.taxonomy_term.field_synonyms
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_synonyms_3:
|
||||||
|
label: 'Thesaurus 3 » Terme de taxonomie » Synonyms'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_3:entity:field_synonyms'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 5
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- field.storage.taxonomy_term.field_synonyms
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
|
thesaurus_synonyms_4:
|
||||||
|
label: 'Thesaurus 4 » Terme de taxonomie » Synonyms'
|
||||||
|
datasource_id: 'entity:node'
|
||||||
|
property_path: 'thesaurus_4:entity:field_synonyms'
|
||||||
|
type: 'solr_text_custom:edgeasciistring'
|
||||||
|
boost: !!float 3
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- field.storage.taxonomy_term.field_synonyms
|
||||||
|
module:
|
||||||
|
- materio_sapi
|
||||||
|
- taxonomy
|
||||||
thesaurus_tid:
|
thesaurus_tid:
|
||||||
label: 'Thesaurus » Taxonomy term » Term ID'
|
label: 'Thesaurus » Taxonomy term » Term ID'
|
||||||
datasource_id: 'entity:node'
|
datasource_id: 'entity:node'
|
||||||
|
@ -239,7 +350,7 @@ field_settings:
|
||||||
datasource_id: 'entity:node'
|
datasource_id: 'entity:node'
|
||||||
property_path: title
|
property_path: title
|
||||||
type: text
|
type: text
|
||||||
boost: !!float 13
|
boost: !!float 21
|
||||||
dependencies:
|
dependencies:
|
||||||
module:
|
module:
|
||||||
- node
|
- node
|
||||||
|
@ -328,7 +439,17 @@ processor_settings:
|
||||||
- tag_name
|
- tag_name
|
||||||
- tag_synonyms
|
- tag_synonyms
|
||||||
- thesaurus_name
|
- thesaurus_name
|
||||||
|
- thesaurus_name_0
|
||||||
|
- thesaurus_name_1
|
||||||
|
- thesaurus_name_2
|
||||||
|
- thesaurus_name_3
|
||||||
|
- thesaurus_name_4
|
||||||
- thesaurus_synonyms
|
- thesaurus_synonyms
|
||||||
|
- thesaurus_synonyms_0
|
||||||
|
- thesaurus_synonyms_1
|
||||||
|
- thesaurus_synonyms_2
|
||||||
|
- thesaurus_synonyms_3
|
||||||
|
- thesaurus_synonyms_4
|
||||||
- title
|
- title
|
||||||
- type
|
- type
|
||||||
- uuid
|
- uuid
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
uuid: af25836c-6eca-4621-a803-7a7394fff660
|
uuid: dafb8d3b-f321-4b97-b412-40e1e6b66b25
|
||||||
langcode: en
|
langcode: en
|
||||||
status: true
|
status: true
|
||||||
dependencies: { }
|
dependencies: { }
|
||||||
|
|
|
@ -67,3 +67,46 @@ function materio_sapi_preprocess_fieldset(&$variables) {
|
||||||
$variables['legend']['attributes'] = new Attribute($variables['element']['#legend_attributes']);
|
$variables['legend']['attributes'] = new Attribute($variables['element']['#legend_attributes']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ? https://happyculture.coop/blog/drupal-8-declarer-un-champ-extrafield-calcule-computed-field
|
||||||
|
/**
|
||||||
|
* Implements hook_entity_bundle_field_info().
|
||||||
|
*/
|
||||||
|
function materio_sapi_entity_bundle_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
|
||||||
|
$fields = [];
|
||||||
|
if ($entity_type->id() == 'node') {
|
||||||
|
if ($bundle == 'materiau') {
|
||||||
|
for ($i=0; $i < 5 ; $i++) {
|
||||||
|
$fields["thesaurus_$i"] = \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
|
||||||
|
->setLabel(t("Thesaurus $i"))
|
||||||
|
->setComputed(TRUE)
|
||||||
|
->setSetting('target_type', 'taxonomy_term')
|
||||||
|
->setSetting('handler_settings',['target_bundles'=>['thesaurus'=>'thesaurus']] )
|
||||||
|
->setClass('\Drupal\materio_sapi\ThesaurusRefComputed')
|
||||||
|
->setDisplayConfigurable('view', FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ? https://www.webomelette.com/creating-pseudo-fields-drupal-8
|
||||||
|
// /**
|
||||||
|
// * Implements hook_entity_extra_field_info().
|
||||||
|
// */
|
||||||
|
// function materio_sapi_entity_extra_field_info() {
|
||||||
|
// $extra = array();
|
||||||
|
|
||||||
|
// foreach (NodeType::loadMultiple() as $bundle) {
|
||||||
|
// $extra['node'][$bundle->Id()]['display']['my_own_pseudo_field'] = array(
|
||||||
|
// 'label' => t('My own field'),
|
||||||
|
// 'description' => t('This is my own pseudo-field'),
|
||||||
|
// 'weight' => 100,
|
||||||
|
// 'visible' => false,
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return $extra;
|
||||||
|
// }
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\materio_sapi;
|
||||||
|
|
||||||
|
use Drupal\Core\Field\EntityReferenceFieldItemList;
|
||||||
|
use Drupal\Core\TypedData\ComputedItemListTrait;
|
||||||
|
|
||||||
|
class ThesaurusRefComputed extends EntityReferenceFieldItemList {
|
||||||
|
use ComputedItemListTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computed related blog posts.
|
||||||
|
*/
|
||||||
|
protected function computeValue() {
|
||||||
|
$field_name = $this->getName();
|
||||||
|
switch ($field_name) {
|
||||||
|
case 'thesaurus_0':
|
||||||
|
$delta = 0;
|
||||||
|
break;
|
||||||
|
case 'thesaurus_1':
|
||||||
|
$delta = 1;
|
||||||
|
break;
|
||||||
|
case 'thesaurus_2':
|
||||||
|
$delta = 2;
|
||||||
|
break;
|
||||||
|
case 'thesaurus_3':
|
||||||
|
$delta = 3;
|
||||||
|
break;
|
||||||
|
case 'thesaurus_4':
|
||||||
|
$delta = 4;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$delta = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$thes_terms = $this->getParent()->getValue()->get('field_thesaurus')->getValue();
|
||||||
|
|
||||||
|
if (count($thes_terms) > 0) {
|
||||||
|
if (isset($thes_terms[$delta])) {
|
||||||
|
$term = $thes_terms[$delta];
|
||||||
|
$this->list[0] = $this->createItem(0, $term);
|
||||||
|
$t="t";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue