🇺🇸United States @davedg629

Account created on 23 May 2008, over 16 years ago
#

Recent comments

🇺🇸United States davedg629

I tried the workarounds proposed in #8 and #26. They worked for some images, but not others and I couldn't figure out why.

I implemented the patch from #27 and it's working for all images I tested..

🇺🇸United States davedg629

Replaced patch from #2 with patch from #9 and works great.

Thank you!

🇺🇸United States davedg629

I tested the fix from #16 and it worked.

The clicking of "original" didn't work before #16, so it isn't an issue created by #16.

🇺🇸United States davedg629

This patch worked for me. Thanks!

🇺🇸United States davedg629

This patch worked for me.

Seemed to be a conflict with CKEditor5 Fullscreen module, as uninstalled that module also resolved the issue.

🇺🇸United States davedg629

I'm having the same issue when aggregation is enabled.

I have two other CKEditor modules enabled: CKEditor IndentBlock and CKEditor5 Fullscreen .

I uninstalled CKEditor5 Fullscreen and the issue was resolved.

I then re-installed CKEditor5 Fullscreen and uninstalled CKEditor IndentBlock and the issue was NOT resolved.

🇺🇸United States davedg629

I just took another look at this module and confirmed it does work with the workaround explained in #12. The workaround is only required after an image has been resized AND the node has been saved.

The workaround is just a click of a button to reset the image "original" dimensions. Maybe it's more complicated than this, but could some javascript code be written that triggers the reset to "original" dimensions for the user whenever they grab the image frame to resize it?

🇺🇸United States davedg629

Thanks for checking this.

So turns out there is an issue where if you have a large inline image in one of the nested text editors, it causes issues. To fix, I added this CSS which limits the width of the inline images to 800px wide.

.ck.ck-editor__editable .image-inline {
  max-width: 800px;
}
🇺🇸United States davedg629

I'm on Drupal 10.3.2 and the CSS code from #38 no longer works. I applied the patch (Merge request !5728), but that didn't do anything (although I see the changes from the patch were made to the core files).

Is there a fix for Drupal 10.3?

🇺🇸United States davedg629

The issue in Windows/Firefox has been resolved with the recent updates. Thank you!

🇺🇸United States davedg629

Patch works great. Tested it on an environment where I had already saved the config page and one where I had not yet saved the config page.

🇺🇸United States davedg629

@JOINSO - The recent change that CKEditor has made to the way you install the package has added another layer of complexity to this migration.

I don't think you can just install the .zip file from the CDN link into the libraries folder. You need to create an importmap so that the various plugins and the "ClassicEditor" itself can be imported into the ckeditor5.js file:

		<script type="importmap">
		{
			"imports": {
				"ckeditor5": "https://cdn.ckeditor.com/ckeditor5/42.0.1/ckeditor5.js",
				"ckeditor5/": "https://cdn.ckeditor.com/ckeditor5/42.0.1/"
			}
		}
		</script>

Additionally, the ckeditor5.js file will need to be edited to work with the new installation method as the current ckeditor5.js file does not.

I wish I could help, but I've already spent too much time trying to get this to work and I think we're just going to run with CKEditor4 until someone more knowledgeable figures it out and provides complete documentation on how to upgrade.

I hope you get some help and if I decide to spend more time on this and actually figure something out, I'll be sure to post what I learned here.

🇺🇸United States davedg629

For the patch in #6, is there any reason the parent::deliver() code on line 90 was updated to include $required_derivative_scheme but the same parent::deliver() code on line 102 was not updated?

I assume it needs to be updated in both places. I've attached a patch that includes both updates and it's working for me.

🇺🇸United States davedg629

I've done some more research on this and as far as Pantheon hosted sites go, I'm almost positive the issue is described in their documentation here under "Persistent Temporary Path Workaround": https://docs.pantheon.io/guides/filesystem/tmp#persistent-temporary-path...

That said, I can't get the workaround to work. Here's what I've done:

1. Created a patch (attached) that allows you to set the root of the temporary directory in settings.php.
2. Added the following to settings.php to override the temp directory that the module uses: $config['single_content_sync']['temp_root'] = 'private://tmp/';
3. I've created the directory at sites/default/files/private/tmp. I also created sites/default/files/private/tmp/export/zip and sites/default/files/private/tmp/import/zip.

When I try to import a .zip file, I get this error: The content file in YAML format could not be found.

Not sure why this error is happening. Either the override in settings.php is not the correct path or there is something else the module is doing that I don't understand.

