-
Notifications
You must be signed in to change notification settings - Fork 31
Description
Description
I'm running into the following exception when trying to set the value for CKEditor field programmatically in a private plugin:
TypeError: craft\ckeditor\data\Markup::__construct(): Argument #2 ($siteId) must be of type int, null given, called in /var/www/html/vendor/craftcms/ckeditor/src/data/FieldData.php on line 204 and defined in /var/www/html/vendor/craftcms/ckeditor/src/data/Markup.php:26
This seems to happen because in my code, I'm calling HtmlField::normalizeValue($fieldValue) without the second $element param, which defaults to null in that method.
The HtmlField::normalizeValue() method then ends up calling the HtmlField::createFieldData() with a null value for the $siteId param (since there is no element), which finally ends up causing that type error in the craft\ckeditor\data\Markup class, as it ends up being instantiated from the FieldData::addContentChunk() method with a null value for the $siteId param, but in the Markup class the $siteId param is typecast as int only.
Here is the full stack trace for the error:
Stack trace:
#0 /var/www/html/vendor/craftcms/ckeditor/src/data/FieldData.php(204): craft\ckeditor\data\Markup->__construct()
#1 /var/www/html/vendor/craftcms/ckeditor/src/data/FieldData.php(145): craft\ckeditor\data\FieldData->addContentChunk()
#2 /var/www/html/vendor/craftcms/ckeditor/src/data/FieldData.php(93): craft\ckeditor\data\FieldData->parse()
#3 /var/www/html/vendor/craftcms/ckeditor/src/Field.php(192): craft\ckeditor\data\FieldData->getChunks()
#4 [internal function]: craft\ckeditor\Field::{closure:{closure:craft\ckeditor\Field::entryManager():185}:186}()
#5 /var/www/html/vendor/craftcms/ckeditor/src/Field.php(186): array_map()
#6 [internal function]: craft\ckeditor\Field::{closure:craft\ckeditor\Field::entryManager():185}()
#7 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(187): call_user_func()
#8 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(785): craft\elements\NestedElementManager->getValue()
#9 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(700): craft\elements\NestedElementManager->saveNestedElements()
#10 /var/www/html/vendor/craftcms/ckeditor/src/Plugin.php(97): craft\elements\NestedElementManager->maintainNestedElements()
#11 [internal function]: craft\ckeditor\Plugin->{closure:craft\ckeditor\Plugin::init():93}()
#12 /var/www/html/vendor/yiisoft/yii2/base/Event.php(312): call_user_func()
#13 /var/www/html/vendor/yiisoft/yii2/base/Component.php(654): yii\base\Event::trigger()
#14 /var/www/html/vendor/craftcms/cms/src/base/Element.php(6632): yii\base\Component->trigger()
#15 /var/www/html/vendor/craftcms/cms/src/elements/Entry.php(3000): craft\base\Element->afterPropagate()
#16 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(4092): craft\elements\Entry->afterPropagate()
#17 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1253): craft\services\Elements->{closure:craft\services\Elements::_saveElementInternal():3817}()
#18 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(3817): craft\services\Elements->ensureBulkOp()
#19 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1339): craft\services\Elements->_saveElementInternal()
#20 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(822): craft\services\Elements->saveElement()
#21 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(700): craft\elements\NestedElementManager->saveNestedElements()
#22 /var/www/html/vendor/craftcms/cms/src/fields/Matrix.php(1564): craft\elements\NestedElementManager->maintainNestedElements()
#23 /var/www/html/vendor/craftcms/cms/src/base/Element.php(6627): craft\fields\Matrix->afterElementPropagate()
#24 /var/www/html/vendor/craftcms/cms/src/elements/Entry.php(3000): craft\base\Element->afterPropagate()
#25 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(4092): craft\elements\Entry->afterPropagate()
#26 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1253): craft\services\Elements->{closure:craft\services\Elements::_saveElementInternal():3817}()
#27 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(3817): craft\services\Elements->ensureBulkOp()
#28 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1339): craft\services\Elements->_saveElementInternal()
#29 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(822): craft\services\Elements->saveElement()
#30 /var/www/html/vendor/craftcms/cms/src/elements/NestedElementManager.php(700): craft\elements\NestedElementManager->saveNestedElements()
#31 /var/www/html/vendor/craftcms/cms/src/fields/Matrix.php(1564): craft\elements\NestedElementManager->maintainNestedElements()
#32 /var/www/html/vendor/craftcms/cms/src/base/Element.php(6627): craft\fields\Matrix->afterElementPropagate()
#33 /var/www/html/vendor/craftcms/cms/src/elements/Entry.php(3000): craft\base\Element->afterPropagate()
#34 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(4092): craft\elements\Entry->afterPropagate()
#35 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1253): craft\services\Elements->{closure:craft\services\Elements::_saveElementInternal():3817}()
#36 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(3817): craft\services\Elements->ensureBulkOp()
#37 /var/www/html/vendor/craftcms/cms/src/services/Elements.php(1339): craft\services\Elements->_saveElementInternal()
#38 /var/www/html/plugins/escape-export-import-plugin/src/services/Import.php(104): craft\services\Elements->saveElement()
#39 /var/www/html/plugins/escape-export-import-plugin/src/queue/jobs/ImportElementsJob.php(100): escape\exportimport\services\Import->importElement()
#40 /var/www/html/vendor/yiisoft/yii2-queue/src/Queue.php(251): escape\exportimport\queue\jobs\ImportElementsJob->execute()
#41 /var/www/html/vendor/yiisoft/yii2-queue/src/cli/Queue.php(149): yii\queue\Queue->handleMessage()
#42 /var/www/html/vendor/craftcms/cms/src/queue/Queue.php(192): yii\queue\cli\Queue->handleMessage()
#43 /var/www/html/vendor/craftcms/cms/src/queue/Queue.php(167): craft\queue\Queue->executeJob()
#44 [internal function]: craft\queue\Queue->{closure:craft\queue\Queue::run():165}()
#45 /var/www/html/vendor/yiisoft/yii2-queue/src/cli/Queue.php(116): call_user_func()
#46 /var/www/html/vendor/craftcms/cms/src/queue/Queue.php(165): yii\queue\cli\Queue->runWorker()
#47 /var/www/html/vendor/craftcms/cms/src/controllers/QueueController.php(98): craft\queue\Queue->run()
#48 /var/www/html/vendor/craftcms/cms/src/controllers/QueueController.php(118): craft\controllers\QueueController->actionRun()
#49 [internal function]: craft\controllers\QueueController->actionRetry()
#50 /var/www/html/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
#51 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams()
#52 /var/www/html/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction()
#53 /var/www/html/vendor/craftcms/cms/src/web/Application.php(360): yii\base\Module->runAction()
#54 /var/www/html/vendor/craftcms/cms/src/web/Application.php(659): craft\web\Application->runAction()
#55 /var/www/html/vendor/craftcms/cms/src/web/Application.php(322): craft\web\Application->_processActionRequest()
#56 /var/www/html/vendor/yiisoft/yii2/base/Application.php(384): craft\web\Application->handleRequest()
#57 /var/www/html/web/index.php(12): yii\base\Application->run()
#58 {main} {"memory":32652760,"exception":"[object] (TypeError(code: 0): craft\\ckeditor\\data\\Markup::__construct(): Argument #2 ($siteId) must be of type int, null given, called in /var/www/html/vendor/craftcms/ckeditor/src/data/FieldData.php on line 204 at /var/www/html/vendor/craftcms/ckeditor/src/data/Markup.php:26)"}
Steps to reproduce
Additional info
- Craft version: 5.8.23
- PHP version:
- Database driver & version:
- Plugins & versions: CKEditor 4.11.0