| [ Index ] |
PHP Cross Reference of Joomla 1.5.26 DE |
[Summary view] [Print] [Text view]
1 /** 2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ 3 * 4 * @author Moxiecode - based on work by Andrew Tetlaw 5 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. 6 */ 7 8 function initCommonAttributes(elm) { 9 var formObj = document.forms[0]; 10 11 // Setup form data for common element attributes 12 setFormValue('title', tinyMCE.getAttrib(elm, 'title')); 13 setFormValue('id', tinyMCE.getAttrib(elm, 'id')); 14 selectByValue(formObj, 'class', tinyMCE.getAttrib(elm, 'class'), true); 15 setFormValue('style', tinyMCE.getAttrib(elm, 'style')); 16 selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir')); 17 setFormValue('lang', tinyMCE.getAttrib(elm, 'lang')); 18 setFormValue('onfocus', tinyMCE.getAttrib(elm, 'onfocus')); 19 setFormValue('onblur', tinyMCE.getAttrib(elm, 'onblur')); 20 setFormValue('onclick', tinyMCE.getAttrib(elm, 'onclick')); 21 setFormValue('ondblclick', tinyMCE.getAttrib(elm, 'ondblclick')); 22 setFormValue('onmousedown', tinyMCE.getAttrib(elm, 'onmousedown')); 23 setFormValue('onmouseup', tinyMCE.getAttrib(elm, 'onmouseup')); 24 setFormValue('onmouseover', tinyMCE.getAttrib(elm, 'onmouseover')); 25 setFormValue('onmousemove', tinyMCE.getAttrib(elm, 'onmousemove')); 26 setFormValue('onmouseout', tinyMCE.getAttrib(elm, 'onmouseout')); 27 setFormValue('onkeypress', tinyMCE.getAttrib(elm, 'onkeypress')); 28 setFormValue('onkeydown', tinyMCE.getAttrib(elm, 'onkeydown')); 29 setFormValue('onkeyup', tinyMCE.getAttrib(elm, 'onkeyup')); 30 } 31 32 function setFormValue(name, value) { 33 if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value; 34 } 35 36 function insertDateTime(id) { 37 document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S"); 38 } 39 40 function getDateTime(d, fmt) { 41 fmt = fmt.replace("%D", "%m/%d/%y"); 42 fmt = fmt.replace("%r", "%I:%M:%S %p"); 43 fmt = fmt.replace("%Y", "" + d.getFullYear()); 44 fmt = fmt.replace("%y", "" + d.getYear()); 45 fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2)); 46 fmt = fmt.replace("%d", addZeros(d.getDate(), 2)); 47 fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2)); 48 fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2)); 49 fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2)); 50 fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1)); 51 fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM")); 52 fmt = fmt.replace("%%", "%"); 53 54 return fmt; 55 } 56 57 function addZeros(value, len) { 58 var i; 59 60 value = "" + value; 61 62 if (value.length < len) { 63 for (i=0; i<(len-value.length); i++) 64 value = "0" + value; 65 } 66 67 return value; 68 } 69 70 function selectByValue(form_obj, field_name, value, add_custom, ignore_case) { 71 if (!form_obj || !form_obj.elements[field_name]) 72 return; 73 74 var sel = form_obj.elements[field_name]; 75 76 var found = false; 77 for (var i=0; i<sel.options.length; i++) { 78 var option = sel.options[i]; 79 80 if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) { 81 option.selected = true; 82 found = true; 83 } else 84 option.selected = false; 85 } 86 87 if (!found && add_custom && value != '') { 88 var option = new Option('Value: ' + value, value); 89 option.selected = true; 90 sel.options[sel.options.length] = option; 91 } 92 93 return found; 94 } 95 96 function setAttrib(elm, attrib, value) { 97 var formObj = document.forms[0]; 98 var valueElm = formObj.elements[attrib.toLowerCase()]; 99 100 if (typeof(value) == "undefined" || value == null) { 101 value = ""; 102 103 if (valueElm) 104 value = valueElm.value; 105 } 106 107 if (value != "") { 108 if (attrib == "style") 109 attrib = "style.cssText"; 110 111 if (attrib.substring(0, 2) == 'on') 112 value = 'return true;' + value; 113 114 if (attrib == "class") { 115 tinyMCE.addCSSClass(elm, value); 116 return; 117 } 118 119 elm.setAttribute(attrib.toLowerCase(), value); 120 } else 121 elm.removeAttribute(attrib); 122 } 123 124 function setAllCommonAttribs(elm) { 125 setAttrib(elm, 'title'); 126 setAttrib(elm, 'id'); 127 setAttrib(elm, 'class'); 128 setAttrib(elm, 'style'); 129 setAttrib(elm, 'dir'); 130 setAttrib(elm, 'lang'); 131 /*setAttrib(elm, 'onfocus'); 132 setAttrib(elm, 'onblur'); 133 setAttrib(elm, 'onclick'); 134 setAttrib(elm, 'ondblclick'); 135 setAttrib(elm, 'onmousedown'); 136 setAttrib(elm, 'onmouseup'); 137 setAttrib(elm, 'onmouseover'); 138 setAttrib(elm, 'onmousemove'); 139 setAttrib(elm, 'onmouseout'); 140 setAttrib(elm, 'onkeypress'); 141 setAttrib(elm, 'onkeydown'); 142 setAttrib(elm, 'onkeyup');*/ 143 } 144 145 SXE = { 146 currentAction : "insert", 147 inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')), 148 updateElement : null 149 } 150 151 SXE.focusElement = SXE.inst.getFocusElement(); 152 153 SXE.initElementDialog = function(element_name) { 154 addClassesToList('class', 'xhtmlxtras_styles'); 155 TinyMCE_EditableSelects.init(); 156 157 element_name = element_name.toLowerCase(); 158 var elm = tinyMCE.getParentElement(SXE.focusElement, element_name); 159 if (elm != null && elm.nodeName == element_name.toUpperCase()) { 160 SXE.currentAction = "update"; 161 } 162 163 if (SXE.currentAction == "update") { 164 initCommonAttributes(elm); 165 SXE.updateElement = elm; 166 } 167 168 document.forms[0].insert.value = tinyMCE.getLang('lang_' + SXE.currentAction, 'Insert', true); 169 } 170 171 SXE.insertElement = function(element_name) { 172 var elm = tinyMCE.getParentElement(SXE.focusElement, element_name), h, tagName; 173 174 tinyMCEPopup.execCommand('mceBeginUndoLevel'); 175 if (elm == null) { 176 var s = SXE.inst.selection.getSelectedHTML(); 177 if(s.length > 0) { 178 tagName = element_name; 179 180 if (tinyMCE.isIE && !tinyMCE.isOpera && element_name.indexOf('html:') == 0) 181 element_name = element_name.substring(5).toLowerCase(); 182 183 h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>'; 184 185 tinyMCEPopup.execCommand('mceInsertContent', false, h); 186 187 var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), element_name, 'id', '#sxe_temp_' + element_name + '#'); 188 for (var i=0; i<elementArray.length; i++) { 189 var elm = elementArray[i]; 190 191 elm.id = ''; 192 elm.setAttribute('id', ''); 193 elm.removeAttribute('id'); 194 195 setAllCommonAttribs(elm); 196 } 197 } 198 } else { 199 setAllCommonAttribs(elm); 200 } 201 tinyMCE.triggerNodeChange(); 202 tinyMCEPopup.execCommand('mceEndUndoLevel'); 203 } 204 205 SXE.removeElement = function(element_name){ 206 element_name = element_name.toLowerCase(); 207 elm = tinyMCE.getParentElement(SXE.focusElement, element_name); 208 if(elm && elm.nodeName == element_name.toUpperCase()){ 209 tinyMCEPopup.execCommand('mceBeginUndoLevel'); 210 tinyMCE.execCommand('mceRemoveNode', false, elm); 211 tinyMCE.triggerNodeChange(); 212 tinyMCEPopup.execCommand('mceEndUndoLevel'); 213 } 214 } 215 216 SXE.showRemoveButton = function() { 217 document.getElementById("remove").style.display = 'block'; 218 } 219 220 SXE.containsClass = function(elm,cl) { 221 return (elm.className.indexOf(cl) > -1) ? true : false; 222 } 223 224 SXE.removeClass = function(elm,cl) { 225 if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) { 226 return true; 227 } 228 var classNames = elm.className.split(" "); 229 var newClassNames = ""; 230 for (var x = 0, cnl = classNames.length; x < cnl; x++) { 231 if (classNames[x] != cl) { 232 newClassNames += (classNames[x] + " "); 233 } 234 } 235 elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end 236 } 237 238 SXE.addClass = function(elm,cl) { 239 if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; 240 return true; 241 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Mar 28 15:54:07 2012 | Cross-referenced by PHPXref 0.7.1 |