If anyone has any ideas, please let me know. Otherwise I'll be hoping for a new version of the module that doesn't require the creation of files.

🇺🇸United States davedg629

@Joseph.olstad - This has nothing to do with filters. The image upload button needs an "image upload adapter" to actually upload the file somewhere and return a URL that can then be displayed by the editor.

🇺🇸United States davedg629

@Joseph.olstad - No, I haven't tried it without any filters. And I'm not getting any js errors in the console.

🇺🇸United States davedg629

Spent some more time looking into implementing an image upload adapter and it's beyond me. If you want to upgrade to CKEditor 5 and be able to upload images inline with content, you'll need to figure this piece out. At this time, I can't find any modules or code that solves the problem.

🇺🇸United States davedg629

A patch would be great. Thanks for your responsiveness!

🇺🇸United States davedg629

Ok, so I believe the issue is explained in Pantheon's doc here: https://docs.pantheon.io/symlinks-assumed-write-access

Essentially, the module is trying to write files to directories outside of the standard Drupal files directory (sites/default/files). For Pantheon hosted sites, Drupal does not have write access to any directories except sites/default/files.

Would it be possible to change the directories this module writes files to so any files are written to a directory within sites/default/files?

🇺🇸United States davedg629

I'm getting this same error, but only in the Test (staging) and Live environments of a Pantheon hosted site. Here's the full output from the error log:

Message:

Drupal\Core\File\Exception\FileNotExistsException: File 'temporary://import/zip/794c2c1d-c6ff-4e00-b3ce-e26f06b925a3/assets/athletics_images/5.2_planning_0.jpg' could not be copied because it does not exist. in Drupal\Core\File\FileSystem->prepareDestination() (line 462 of /code/web/core/lib/Drupal/Core/File/FileSystem.php).

Backtrace:

#0 /code/web/core/lib/Drupal/Core/File/FileSystem.php(382): Drupal\Core\File\FileSystem->prepareDestination('temporary://imp...', 'public://athlet...', 1)
#1 /code/web/modules/contrib/single_content_sync/src/ContentImporter.php(438): Drupal\Core\File\FileSystem->move('temporary://imp...', 'public://athlet...', 1)
#2 /code/web/modules/contrib/single_content_sync/src/ContentBatchImporter.php(31): Drupal\single_content_sync\ContentImporter->importAssets('temporary://imp...', 'assets/athletic...')
#3 /code/web/core/includes/batch.inc(296): Drupal\single_content_sync\ContentBatchImporter::batchImportAssets('temporary://imp...', 'assets/athletic...', Array)
#4 /code/web/core/includes/batch.inc(138): _batch_process()
#5 /code/web/core/includes/batch.inc(94): _batch_do()
#6 /code/web/core/modules/system/src/Controller/BatchController.php(52): _batch_page(Object(Symfony\Component\HttpFoundation\Request))
#7 [internal function]: Drupal\system\Controller\BatchController->batchPage(Object(Symfony\Component\HttpFoundation\Request))
#8 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#9 /code/web/core/lib/Drupal/Core/Render/Renderer.php(627): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#10 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#11 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#12 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#13 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#14 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#15 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#16 /code/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#17 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#18 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#20 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#21 /code/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#22 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#23 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#24 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#25 {main}

🇺🇸United States davedg629

Did some more investigating and this issue is only happening in my Stage (test) and Live environments. It works fine on my local Lando environment and in the Dev environment. The site is hosted by Pantheon.

I think it has something to do with this issue 💬 AJAX HTTP Error Postponed: needs info as now I'm getting the same AJAX error reported there. Feel free to close this issue.

🇺🇸United States davedg629

