|
@@ -200,18 +200,66 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
|
|
// https://blog.chrismitchellonline.com/posts/custom_graphql_data/
|
|
// https://blog.chrismitchellonline.com/posts/custom_graphql_data/
|
|
|
|
|
|
$registry->addFieldResolver('Materiau', 'linked_materials',
|
|
$registry->addFieldResolver('Materiau', 'linked_materials',
|
|
|
|
+ // $builder->compose(
|
|
|
|
+ // $builder->produce('entity_reference')
|
|
|
|
+ // ->map('entity', $builder->fromParent())
|
|
|
|
+ // ->map('field', $builder->fromValue('field_linked_materials')))
|
|
$builder->compose(
|
|
$builder->compose(
|
|
- $builder->produce('entity_reference')
|
|
|
|
- ->map('entity', $builder->fromParent())
|
|
|
|
- ->map('field', $builder->fromValue('field_linked_materials'))
|
|
|
|
- ));
|
|
|
|
|
|
+ $builder->callback(function($parent, $args){
|
|
|
|
+ $linkedmaterials = $parent->get('field_linked_materials')->getValue();
|
|
|
|
+ $nids = [];
|
|
|
|
+ foreach ($linkedmaterials as $key => $value) {
|
|
|
|
+ $nids[] = $value['target_id'];
|
|
|
|
+ }
|
|
|
|
+ $lang = $parent->language()->getId();
|
|
|
|
+ $test="test";
|
|
|
|
+ return [
|
|
|
|
+ "ids" => $nids,
|
|
|
|
+ "language" => $lang
|
|
|
|
+ ];
|
|
|
|
+ }),
|
|
|
|
+ $builder->produce('entity_load_multiple')
|
|
|
|
+ ->map('type', $builder->fromValue('node'))
|
|
|
|
+ ->map('bundles', $builder->fromValue(['materiau']))
|
|
|
|
+ ->map('ids', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['ids'];
|
|
|
|
+ }))
|
|
|
|
+ ->map('language', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['language'];
|
|
|
|
+ }))
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
|
|
$registry->addFieldResolver('Materiau', 'linked_articles',
|
|
$registry->addFieldResolver('Materiau', 'linked_articles',
|
|
|
|
+ // $builder->compose(
|
|
|
|
+ // $builder->produce('entity_reference')
|
|
|
|
+ // ->map('entity', $builder->fromParent())
|
|
|
|
+ // ->map('field', $builder->fromValue('field_linked_articles')))
|
|
$builder->compose(
|
|
$builder->compose(
|
|
- $builder->produce('entity_reference')
|
|
|
|
- ->map('entity', $builder->fromParent())
|
|
|
|
- ->map('field', $builder->fromValue('field_linked_articles'))
|
|
|
|
- ));
|
|
|
|
|
|
+ $builder->callback(function($parent, $args){
|
|
|
|
+ $linkedmaterials = $parent->get('field_linked_articles')->getValue();
|
|
|
|
+ $nids = [];
|
|
|
|
+ foreach ($linkedmaterials as $key => $value) {
|
|
|
|
+ $nids[] = $value['target_id'];
|
|
|
|
+ }
|
|
|
|
+ $lang = $parent->language()->getId();
|
|
|
|
+ $test="test";
|
|
|
|
+ return [
|
|
|
|
+ "ids" => $nids,
|
|
|
|
+ "language" => $lang
|
|
|
|
+ ];
|
|
|
|
+ }),
|
|
|
|
+ $builder->produce('entity_load_multiple')
|
|
|
|
+ ->map('type', $builder->fromValue('node'))
|
|
|
|
+ ->map('bundles', $builder->fromValue(['materiau']))
|
|
|
|
+ ->map('ids', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['ids'];
|
|
|
|
+ }))
|
|
|
|
+ ->map('language', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['language'];
|
|
|
|
+ }))
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
|
|
$registry->addFieldResolver('Materiau', 'memo',
|
|
$registry->addFieldResolver('Materiau', 'memo',
|
|
$builder->produce('property_path')
|
|
$builder->produce('property_path')
|
|
@@ -557,6 +605,7 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
|
|
->map('type', $builder->fromValue('node'))
|
|
->map('type', $builder->fromValue('node'))
|
|
// ->map('bundles', $builder->fromValue(['thematique']))
|
|
// ->map('bundles', $builder->fromValue(['thematique']))
|
|
->map('id', $builder->fromArgument('id'))
|
|
->map('id', $builder->fromArgument('id'))
|
|
|
|
+ ->map('language', $builder->fromArgument('lang'))
|
|
);
|
|
);
|
|
|
|
|
|
$registry->addFieldResolver('Thematique', 'id',
|
|
$registry->addFieldResolver('Thematique', 'id',
|
|
@@ -621,9 +670,33 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
|
|
// https://github.com/drupal-graphql/graphql/blob/8.x-4.x/doc/SUMMARY.md
|
|
// https://github.com/drupal-graphql/graphql/blob/8.x-4.x/doc/SUMMARY.md
|
|
// https://blog.chrismitchellonline.com/posts/custom_graphql_data/
|
|
// https://blog.chrismitchellonline.com/posts/custom_graphql_data/
|
|
$registry->addFieldResolver('Thematique', 'linked_materials',
|
|
$registry->addFieldResolver('Thematique', 'linked_materials',
|
|
- $builder->produce('entity_reference')
|
|
|
|
- ->map('entity', $builder->fromParent())
|
|
|
|
- ->map('field', $builder->fromValue('field_linked_materials'))
|
|
|
|
|
|
+ // $builder->produce('entity_reference')
|
|
|
|
+ // ->map('entity', $builder->fromParent())
|
|
|
|
+ // ->map('field', $builder->fromValue('field_linked_materials'))
|
|
|
|
+ $builder->compose(
|
|
|
|
+ $builder->callback(function($parent, $args){
|
|
|
|
+ $linkedmaterials = $parent->get('field_linked_materials')->getValue();
|
|
|
|
+ $nids = [];
|
|
|
|
+ foreach ($linkedmaterials as $key => $value) {
|
|
|
|
+ $nids[] = $value['target_id'];
|
|
|
|
+ }
|
|
|
|
+ $lang = $parent->language()->getId();
|
|
|
|
+ $test="test";
|
|
|
|
+ return [
|
|
|
|
+ "ids" => $nids,
|
|
|
|
+ "language" => $lang
|
|
|
|
+ ];
|
|
|
|
+ }),
|
|
|
|
+ $builder->produce('entity_load_multiple')
|
|
|
|
+ ->map('type', $builder->fromValue('node'))
|
|
|
|
+ ->map('bundles', $builder->fromValue(['materiau']))
|
|
|
|
+ ->map('ids', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['ids'];
|
|
|
|
+ }))
|
|
|
|
+ ->map('language', $builder->callback(function($parent, $args){
|
|
|
|
+ return $parent['language'];
|
|
|
|
+ }))
|
|
|
|
+ )
|
|
);
|
|
);
|
|
|
|
|
|
$registry->addFieldResolver('Thematique', 'images',
|
|
$registry->addFieldResolver('Thematique', 'images',
|