Tinymce 添加属性以插入Umbraco RTE的图像对话框或创建自定义数据类型

Tinymce 添加属性以插入Umbraco RTE的图像对话框或创建自定义数据类型,tinymce,umbraco,Tinymce,Umbraco,如何向umbraco Richtext Editor上的“当前插入图像”对话框添加属性 我真正想要的是让内容编辑器选择图像并设置它们的类,也许还可以选择这是否是lightbox图像。若用户选择lighbox选项,那个么超链接将添加一些额外的属性,比如数据rel。如果可能的话,我甚至希望能够修改由内容编辑器添加的图像url 输出应该如下所示 <a href="/media/2813/DSC_2615.JPG" data-rel="prettyPhoto[gal-3-col]" >

如何向umbraco Richtext Editor上的“当前插入图像”对话框添加属性

我真正想要的是让内容编辑器选择图像并设置它们的类,也许还可以选择这是否是lightbox图像。若用户选择lighbox选项,那个么超链接将添加一些额外的属性,比如数据rel。如果可能的话,我甚至希望能够修改由内容编辑器添加的图像url

输出应该如下所示

<a href="/media/2813/DSC_2615.JPG" data-rel="prettyPhoto[gal-3-col]" >    
   <img src="http://domain.com/imageGen.ashx?
   image=%2fmedia%2f2813%2fDSC_2615.JPG&amp;width=420" alt="DSC_2615" title="DSC_2615" 
   class="alignright">
</a>


我发现这个非常有用的链接解决了我一半的问题,但我不知道如何继续

默认的umbraco tinymce添加图像界面是

<plugin loadOnFrontend="false">umbracoimg</plugin>
umbracoimg
我能够修改它以在图像选择界面中显示附加字段,然后呈现我想要的标记

我编辑了\umbraco\plugins\tinymce3\insertImage.aspx,在那里添加了我的字段和一些jquery逻辑:

<ui:PropertyPanel id="pp_desc" runat="server" Text="Description">
    <input type="text" id="title" style="width: 300px"/>
</ui:PropertyPanel>
...

...
然后,如果要添加自定义属性,可能需要将它们添加到\config\umbracoSettings.config

<!-- what attributes that are allowed in the editor on an img tag -->
<allowedAttributes>src,alt,title,border,class,style,align,id,name,onclick,usemap</allowedAttributes>

src、alt、title、border、class、style、align、id、name、onclick、usemap
和\config\tinyMceConfig.config

<validElements>
<![CDATA[+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],
-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],
img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel],
-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],
-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],
thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],
-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],
-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align],-h2[id|dir|class|align],
-h3[id|dir|class|align],-h4[id|dir|class|align],-h5[id|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],
dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],
param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],code[*]]]>
  </validElements>

然后我修改了负责呈现html的.js,该html将添加到tinymce编辑器中:

\umbraco_client\tinymce3\plugins\umbracoimg\js\image.js

ed.execCommand('mceInsertContent', false, '<div id="__dimps_width" class="img-with-text"><img id="__mce_tmp" /><p id="__dimps_desc">description</p></div>', { skip_undo: 1 });
ed.dom.setAttribs('__mce_tmp', args);
ed.dom.setAttrib('__mce_tmp', 'id', '');
ed.dom.setAttribs('__dimps_width', {style: 'width: ' + nl.width.value + 'px;'});
...
\umbraco\u客户端\tinymce3\plugins\umbracoimg\js\image.js
ed.execCommand('mceInsertContent',false,

description

,{skip\u undo:1}); ed.dom.setAttribs(“mce tmp”,参数); ed.dom.setAttrib(“mce tmp”、“id”和“); setAttribs(“'uuu dimps'uwidth',{style:'width:'+nl.width.value+'px;'}); ...
有一点很重要:所有内容都被缓存和绑定,因此为了确保您的更改已应用,请从\app\u data\TEMP\ClientDependency\中删除所有文件,并使用incognito browser的新实例。你也许可以在某个地方禁用它,但我刚刚删除了缓存


翁布拉科·蒂尼姆斯没有魔法。只是一堆.aspx和.js代码。根据您的需要进行修改。

您知道如何做到这一点吗?我也想这么做!(在Umbraco 5/Jupiter上)并非如此:(…我发现的是如何向内容编辑器可能添加到richtexteditor(RTE)中的任何内容添加类名)框使用Umbraco提供的样式下拉框。让我知道这是否是您希望我解释的内容!您如何知道属性值在nl对象上的外观?例如alt.text是什么?