diff options
Diffstat (limited to 'mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage')
6 files changed, 1447 insertions, 0 deletions
diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css new file mode 100644 index 000000000..1854eca94 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css @@ -0,0 +1,182 @@ +/* Hide the advanced tab */ +#advanced_tab { + display: none; +} + +#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright { + width: 280px; +} + +#doctype, #docencoding { + width: 200px; +} + +#langcode { + width: 30px; +} + +#bgimage { + width: 220px; +} + +#fontface { + width: 240px; +} + +#leftmargin, #rightmargin, #topmargin, #bottommargin { + width: 50px; +} + +.panel_wrapper div.current { + height: 400px; +} + +#stylesheet, #style { + width: 240px; +} + +/* Head list classes */ + +.headlistwrapper { + width: 100%; +} + +.addbutton, .removebutton, .moveupbutton, .movedownbutton { + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: default; + display: block; + width: 20px; + height: 20px; +} + +#doctypes { + width: 200px; +} + +.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover { + border: 1px solid #0A246A; + background-color: #B6BDD2; +} + +.addbutton { + background-image: url('../images/add.gif'); + float: left; + margin-right: 3px; +} + +.removebutton { + background-image: url('../images/remove.gif'); + float: left; +} + +.moveupbutton { + background-image: url('../images/move_up.gif'); + float: left; + margin-right: 3px; +} + +.movedownbutton { + background-image: url('../images/move_down.gif'); + float: left; +} + +.selected { + border: 1px solid #0A246A; + background-color: #B6BDD2; +} + +.toolbar { + width: 100%; +} + +#headlist { + width: 100%; + margin-top: 3px; + font-size: 11px; +} + +#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element { + display: none; +} + +#addmenu { + position: absolute; + border: 1px solid gray; + display: none; + z-index: 100; + background-color: white; +} + +#addmenu a { + display: block; + width: 100%; + line-height: 20px; + text-decoration: none; + background-color: white; +} + +#addmenu a:hover { + background-color: #B6BDD2; + color: black; +} + +#addmenu span { + padding-left: 10px; + padding-right: 10px; +} + +#updateElementPanel { + display: none; +} + +#script_element .panel_wrapper div.current { + height: 108px; +} + +#style_element .panel_wrapper div.current { + height: 108px; +} + +#link_element .panel_wrapper div.current { + height: 140px; +} + +#element_script_value { + width: 100%; + height: 100px; +} + +#element_comment_value { + width: 100%; + height: 120px; +} + +#element_style_value { + width: 100%; + height: 100px; +} + +#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title { + width: 250px; +} + +.updateElementButton { + margin-top: 3px; +} + +/* MSIE specific styles */ + +* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton { + width: 22px; + height: 22px; +} + +textarea { + height: 55px; +} + +.panel_wrapper div.current {height:420px;}
\ No newline at end of file diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js new file mode 100644 index 000000000..31423da17 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)>/i);if(attr&&attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);for(i=0,len=bdattr.length;i<len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^["'](.*)["']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content,v,st='';c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='';if(ed.getParam('fullpage_default_xml_pi'))t.head+='<?xml version="1.0" encoding="'+ed.getParam('fullpage_default_encoding','ISO-8859-1')+'" ?>\n';t.head+=ed.getParam('fullpage_default_doctype','<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');t.head+='\n<html>\n<head>\n<title>'+ed.getParam('fullpage_default_title','Untitled document')+'</title>\n';if(v=ed.getParam('fullpage_default_encoding'))t.head+='<meta http-equiv="Content-Type" content="'+v+'" />\n';if(v=ed.getParam('fullpage_default_font_family'))st+='font-family: '+v+';';if(v=ed.getParam('fullpage_default_font_size'))st+='font-size: '+v+';';if(v=ed.getParam('fullpage_default_text_color'))st+='color: '+v+';';t.head+='</head>\n<body'+(st?' style="'+st+'"':'')+'>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
\ No newline at end of file diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js new file mode 100644 index 000000000..b0d720c98 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js @@ -0,0 +1,140 @@ +/** + * $Id: editor_plugin_src.js 827 2008-04-29 15:02:42Z spocke $ + * + * @author Moxiecode + * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. + */ + +(function() { + tinymce.create('tinymce.plugins.FullPagePlugin', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceFullPageProperties', function() { + ed.windowManager.open({ + file : url + '/fullpage.htm', + width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)), + height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)), + inline : 1 + }, { + plugin_url : url, + head_html : t.head + }); + }); + + // Register buttons + ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'}); + + ed.onBeforeSetContent.add(t._setContent, t); + ed.onSetContent.add(t._setBodyAttribs, t); + ed.onGetContent.add(t._getContent, t); + }, + + getInfo : function() { + return { + longname : 'Fullpage', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private plugin internal methods + + _setBodyAttribs : function(ed, o) { + var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i); + + if (attr && attr[1]) { + bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g); + + for(i = 0, len = bdattr.length; i < len; i++) { + kv = bdattr[i].split('='); + k = kv[0].replace(/\s/,''); + v = kv[1]; + + if (v) { + v = v.replace(/^\s+/,'').replace(/\s+$/,''); + t = v.match(/^["'](.*)["']$/); + + if (t) + v = t[1]; + } else + v = k; + + ed.dom.setAttrib(ed.getBody(), 'style', v); + } + } + }, + + _createSerializer : function() { + return new tinymce.dom.Serializer({ + dom : this.editor.dom, + apply_source_formatting : true + }); + }, + + _setContent : function(ed, o) { + var t = this, sp, ep, c = o.content, v, st = ''; + + // Parse out head, body and footer + c = c.replace(/<(\/?)BODY/gi, '<$1body'); + sp = c.indexOf('<body'); + + if (sp != -1) { + sp = c.indexOf('>', sp); + t.head = c.substring(0, sp + 1); + + ep = c.indexOf('</body', sp); + if (ep == -1) + ep = c.indexOf('</body', ep); + + o.content = c.substring(sp + 1, ep); + t.foot = c.substring(ep); + + function low(s) { + return s.replace(/<\/?[A-Z]+/g, function(a) { + return a.toLowerCase(); + }) + }; + + t.head = low(t.head); + t.foot = low(t.foot); + } else { + t.head = ''; + if (ed.getParam('fullpage_default_xml_pi')) + t.head += '<?xml version="1.0" encoding="' + ed.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n'; + + t.head += ed.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); + t.head += '\n<html>\n<head>\n<title>' + ed.getParam('fullpage_default_title', 'Untitled document') + '</title>\n'; + + if (v = ed.getParam('fullpage_default_encoding')) + t.head += '<meta http-equiv="Content-Type" content="' + v + '" />\n'; + + if (v = ed.getParam('fullpage_default_font_family')) + st += 'font-family: ' + v + ';'; + + if (v = ed.getParam('fullpage_default_font_size')) + st += 'font-size: ' + v + ';'; + + if (v = ed.getParam('fullpage_default_text_color')) + st += 'color: ' + v + ';'; + + t.head += '</head>\n<body' + (st ? ' style="' + st + '"' : '') + '>\n'; + t.foot = '\n</body>\n</html>'; + } + }, + + _getContent : function(ed, o) { + var t = this; + + o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot); + } + }); + + // Register plugin + tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin); +})();
\ No newline at end of file diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm new file mode 100644 index 000000000..d74da0d76 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm @@ -0,0 +1,577 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{#fullpage_dlg.title}</title>
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script type="text/javascript" src="js/fullpage.js"></script>
+ <link href="css/fullpage.css" rel="stylesheet" type="text/css" />
+ <base target="_self" />
+</head>
+<body id="advlink" style="display: none">
+ <form onsubmit="updateAction();return false;" name="fullpage" action="#">
+ <div class="tabs">
+ <ul>
+ <li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{#fullpage_dlg.meta_tab}</a></span></li>
+ <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#fullpage_dlg.appearance_tab}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_tab}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="meta_panel" class="panel current">
+ <fieldset>
+ <legend>{#fullpage_dlg.meta_props}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td nowrap="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>
+ <td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>
+ <td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>
+ <td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>
+ <td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>
+ <td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>
+ <td>
+ <select id="metarobots" name="metarobots">
+ <option value="">{#not_set}</option>
+ <option value="index,follow">{#fullpage_dlg.meta_index_follow}</option>
+ <option value="index,nofollow">{#fullpage_dlg.meta_index_nofollow}</option>
+ <option value="noindex,follow">{#fullpage_dlg.meta_noindex_follow}</option>
+ <option value="noindex,nofollow">{#fullpage_dlg.meta_noindex_nofollow}</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.langprops}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="docencoding">{#fullpage_dlg.encoding}</label></td>
+ <td>
+ <select id="docencoding" name="docencoding">
+ <option value="">{#not_set}</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label> </td>
+ <td>
+ <select id="doctypes" name="doctypes">
+ <option value="">{#not_set}</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>
+ <td><input type="text" id="langcode" name="langcode" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="langdir">{#fullpage_dlg.langdir}</label></td>
+ <td>
+ <select id="langdir" name="langdir">
+ <option value="">{#not_set}</option>
+ <option value="ltr">{#fullpage_dlg.ltr}</option>
+ <option value="rtl">{#fullpage_dlg.rtl}</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>
+ <td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="appearance_panel" class="panel">
+ <fieldset>
+ <legend>{#fullpage_dlg.appearance_textprops}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="fontface">{#fullpage_dlg.fontface}</label></td>
+ <td>
+ <select id="fontface" name="fontface" onchange="changedStyleField(this);">
+ <option value="">{#not_set}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="fontsize">{#fullpage_dlg.fontsize}</label></td>
+ <td>
+ <select id="fontsize" name="fontsize" onchange="changedStyleField(this);">
+ <option value="">{#not_set}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="textcolor">{#fullpage_dlg.textcolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');changedStyleField(this);" /></td>
+ <td id="textcolor_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.appearance_bgprops}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="bgimage">{#fullpage_dlg.bgimage}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bgimage" name="bgimage" type="text" value="" onchange="changedStyleField(this);" /></td>
+ <td id="bgimage_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="bgcolor">{#fullpage_dlg.bgcolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedStyleField(this);" /></td>
+ <td id="bgcolor_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.appearance_marginprops}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="leftmargin">{#fullpage_dlg.left_margin}</label></td>
+ <td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+ <td class="column1"><label for="rightmargin">{#fullpage_dlg.right_margin}</label></td>
+ <td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="topmargin">{#fullpage_dlg.top_margin}</label></td>
+ <td><input id="topmargin" name="topmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+ <td class="column1"><label for="bottommargin">{#fullpage_dlg.bottom_margin}</label></td>
+ <td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.appearance_linkprops}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="link_color">{#fullpage_dlg.link_color}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');changedStyleField(this);" /></td>
+ <td id="link_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+
+ <td class="column1"><label for="visited_color">{#fullpage_dlg.visited_color}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');changedStyleField(this);" /></td>
+ <td id="visited_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="active_color">{#fullpage_dlg.active_color}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');changedStyleField(this);" /></td>
+ <td id="active_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+
+ <td> </td>
+ <td> </td>
+
+<!-- <td class="column1"><label for="hover_color">{#fullpage_dlg.hover_color}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="hover_color" name="hover_color" type="text" value="" size="9" onchange="changedStyleField(this);" /></td>
+ <td id="hover_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td> -->
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.appearance_style}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="stylesheet">{#fullpage_dlg.stylesheet}</label></td>
+ <td><table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>
+ <td id="stylesheet_browsercontainer"> </td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="style">{#fullpage_dlg.style}</label></td>
+ <td><input id="style" name="style" type="text" value="" onchange="changedStyleField(this);" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <div id="addmenu">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><td><a href="javascript:addHeadElm('title');" onmousedown="return false;"><span>{#fullpage_dlg.add_title}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('meta');" onmousedown="return false;"><span>{#fullpage_dlg.add_meta}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('script');" onmousedown="return false;"><span>{#fullpage_dlg.add_script}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('style');" onmousedown="return false;"><span>{#fullpage_dlg.add_style}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('link');" onmousedown="return false;"><span>{#fullpage_dlg.add_link}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('base');" onmousedown="return false;"><span>{#fullpage_dlg.add_base}</span></a></td></tr>
+ <tr><td><a href="javascript:addHeadElm('comment');" onmousedown="return false;"><span>{#fullpage_dlg.add_comment}</span></a></td></tr>
+ </table>
+ </div>
+
+ <fieldset>
+ <legend>{#fullpage_dlg.head_elements}</legend>
+
+ <div class="headlistwrapper">
+ <div class="toolbar">
+ <div style="float: left">
+ <a id="addbutton" href="javascript:showAddMenu();" onmousedown="return false;" class="addbutton" title="{#fullpage_dlg.add}"></a>
+ <a href="#" onmousedown="return false;" class="removebutton" title="{#fullpage_dlg.remove}"></a>
+ </div>
+ <div style="float: right">
+ <a href="#" onmousedown="return false;" class="moveupbutton" title="{#fullpage_dlg.moveup}"></a>
+ <a href="#" onmousedown="return false;" class="movedownbutton" title="{#fullpage_dlg.movedown}"></a>
+ </div>
+ <br style="clear: both" />
+ </div>
+ <select id="headlist" size="26" onchange="updateHeadElm(this.options[this.selectedIndex].value);">
+ <option value="title_0"><title>Some title bla bla bla</title></option>
+ <option value="meta_1"><meta name="keywords">Some bla bla bla</meta></option>
+ <option value="meta_2"><meta name="description">Some bla bla bla bla bla bla bla bla bla</meta></option>
+ <option value="script_3"><script language="javascript">...</script></option>
+ <option value="style_4"><style>...</style></option>
+ <option value="base_5"><base href="." /></option>
+ <option value="comment_6"><!-- ... --></option>
+ <option value="link_7"><link href="." /></option>
+ </select>
+ </div>
+ </fieldset>
+
+ <fieldset id="meta_element">
+ <legend>{#fullpage_dlg.meta_element}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_meta_type">{#fullpage_dlg.type}</label></td>
+ <td><select id="element_meta_type">
+ <option value="name">name</option>
+ <option value="http-equiv">http-equiv</option>
+ </select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_meta_name">{#fullpage_dlg.name}</label></td>
+ <td><input id="element_meta_name" name="element_meta_name" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_meta_content">{#fullpage_dlg.content}</label></td>
+ <td><input id="element_meta_content" name="element_meta_content" type="text" value="" /></td>
+ </tr>
+ </table>
+
+ <input type="button" id="meta_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="title_element">
+ <legend>{#fullpage_dlg.title_element}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_title">{#fullpage_dlg.meta_title}</label></td>
+ <td><input id="element_title" name="element_title" type="text" value="" /></td>
+ </tr>
+ </table>
+
+ <input type="button" id="title_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="script_element">
+ <legend>{#fullpage_dlg.script_element}</legend>
+
+ <div class="tabs">
+ <ul>
+ <li id="script_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('script_props_tab','script_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>
+ <li id="script_value_tab"><span><a href="javascript:mcTabs.displayTab('script_value_tab','script_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>
+ </ul>
+ </div>
+
+ <br style="clear: both" />
+
+ <div class="panel_wrapper">
+ <div id="script_props_panel" class="panel current">
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_script_type">{#fullpage_dlg.type}</label></td>
+ <td><select id="element_script_type">
+ <option value="text/javascript">text/javascript</option>
+ <option value="text/jscript">text/jscript</option>
+ <option value="text/vbscript">text/vbscript</option>
+ <option value="text/vbs">text/vbs</option>
+ <option value="text/ecmascript">text/ecmascript</option>
+ <option value="text/xml">text/xml</option>
+ </select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_script_src">{#fullpage_dlg.src}</label></td>
+ <td><table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="element_script_src" name="element_script_src" type="text" value="" /></td>
+ <td id="script_src_pickcontainer"> </td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_script_charset">{#fullpage_dlg.charset}</label></td>
+ <td><select id="element_script_charset"><option value="">{#not_set}</option></select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_script_defer">{#fullpage_dlg.defer}</label></td>
+ <td><input type="checkbox" id="element_script_defer" name="element_script_defer" class="checkbox" /></td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="script_value_panel" class="panel">
+ <textarea id="element_script_value"></textarea>
+ </div>
+ </div>
+
+ <input type="button" id="script_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="style_element">
+ <legend>{#fullpage_dlg.style_element}</legend>
+
+ <div class="tabs">
+ <ul>
+ <li id="style_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('style_props_tab','style_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>
+ <li id="style_value_tab"><span><a href="javascript:mcTabs.displayTab('style_value_tab','style_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>
+ </ul>
+ </div>
+
+ <br style="clear: both" />
+
+ <div class="panel_wrapper">
+ <div id="style_props_panel" class="panel current">
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_style_type">{#fullpage_dlg.type}</label></td>
+ <td><select id="element_style_type">
+ <option value="text/css">text/css</option>
+ </select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_style_media">{#fullpage_dlg.media}</label></td>
+ <td><select id="element_style_media"></select></td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="style_value_panel" class="panel">
+ <textarea id="element_style_value"></textarea>
+ </div>
+ </div>
+
+ <input type="button" id="style_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="base_element">
+ <legend>{#fullpage_dlg.base_element}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_base_href">{#fullpage_dlg.href}</label></td>
+ <td><input id="element_base_href" name="element_base_href" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_base_target">{#fullpage_dlg.target}</label></td>
+ <td><input id="element_base_target" name="element_base_target" type="text" value="" /></td>
+ </tr>
+ </table>
+
+ <input type="button" id="base_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="link_element">
+ <legend>{#fullpage_dlg.link_element}</legend>
+
+ <div class="tabs">
+ <ul>
+ <li id="link_general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('link_general_tab','link_general_panel');" onmousedown="return false;">{#fullpage_dlg.general_props}</a></span></li>
+ <li id="link_advanced_tab"><span><a href="javascript:mcTabs.displayTab('link_advanced_tab','link_advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_props}</a></span></li>
+ </ul>
+ </div>
+
+ <br style="clear: both" />
+
+ <div class="panel_wrapper">
+ <div id="link_general_panel" class="panel current">
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_link_href">{#fullpage_dlg.href}</label></td>
+ <td><table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="element_link_href" name="element_link_href" type="text" value="" /></td>
+ <td id="link_href_pickcontainer"> </td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_link_title">{#fullpage_dlg.meta_title}</label></td>
+ <td><input id="element_link_title" name="element_link_title" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_link_type">{#fullpage_dlg.type}</label></td>
+ <td><select id="element_link_type" name="element_link_type">
+ <option value="text/css">text/css</option>
+ <option value="text/javascript">text/javascript</option>
+ </select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_link_media">{#fullpage_dlg.media}</label></td>
+ <td><select id="element_link_media" name="element_link_media"></select></td>
+ </tr>
+ <tr>
+ <td><label for="element_style_rel">{#fullpage_dlg.rel}</label></td>
+ <td><select id="element_style_rel" name="element_style_rel">
+ <option value="">{#not_set}</option>
+ <option value="stylesheet">Stylesheet</option>
+ <option value="alternate">Alternate</option>
+ <option value="designates">Designates</option>
+ <option value="start">Start</option>
+ <option value="next">Next</option>
+ <option value="prev">Prev</option>
+ <option value="contents">Contents</option>
+ <option value="index">Index</option>
+ <option value="glossary">Glossary</option>
+ <option value="copyright">Copyright</option>
+ <option value="chapter">Chapter</option>
+ <option value="subsection">Subsection</option>
+ <option value="appendix">Appendix</option>
+ <option value="help">Help</option>
+ <option value="bookmark">Bookmark</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="link_advanced_panel" class="panel">
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label for="element_link_charset">{#fullpage_dlg.charset}</label></td>
+ <td><select id="element_link_charset"><option value="">{#not_set}</option></select></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_link_hreflang">{#fullpage_dlg.hreflang}</label></td>
+ <td><input id="element_link_hreflang" name="element_link_hreflang" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label for="element_link_target">{#fullpage_dlg.target}</label></td>
+ <td><input id="element_link_target" name="element_link_target" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td><label for="element_style_rev">{#fullpage_dlg.rev}</label></td>
+ <td><select id="element_style_rev" name="element_style_rev">
+ <option value="">{#not_set}</option>
+ <option value="alternate">Alternate</option>
+ <option value="designates">Designates</option>
+ <option value="stylesheet">Stylesheet</option>
+ <option value="start">Start</option>
+ <option value="next">Next</option>
+ <option value="prev">Prev</option>
+ <option value="contents">Contents</option>
+ <option value="index">Index</option>
+ <option value="glossary">Glossary</option>
+ <option value="copyright">Copyright</option>
+ <option value="chapter">Chapter</option>
+ <option value="subsection">Subsection</option>
+ <option value="appendix">Appendix</option>
+ <option value="help">Help</option>
+ <option value="bookmark">Bookmark</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+
+ <input type="button" id="link_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+
+ <fieldset id="comment_element">
+ <legend>{#fullpage_dlg.comment_element}</legend>
+
+ <textarea id="element_comment_value"></textarea>
+
+ <input type="button" id="comment_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="submit" id="insert" name="update" value="{#update}" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js new file mode 100644 index 000000000..d87af1ee4 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js @@ -0,0 +1,462 @@ +tinyMCEPopup.requireLangPack(); + +var doc; + +var defaultDocTypes = + 'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' + + 'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' + + 'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' + + 'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' + + 'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' + + 'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' + + 'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'; + +var defaultEncodings = + 'Western european (iso-8859-1)=iso-8859-1,' + + 'Central European (iso-8859-2)=iso-8859-2,' + + 'Unicode (UTF-8)=utf-8,' + + 'Chinese traditional (Big5)=big5,' + + 'Cyrillic (iso-8859-5)=iso-8859-5,' + + 'Japanese (iso-2022-jp)=iso-2022-jp,' + + 'Greek (iso-8859-7)=iso-8859-7,' + + 'Korean (iso-2022-kr)=iso-2022-kr,' + + 'ASCII (us-ascii)=us-ascii'; + +var defaultMediaTypes = + 'all=all,' + + 'screen=screen,' + + 'print=print,' + + 'tty=tty,' + + 'tv=tv,' + + 'projection=projection,' + + 'handheld=handheld,' + + 'braille=braille,' + + 'aural=aural'; + +var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings'; +var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px'; + +function init() { + var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style; + + // Setup doctype select box + doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(','); + for (i=0; i<doctypes.length; i++) { + p = doctypes[i].split('='); + + if (p.length > 1) + addSelectValue(f, 'doctypes', p[0], p[1]); + } + + // Setup fonts select box + fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';'); + for (i=0; i<fonts.length; i++) { + p = fonts[i].split('='); + + if (p.length > 1) + addSelectValue(f, 'fontface', p[0], p[1]); + } + + // Setup fontsize select box + fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(','); + for (i=0; i<fonts.length; i++) + addSelectValue(f, 'fontsize', fonts[i], fonts[i]); + + // Setup mediatype select boxs + mediaTypes = ed.getParam("fullpage_media_types", defaultMediaTypes).split(','); + for (i=0; i<mediaTypes.length; i++) { + p = mediaTypes[i].split('='); + + if (p.length > 1) { + addSelectValue(f, 'element_style_media', p[0], p[1]); + addSelectValue(f, 'element_link_media', p[0], p[1]); + } + } + + // Setup encodings select box + encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(','); + for (i=0; i<encodings.length; i++) { + p = encodings[i].split('='); + + if (p.length > 1) { + addSelectValue(f, 'docencoding', p[0], p[1]); + addSelectValue(f, 'element_script_charset', p[0], p[1]); + addSelectValue(f, 'element_link_charset', p[0], p[1]); + } + } + + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color'); + //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color'); + document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color'); + document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color'); + document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor'); + document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage'); + document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage'); + document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage'); + document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage'); + + // Resize some elements + if (isVisible('stylesheetbrowser')) + document.getElementById('stylesheet').style.width = '220px'; + + if (isVisible('link_href_browser')) + document.getElementById('element_link_href').style.width = '230px'; + + if (isVisible('bgimage_browser')) + document.getElementById('bgimage').style.width = '210px'; + + // Add iframe + dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}}); + doc = dom.get('documentIframe').contentWindow.document; + h = tinyMCEPopup.getWindowArg('head_html'); + + // Preprocess the HTML disable scripts and urls + h = h.replace(/<script>/gi, '<script type="text/javascript">'); + h = h.replace(/type=([\"\'])?/gi, 'type=$1-mce-'); + h = h.replace(/(src=|href=)/g, 'mce_$1'); + + // Write in the content in the iframe + doc.write(h + '</body></html>'); + doc.close(); + + // Parse xml and doctype + xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1); + xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1); + docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0); + f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1); + + // Parse title + if (e = doc.getElementsByTagName('title')[0]) + el.metatitle.value = e.textContent || e.text; + + // Parse meta + tinymce.each(doc.getElementsByTagName('meta'), function(n) { + var na = (n.getAttribute('name', 2) || '').toLowerCase(), va = n.getAttribute('content', 2), eq = n.getAttribute('httpEquiv', 2) || ''; + + e = el['meta' + na]; + + if (na == 'robots') { + selectByValue(f, 'metarobots', tinymce.trim(va), true, true); + return; + } + + switch (eq.toLowerCase()) { + case "content-type": + tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, value, 1); + + // Override XML encoding + if (tmp != "") + xmlEnc = tmp; + + return; + } + + if (e) + e.value = va; + }); + + selectByValue(f, 'doctypes', docType, true, true); + selectByValue(f, 'docencoding', xmlEnc, true, true); + selectByValue(f, 'langdir', doc.body.getAttribute('dir', 2) || '', true, true); + + if (xmlVer != '') + el.xml_pi.checked = true; + + // Parse appearance + + // Parse primary stylesheet + tinymce.each(doc.getElementsByTagName("link"), function(l) { + var m = l.getAttribute('media', 2) || '', t = l.getAttribute('type', 2) || ''; + + if (t == "-mce-text/css" && (m == "" || m == "screen" || m == "all") && (l.getAttribute('rel', 2) || '') == "stylesheet") { + f.stylesheet.value = l.getAttribute('mce_href', 2) || ''; + return false; + } + }); + + // Get from style elements + tinymce.each(doc.getElementsByTagName("style"), function(st) { + var tmp = parseStyleElement(st); + + for (x=0; x<tmp.length; x++) { + if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color']) + f.visited_color.value = tmp[x].data['color']; + + if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color']) + f.link_color.value = tmp[x].data['color']; + + if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color']) + f.active_color.value = tmp[x].data['color']; + } + }); + + f.textcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "text"); + f.active_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "alink"); + f.link_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "link"); + f.visited_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "vlink"); + f.bgcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "bgcolor"); + f.bgimage.value = tinyMCEPopup.dom.getAttrib(doc.body, "background"); + + // Get from style info + style = tinyMCEPopup.dom.parseStyle(tinyMCEPopup.dom.getAttrib(doc.body, 'style')); + + if (style['font-family']) + selectByValue(f, 'fontface', style['font-family'], true, true); + else + selectByValue(f, 'fontface', ed.getParam("fullpage_default_fontface", ""), true, true); + + if (style['font-size']) + selectByValue(f, 'fontsize', style['font-size'], true, true); + else + selectByValue(f, 'fontsize', ed.getParam("fullpage_default_fontsize", ""), true, true); + + if (style['color']) + f.textcolor.value = convertRGBToHex(style['color']); + + if (style['background-image']) + f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + + if (style['background-color']) + f.bgcolor.value = style['background-color']; + + if (style['margin']) { + tmp = style['margin'].replace(/[^0-9 ]/g, ''); + tmp = tmp.split(/ +/); + f.topmargin.value = tmp.length > 0 ? tmp[0] : ''; + f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0]; + f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0]; + f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0]; + } + + if (style['margin-left']) + f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, ''); + + if (style['margin-right']) + f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, ''); + + if (style['margin-top']) + f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, ''); + + if (style['margin-bottom']) + f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, ''); + + f.style.value = tinyMCEPopup.dom.serializeStyle(style); + + // Update colors + updateColor('textcolor_pick', 'textcolor'); + updateColor('bgcolor_pick', 'bgcolor'); + updateColor('visited_color_pick', 'visited_color'); + updateColor('active_color_pick', 'active_color'); + updateColor('link_color_pick', 'link_color'); +} + +function getReItem(r, s, i) { + var c = r.exec(s); + + if (c && c.length > i) + return c[i]; + + return ''; +} + +function updateAction() { + var f = document.forms[0], nl, i, h, v, s, head, html, l, tmp, addlink = true, ser; + + head = doc.getElementsByTagName('head')[0]; + + // Fix scripts without a type + nl = doc.getElementsByTagName('script'); + for (i=0; i<nl.length; i++) { + if (tinyMCEPopup.dom.getAttrib(nl[i], 'mce_type') == '') + nl[i].setAttribute('mce_type', 'text/javascript'); + } + + // Get primary stylesheet + nl = doc.getElementsByTagName("link"); + for (i=0; i<nl.length; i++) { + l = nl[i]; + + tmp = tinyMCEPopup.dom.getAttrib(l, 'media'); + + if (tinyMCEPopup.dom.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCEPopup.dom.getAttrib(l, 'rel') == "stylesheet") { + addlink = false; + + if (f.stylesheet.value == '') + l.parentNode.removeChild(l); + else + l.setAttribute('mce_href', f.stylesheet.value); + + break; + } + } + + // Add new link + if (f.stylesheet.value != '') { + l = doc.createElement('link'); + + l.setAttribute('type', 'text/css'); + l.setAttribute('mce_href', f.stylesheet.value); + l.setAttribute('rel', 'stylesheet'); + + head.appendChild(l); + } + + setMeta(head, 'keywords', f.metakeywords.value); + setMeta(head, 'description', f.metadescription.value); + setMeta(head, 'author', f.metaauthor.value); + setMeta(head, 'copyright', f.metacopyright.value); + setMeta(head, 'robots', getSelectValue(f, 'metarobots')); + setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding')); + + doc.body.dir = getSelectValue(f, 'langdir'); + doc.body.style.cssText = f.style.value; + + doc.body.setAttribute('vLink', f.visited_color.value); + doc.body.setAttribute('link', f.link_color.value); + doc.body.setAttribute('text', f.textcolor.value); + doc.body.setAttribute('aLink', f.active_color.value); + + doc.body.style.fontFamily = getSelectValue(f, 'fontface'); + doc.body.style.fontSize = getSelectValue(f, 'fontsize'); + doc.body.style.backgroundColor = f.bgcolor.value; + + if (f.leftmargin.value != '') + doc.body.style.marginLeft = f.leftmargin.value + 'px'; + + if (f.rightmargin.value != '') + doc.body.style.marginRight = f.rightmargin.value + 'px'; + + if (f.bottommargin.value != '') + doc.body.style.marginBottom = f.bottommargin.value + 'px'; + + if (f.topmargin.value != '') + doc.body.style.marginTop = f.topmargin.value + 'px'; + + html = doc.getElementsByTagName('html')[0]; + html.setAttribute('lang', f.langcode.value); + html.setAttribute('xml:lang', f.langcode.value); + + if (f.bgimage.value != '') + doc.body.style.backgroundImage = "url('" + f.bgimage.value + "')"; + else + doc.body.style.backgroundImage = ''; + + ser = tinyMCEPopup.editor.plugins.fullpage._createSerializer(); + ser.setRules('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml::lang|xmlns],body[style|dir|vlink|link|text|alink],head'); + + h = ser.serialize(doc.documentElement); + h = h.substring(0, h.lastIndexOf('</body>')); + + if (h.indexOf('<title>') == -1) + h = h.replace(/<head.*?>/, '$&\n' + '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>'); + else + h = h.replace(/<title>(.*?)<\/title>/, '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>'); + + if ((v = getSelectValue(f, 'doctypes')) != '') + h = v + '\n' + h; + + if (f.xml_pi.checked) { + s = '<?xml version="1.0"'; + + if ((v = getSelectValue(f, 'docencoding')) != '') + s += ' encoding="' + v + '"'; + + s += '?>\n'; + h = s + h; + } + + h = h.replace(/type=\"\-mce\-/gi, 'type="'); + + tinyMCEPopup.editor.plugins.fullpage.head = h; + tinyMCEPopup.editor.plugins.fullpage._setBodyAttribs(tinyMCEPopup.editor, {}); + tinyMCEPopup.close(); +} + +function changedStyleField(field) { + //alert(field.id); +} + +function setMeta(he, k, v) { + var nl, i, m; + + nl = he.getElementsByTagName('meta'); + for (i=0; i<nl.length; i++) { + if (k == 'Content-Type' && tinyMCEPopup.dom.getAttrib(nl[i], 'http-equiv') == k) { + if (v == '') + nl[i].parentNode.removeChild(nl[i]); + else + nl[i].setAttribute('content', "text/html; charset=" + v); + + return; + } + + if (tinyMCEPopup.dom.getAttrib(nl[i], 'name') == k) { + if (v == '') + nl[i].parentNode.removeChild(nl[i]); + else + nl[i].setAttribute('content', v); + return; + } + } + + if (v == '') + return; + + m = doc.createElement('meta'); + + if (k == 'Content-Type') + m.httpEquiv = k; + else + m.setAttribute('name', k); + + m.setAttribute('content', v); + he.appendChild(m); +} + +function parseStyleElement(e) { + var v = e.innerHTML; + var p, i, r; + + v = v.replace(/<!--/gi, ''); + v = v.replace(/-->/gi, ''); + v = v.replace(/[\n\r]/gi, ''); + v = v.replace(/\s+/gi, ' '); + + r = []; + p = v.split(/{|}/); + + for (i=0; i<p.length; i+=2) { + if (p[i] != "") + r[r.length] = {rule : tinymce.trim(p[i]), data : tinyMCEPopup.dom.parseStyle(p[i+1])}; + } + + return r; +} + +function serializeStyleElement(d) { + var i, s, st; + + s = '<!--\n'; + + for (i=0; i<d.length; i++) { + s += d[i].rule + ' {\n'; + + st = tinyMCE.serializeStyle(d[i].data); + + if (st != '') + st += ';'; + + s += st.replace(/;/g, ';\n'); + s += '}\n'; + + if (i != d.length - 1) + s += '\n'; + } + + s += '\n-->'; + + return s; +} + +tinyMCEPopup.onInit.add(init); diff --git a/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js new file mode 100644 index 000000000..d1cd21955 --- /dev/null +++ b/mod/tinymce/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('en.fullpage_dlg',{ +title:"Document properties", +meta_tab:"General", +appearance_tab:"Appearance", +advanced_tab:"Advanced", +meta_props:"Meta information", +langprops:"Language and encoding", +meta_title:"Title", +meta_keywords:"Keywords", +meta_description:"Description", +meta_robots:"Robots", +doctypes:"Doctype", +langcode:"Language code", +langdir:"Language direction", +ltr:"Left to right", +rtl:"Right to left", +xml_pi:"XML declaration", +encoding:"Character encoding", +appearance_bgprops:"Background properties", +appearance_marginprops:"Body margins", +appearance_linkprops:"Link colors", +appearance_textprops:"Text properties", +bgcolor:"Background color", +bgimage:"Background image", +left_margin:"Left margin", +right_margin:"Right margin", +top_margin:"Top margin", +bottom_margin:"Bottom margin", +text_color:"Text color", +font_size:"Font size", +font_face:"Font face", +link_color:"Link color", +hover_color:"Hover color", +visited_color:"Visited color", +active_color:"Active color", +textcolor:"Color", +fontsize:"Font size", +fontface:"Font family", +meta_index_follow:"Index and follow the links", +meta_index_nofollow:"Index and don't follow the links", +meta_noindex_follow:"Do not index but follow the links", +meta_noindex_nofollow:"Do not index and don\'t follow the links", +appearance_style:"Stylesheet and style properties", +stylesheet:"Stylesheet", +style:"Style", +author:"Author", +copyright:"Copyright", +add:"Add new element", +remove:"Remove selected element", +moveup:"Move selected element up", +movedown:"Move selected element down", +head_elements:"Head elements", +info:"Information", +add_title:"Title element", +add_meta:"Meta element", +add_script:"Script element", +add_style:"Style element", +add_link:"Link element", +add_base:"Base element", +add_comment:"Comment node", +title_element:"Title element", +script_element:"Script element", +style_element:"Style element", +base_element:"Base element", +link_element:"Link element", +meta_element:"Meta element", +comment_element:"Comment", +src:"Src", +language:"Language", +href:"Href", +target:"Target", +type:"Type", +charset:"Charset", +defer:"Defer", +media:"Media", +properties:"Properties", +name:"Name", +value:"Value", +content:"Content", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"General", +advanced_props:"Advanced" +});
\ No newline at end of file |