Is there any 'changes' with newest Plone / TinyMCE ? I would like to set default upload folder for images (when added from TinyMCE ), or even better: Have different upload folders depending on Content Type
Here is example from one of my projects:
from Acquisition import aq_get
from plone.base.interfaces import IPatternsSettings
from plone.uuid.interfaces import IUUID
from Products.CMFPlone.patterns.settings import PatternSettingsAdapter
from Products.CMFPlone.utils import get_portal
from zope.interface import implementer
import json
@implementer(IPatternsSettings)
class CustomPatternSettingsAdapter(PatternSettingsAdapter):
def tinymce(self):
"""Use a folder 'bilder' as initial target to upload and select images (and links)."""
orig_config = super().tinymce()
images_folder = aq_get(self.context, "bilder", None)
if not images_folder or images_folder.portal_type != "Folder":
return orig_config
config = json.loads(orig_config["data-pat-tinymce"])
images_path = "/".join(images_folder.getPhysicalPath())
images_uuid = IUUID(images_folder)
images_favorite = {"path": images_path, "title": "Bilder"}
portal = get_portal()
portal_url = portal.absolute_url()
images_current_path = images_folder.absolute_url()[len(portal_url) :]
# We need to set all three for upload to work properly.
config["upload"]["currentPath"] = images_current_path
config["relatedItems"]["basePath"] = images_path
config["upload"]["initialFolder"] = images_uuid
if "favorites" in config["relatedItems"]:
config["relatedItems"]["favorites"].insert(0, images_favorite)
return {"data-pat-tinymce": json.dumps(config)}
Registered like this:
<!-- Extend TinyCME settings to include image folders (old and new name) -->
<adapter
factory=".tinymce.CustomPatternSettingsAdapter"
for="* bgp.bgnpolicy.interfaces.IBgnPolicyLayer *"
name="plone_settings"
provides="plone.base.interfaces.IPatternsSettings"
/>
<adapter
factory=".tinymce.CustomPatternSettingsAdapter"
for="* bgp.bgnpolicy.interfaces.IBgnPolicyLayer *"
name="pattern_settings"
provides="plone.base.interfaces.IPatternsSettings"
/>
This works in production with Plone 6.0.10
1 Like
Thanks a lot (did you translate 'Bilder' to norwegian (for me) or is it danish ?
It's german