2017-04-12 4 views
1

Dans Plone 5, vous pouvez utiliser des modèles html dans l'éditeur TinyMCE en enregistrant le plugin template. Les modèles sont des extraits html résidant dans le système de fichiers qui sont également enregistrés dans le registre de ressources plone. Voici un exemple:Comment accéder à un template TinyMCE en code python ou TAL?

<?xml version="1.0"?> 
<registry> 
    <record name="plone.templates" interface="Products.CMFPlone.interfaces.controlpanel.ITinyMCESchema" field="templates"> 
    <field type="plone.registry.field.Text"> 
     <default></default> 
     <description xmlns:ns0="http://xml.zope.org/namespaces/i18n" ns0:domain="plone" ns0:translate="help_tinymce_templates"> 
     Enter the list of templates in json format http://www.tinymce.com/wiki.php/Plugin:template 
     </description> 
     <required>False</required> 
     <title xmlns:ns0="http://xml.zope.org/namespaces/i18n" ns0:domain="plone" ns0:translate="label_tinymce_templates">Templates</title> 
    </field> 
    <value>[ 
     {"title": "Template 1", "url": "++theme++mytheme/tinymce-templates/tmpl1.html"}, 
     {"title": "Template 2", "url": "++theme++mytheme/tinymce-templates/tmpl2.html"} 
     ]</value> 
    </record> 
    <record name="plone.custom_plugins" interface="Products.CMFPlone.interfaces.controlpanel.ITinyMCESchema" field="custom_plugins"> 
     <field type="plone.registry.field.List"> 
     <default/> 
     <description xmlns:ns0="http://xml.zope.org/namespaces/i18n" ns0:domain="plone" ns0:translate=""> 
      Enter a list of custom plugins which will be loaded in the editor. Format is pluginname|location, one per line. 
     </description> 
     <required>False</required> 
     <title xmlns:ns0="http://xml.zope.org/namespaces/i18n" ns0:domain="plone" ns0:translate="">Custom plugins</title> 
     <value_type type="plone.registry.field.TextLine"/> 
     </field> 
     <value> 
     <element>template|+plone+static/components/tinymce-builded/js/tinymce/plugins/template</element> 
     </value> 
    </record> 
</registry> 

Ma question est: Comment accéder aux modèles à partir du code python ou de TAL? La première possibilité est de lire le fichier depuis le système de fichiers. Mais alors la couche de sécurité sera passée. La seconde consiste à demander les modèles par http. Dans ce cas, la sécurité est prise en compte. Mais c'est plutôt cher. Existe-t-il un moyen d'accéder directement aux modèles (ressources plones) sans contourner la sécurité?

+0

Vous aurez plus de chance d'obtenir des réponses en postant sur notre forum, community.plone.org, même si j'ai posté un lien sur le forum à votre question ici –

Répondre

0

Vous pouvez accéder aux modèles directement par l'URL. Quelque chose comme:

portal.restrictedTraverse('++theme++mytheme/tinymce-templates/tmpl2.html') 

de même pour les modèles de page.