@nicrodgers (#50) - I'm not experiencing this issue.

I've gone through the migration process as described by @megachriz (thank you).

The last thing that is giving me trouble is getting the image upload button to work. I'd rather not pay for the CKBox or CKFinder plugins. Has anyone gotten the "Simple upload adapter" to work? https://ckeditor.com/docs/ckeditor5/latest/features/images/image-upload/...

I haven't yet fully dived into it, but it doesn't look all that simple to implement. If I'm able to figure it out, I'll share what I learned here.

🇺🇸United States davedg629

I upgraded to Drupal 10.2.5 and I'm not seeing any issues. I'm not using any patches though. I added the CSS from #38 to my theme using the method described in #43.

🇺🇸United States davedg629

I was able to resolve this issue by following the steps in #9 here: https://www.drupal.org/project/metatag/issues/3074777#comment-13409023 🐛 Opener id is null when clicking "Add Media" button using the media library popup Active

In addition to updating the "Canonical URL" setting to "[media-url]", I also updated the Open Graph -> Page URL setting to "[media-url]".

🇺🇸United States davedg629

Fix in #9 also worked for me. Additionally, I updated the Open Graph -> Page URL setting to "[media:url]" as well, as recommended in #21.

🇺🇸United States davedg629

I installed the dev version of the module. My client tested in Firefox on her Windows computer and it's still not working for them.

🇺🇸United States davedg629

Also seeing this issue and hoping someone can provide insight.

🇺🇸United States davedg629

I was just on a Zoom call with a client and the fullscreen option did not work for them in Firefox (Windows). I'm having no issues with Firefox, Chrome, or Safari on my Mac (Sonoma 14.2.1).

🇺🇸United States davedg629

I tried using extended_html_filter and I couldn't get it to work. When I tried to save a text format that had it turned on, I get this error:

CKEditor 5 needs at least the <p> and <br> tags to be allowed to be able to function. They are not allowed by the "Extended HTML Filter" (extended_html_filter) filter.

So I add those two tags to the "Allowed HTML Tags" config and when I save I get this error:

The current CKEditor 5 build requires the following elements and attributes: 
<br> <p class> <h2 class="text-align-left text-align-center text-align-right text-align-justify"> <h3 class="text-align-left text-align-center text-align-right text-align-justify"> <h4 class="text-align-left text-align-center text-align-right text-align-justify"> <h5 class="text-align-left text-align-center text-align-right text-align-justify"> <h6 class="text-align-left text-align-center text-align-right text-align-justify"> <a class href aria-label title id target="_blank" rel> <span class="uppercase"> <ul class="purple_stars"> <strong> <em> <u> <sub> <sup> <ol reversed start> <li> <hr> <table> <tr> <td rowspan colspan> <th rowspan colspan> <thead> <tbody> <tfoot> <caption> <img src alt height width data-entity-uuid data-entity-type data-caption data-align> <drupal-media data-entity-type data-entity-uuid alt data-caption data-align data-media-width>
The following elements are not supported: 
<a hreflang> <cite> <blockquote cite> <code> <ul type> <ol type="1 A I"> <dl> <dt> <dd> <h2 id="jump-*"> <h3 id> <h4 id> <h5 id> <h6 id> <* style lang dir="ltr rtl">

There's probably some patches or something required for extended_html_filter, but I decided not to get into that.

🇺🇸United States davedg629

Also having this problem as I'm using the "CKEditor Media Resize" module, which requires that the "Limit allowed HTML tags and correct incorrect HTML" filter is turned on.

🇺🇸United States davedg629

No idea if it will help, but I've contacted the Drupal Association to see if there is anything they can do, or if they can at least point us to some process where we can get @RobLoach added as a maintainer of this project.

https://www.drupal.org/contact

If someone knows of a better way to try to get a maintainer added the project, please chime in.

🇺🇸United States davedg629

It doesn’t seem like the maintainers of this project are going to step in and release this patch. Does anyone know if there is a process or someone to contact about this to see if we can get a new, or even just temporary, maintainer in place to perform the release?

🇺🇸United States davedg629

No problem. We should add one thing for the Drush 10 instructions. You need to actually install the stable9 theme after unhiding it. Below are the updated instructions that include this step.

Upgrade to branch 3.0.x

If using Drush 11 (recommended)

  • Run drush updb
  • If errors already appeared, use either drush theme:uninstall claro stable and/or drush theme:install stable9 depending of what php error you'll get.

If using Drush 10

  • Unhide stable9 by commenting out the "hidden: true" line in web/core/themes/stable9/stable9.info.yml
  • Go to Appearance and install the Stable9 theme.
  • Run database updates via the Drupal interface to complete migration.
🇺🇸United States davedg629

Can the documentation for migrating from 2.x to 3.x be updated? This line doesn't seem to work for anyone:

Run updates via drupal interface if using drush 10 or less.

I feel like the following would be more clear.

Upgrade to branch 3.0.x

If using Drush 11 (recommended)

  • Run drush updb
  • If errors already appeared, use either drush theme:uninstall claro stable and/or drush theme:install stable9 depending of what php error you'll get.

If using Drush 10

  • Unhide stable9 by commenting out the "hidden: true" line in web/core/themes/stable9/stable9.info.yml
  • Run database updates via the Drupal interface to complete migration.
🇺🇸United States davedg629

I'm getting this same issue (media library pop-up not working) after upgrade from 8.x-1.26 to 2.0.0. I'm getting a similar error to the one posted in the original summary of this issue:

StatusText: error
ResponseText: The website encountered an unexpected error. Please try again later.InvalidArgumentException: The opener ID parameter is required and must be a string. in Drupal\media_library\MediaLibraryState-&gt;validateRequiredParameters() (line 143 of core/modules/media_library/src/MediaLibraryState.php).

I'm testing with Drupal 9.5.11 and PHP 8.1.

I've downgraded to 8.x-1.26 for now to resolve the issue.

🇺🇸United States davedg629

Ok, thanks. If you would like me to post the error in that thread, let me know.

🇺🇸United States davedg629

It's been over a month since a working patch was posted. Is one of the maintainers available to get this patch released?

🇺🇸United States davedg629

I tested the patch in #53 and it prevents the accumulation of empty p tags, but it is now adding an empty p tag before each media embed that is wrapped in a link/a tag.

In other words, the code should look like this:

<p><a href="#">[drupal embed]</a></p>

But it looks like this:

<p>&nbsp;</p>
<a href="#">[drupal embed]</a>

But like I said, this patch is an improvement as additional p tags aren't added every time you save the node like before.

🇺🇸United States davedg629

Thank you, this is the info I needed!

🇺🇸United States davedg629

Both Image API Optimize WebP ( https://www.drupal.org/project/imageapi_optimize_webp ) and WebP fallback image ( https://www.drupal.org/project/wpf ) have put out new releases in the past month or so.

I'm thinking about just using core webp support and setting up my responsive image styles so the fallback image is an image style that is not converted to webp. I think this would be a pretty good solution as none of my site editors are going to directly upload an image in webp format. It would also prevent me from having to use one of the above contrib modules, which each have their own set of issues.

I'm also wondering if I even need to worry about fallback images. Browser support for webp is almost universal. The only relevant browsers not supporting webp are IE 11 and Safari (Catalina OS or earlier). Hard to even call these relevant anymore, but there is some usage according to caniuse.com: https://caniuse.com/webp.

Interested to hear any opinions about what approaches they are taking to implement WebP support.

🇺🇸United States davedg629

Just want to confirm that the issue I described in #9 and #10 was due to the fact that I had not run the latest database update for the module. I don't see any reason not to go forward with releasing this patch.

🇺🇸United States davedg629

Hmm, so somehow all of the "cloneable entities" were disabled in my configuration here: /admin/config/system/entity-clone/cloneable-entities.

I re-enabled the appropriate cloneable entities, re-added the patch, and I didn't lose the configuration this time. Not sure why that happened as I surely did not change that config. Maybe someone else can test and confirm this wasn't an issue for them.

🇺🇸United States davedg629

I added the patch to my installation, but when I try to clone a node, none of the referenced entities are listed with checkboxes that will determine if they should be cloned or not.

Here's what I'm seeing after the patch. You can see the options to clone the referenced entities are missing.

And here's what I'm seeing without the patch.

🇺🇸United States davedg629

Thanks for looking at this and providing a detailed response.

🇺🇸United States davedg629

That worked beautifully, thank you. I updated the Site Builders guide here accordingly: https://www.drupal.org/docs/contributed-modules/image-optimize/site-buil...

🇺🇸United States davedg629

The guide does not indicate how to optimize images that were previously uploaded before installing/configuring Image Optimize. The solution is to flush your image styles, which might not be obvious to many site builders.

🇺🇸United States davedg629

Agreed, but I think it should go a step further than just the "Enable" checkbox setting in the UI. As far as I can tell, Shield can be disabled in three ways:

1. Uncheck the "Enable Shield" box on the UI config page.
2. Disable Shield via settings.php: $config['shield.settings']['shield_enable'] = FALSE;
3. Set the Shield User to "null" in settings.php: $config['shield.settings']['credentials']['shield']['user'] = NULL; (this is according to Acquia's docs, I tried to use this method and it didn't work: https://docs.acquia.com/cloud-platform/arch/security/nonprod/)

If the Shield module is disabled using any of the above methods, Acquia Purge should recognize that and not display the warning.

🇺🇸United States davedg629

Couple things to add here in case others are having issues getting this module to work:

1. When you follow the instructions to set up the Service Account in Google, make sure to add the user that is created (google gives you an email address to use) to your Google Analytics account.

2. You need to enable the Google Analytics Reporting API for your Google API project. If you turn on database logging, you'll get a 403 error when you run cron if you haven't enabled the API. The error includes a link to enable the API.

🇺🇸United States davedg629

Also getting the configuration form error and this patch resolved it for me.

Production build 0.71.5 2024