2017-04-12 6 views
1

Plone 5では、テンプレートプラグインを登録してTinyMCEエディタでhtmlテンプレートを利用できます。テンプレートは、ファイルシステムに存在するhtmlスニペットであり、plone ressourceレジストリにも登録されています。ここに例があります:PythonコードまたはTALでTinyMCEテンプレートにアクセスする方法は?

<?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> 

私の質問は:どのようにテンプレートは、PythonコードまたはTALからアクセスできますか?最初の可能性は、ファイルシステムからファイルを読み込むことです。しかし、セキュリティ層は渡されます。 2番目はhttpでテンプレートを要求することです。この場合、安全性が考慮されます。しかし、それはむしろ高価です。セキュリティをバイパスすることなく、テンプレート(ploneリソース)に直接アクセスする方法はありますか?

+0

あなたの質問へのフォーラムへのリンクを投稿しましたが、私たちのフォーラム、community.plone.orgに投稿することで、回答が得られます。 –

答えて

0

URLでテンプレートに直接アクセスできます。 のような何か:

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

同じページテンプレートに適用されます。

関連する問題