From 09ca35e8335b4f34f4e453cf921f689c6858983d Mon Sep 17 00:00:00 2001 From: Matt Stein Date: Mon, 12 Nov 2018 16:30:29 -0800 Subject: [PATCH] Add CraftQL support for `text` and `html` fields. --- src/Doxter.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Doxter.php b/src/Doxter.php index 75c4b43..0066719 100644 --- a/src/Doxter.php +++ b/src/Doxter.php @@ -39,6 +39,32 @@ function(RegisterComponentTypesEvent $event) } ); + if (class_exists(\markhuot\CraftQL\CraftQL::class)) + { + Event::on( + DoxterField::class, + 'craftQlGetFieldSchema', + function($event) + { + $event->handled = true; + + $outputSchema = $event->schema->createObjectType(ucfirst($event->sender->handle).'DoxterFieldData'); + + $outputSchema->addStringField('text') + ->resolve(function($root) { + return (string)$root->getRaw(); + }); + + $outputSchema->addStringField('html') + ->resolve(function($root) { + return (string)$root->getHtml(); + }); + + $event->schema->addField($event->sender)->type($outputSchema); + } + ); + } + $this->name = $this->getSettings()->pluginAlias; $this->hasCpSection = $this->getSettings()->enableCpTab; $this->hasCpSettings = true;