Adding an AddMedia TinyMCE plugin, that doesn't yet do anything

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-03-03 14:55:22 -08:00
parent 36fc37afd8
commit f812a4d373
7 changed files with 122 additions and 2 deletions

View File

@@ -0,0 +1,36 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>{#addmedia_dlg.title}</title>
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script type="text/javascript" src="js/addmedia.js"></script>
</head>
<body>
<form action="/Admin/Media/Create" method="post">
<div class="tabs">
<ul>
<li id="general_tab" class="current"><span><a href="#general_tab">{#addmedia_dlg.title}</a></span></li>
</ul>
</div>
<div class="panel_wrapper">
<table border="0" cellpadding="4" cellspacing="0">
<tr>
<td class="nowrap"><label for="pageTitle">{#addmedia_dlg.path_label}</label></td>
<td><input id="MediaItemPath" name="MediaItemPath" type="file" class="text" value="Browse" size="64"/></td>
</tr>
</table>
<input type="hidden" id="FolderName" name="FolderName" value="foo" />
<input type="hidden" id="MediaPath" name="MediaPath" value="foo" />
</div>
<div class="mceActionPanel">
<div style="float:left">
<input name="__RequestVerificationToken" type="hidden" value="7lDAM51YOmke7sRNx/GFjVMKaPf8QZNh7qZiEdQyNQXKKbw1DYehU/g6jNcAx6I3OGD/KDuaNlmyNIeQ/69CFpDizom9bROgo5keYyj+HcAKHtjQTRV5kNJm6SztNLwO" />
<input type="submit" name="insert" value="{#insert}" id="insert" />
</div>
<div style="float:right">
<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,68 @@
(function() {
// Load plugin specific language pack
tinymce.PluginManager.requireLangPack('dlg');
tinymce.create('tinymce.plugins.Orchard.AddMedia', {
/**
* Initializes the plugin, this will be executed after the plugin has been created.
* This call is done before the editor instance has finished it's initialization so use the onInit event
* of the editor instance to intercept that event.
*
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
* @param {string} url Absolute URL to where the plugin is located.
*/
init: function(ed, url) {
// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
ed.addCommand('mceAddMedia', function() {
ed.windowManager.open({
file: url + '/addmedia.htm',
width: 480 + parseInt(ed.getLang('addmedia.delta_width', 0)),
height: 110 + parseInt(ed.getLang('addmedia.delta_height', 0)),
inline: 1
}, {
plugin_url: url, // Plugin absolute URL
});
});
// Register example button
ed.addButton('addmedia', {
title: 'addmedia_desc',
cmd: 'mceAddMedia',
image: url + '/img/picture_add.png'
});
},
/**
* Creates control instances based in the incomming name. This method is normally not
* needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
* but you sometimes need to create more complex controls like listboxes, split buttons etc then this
* method can be used to create those.
*
* @param {String} n Name of the control to create.
* @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
* @return {tinymce.ui.Control} New control instance or null if no control was created.
*/
createControl: function(n, cm) {
return null;
},
/**
* Returns information about the plugin as a name/value array.
* The current keys are longname, author, authorurl, infourl and version.
*
* @return {Object} Name/value array containing information about the plugin.
*/
getInfo: function() {
return {
longname: 'Orchard AddMedia Plugin',
author: 'Nathan Heskew',
authorurl: 'http://orchardproject.net',
infourl: 'http://orchardproject.net',
version: '0.1'
};
}
});
// Register plugin
tinymce.PluginManager.add('addmedia', tinymce.plugins.Orchard.AddMedia);
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

View File

@@ -0,0 +1 @@
tinyMCEPopup.requireLangPack();

View File

@@ -0,0 +1,4 @@
tinyMCE.addI18n('en.addmedia_dlg',{
title:"Add Media",
path_label:"Media File Path"
});

View File

@@ -135,6 +135,17 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Scripts\plugins\addmedia\addmedia.htm" />
<Content Include="Scripts\plugins\addmedia\editor_plugin.js" />
<Content Include="Scripts\plugins\addmedia\img\picture_add.png" />
<Content Include="Scripts\plugins\addmedia\js\addmedia.js" />
<Content Include="Scripts\plugins\addmedia\langs\en_dlg.js" />
<Content Include="Scripts\plugins\searchreplace\css\searchreplace.css" />
<Content Include="Scripts\plugins\searchreplace\editor_plugin.js" />
<Content Include="Scripts\plugins\searchreplace\editor_plugin_src.js" />
<Content Include="Scripts\plugins\searchreplace\js\searchreplace.js" />
<Content Include="Scripts\plugins\searchreplace\langs\en_dlg.js" />
<Content Include="Scripts\plugins\searchreplace\searchreplace.htm" />
<Content Include="Web.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

View File

@@ -7,10 +7,10 @@
theme: "advanced",
mode: "specific_textareas",
editor_selector: "html",
plugins: "fullscreen,autoresize,searchreplace",
plugins: "fullscreen,autoresize,searchreplace,addmedia",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,addmedia,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
theme_advanced_buttons2: "",
theme_advanced_buttons3: ""
});