[ Index ] |
|
Code source de Serendipity 1.2 |
1 <!-- // Hide from older browsers 2 /* $Id: serendipity_editor.js 1678 2007-04-16 10:14:23Z garvinhicking $ */ 3 /* 4 # Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team) 5 # All rights reserved. See LICENSE file for licensing details 6 */ 7 8 /* 9 Written by chris wetherell 10 http://www.massless.org 11 chris [THE AT SIGN] massless.org 12 13 warning: it only works for IE4+/Win and Moz1.1+ 14 feel free to take it for your site 15 if there are any problems, let chris know. 16 */ 17 18 var thisForm; 19 20 function getMozSelection(txtarea) { 21 var selLength = txtarea.textLength; 22 var selStart = txtarea.selectionStart; 23 var selEnd = txtarea.selectionEnd; 24 25 if (selEnd==1 || selEnd==2) { 26 selEnd=selLength; 27 } 28 return (txtarea.value).substring(selStart, selEnd); 29 } 30 31 function getIESelection(txtarea) { 32 return document.selection.createRange().text; 33 } 34 35 function mozWrap(txtarea, lft, rgt) { 36 var selLength = txtarea.textLength; 37 var selStart = txtarea.selectionStart; 38 var selEnd = txtarea.selectionEnd; 39 40 if (txtarea.setSelectionRange) { 41 if (selEnd==1 || selEnd==2) selEnd=selLength; 42 var s1 = (txtarea.value).substring(0,selStart); 43 var s2 = (txtarea.value).substring(selStart, selEnd) 44 var s3 = (txtarea.value).substring(selEnd, selLength); 45 txtarea.value = s1 + lft + s2 + rgt + s3; 46 } else { 47 txtarea.value = txtarea.value + ' ' + lft + rgt + ' '; 48 } 49 } 50 51 function IEWrap(txtarea, lft, rgt) { 52 strSelection = document.selection.createRange().text; 53 if (strSelection != "") { 54 document.selection.createRange().text = lft + strSelection + rgt; 55 } else { 56 txtarea.value = txtarea.value + lft + rgt; 57 } 58 } 59 60 function wrapSelection(txtarea, lft, rgt) { 61 if (document.all) { 62 IEWrap(txtarea, lft, rgt); 63 } else if (document.getElementById) { 64 mozWrap(txtarea, lft, rgt); 65 } 66 } 67 68 function wrapSelectionWithLink(txtarea) { 69 var my_link = prompt("Enter URL:","http://"); 70 71 if (document.all && getIESelection(txtarea) == "" || 72 document.getElementById && getMozSelection(txtarea) == "") { 73 var my_desc = prompt("Enter Description", ''); 74 } 75 76 var my_title = prompt("Enter title/tooltip:", ""); 77 78 html_title = ""; 79 if (my_title != "" && my_title != null) { 80 html_title = ' title="' + my_title + '"'; 81 } 82 83 if (my_link != null) { 84 lft = "<a href=\"" + my_link + "\"" + html_title + ">"; 85 if (my_desc != null && my_desc != "") { 86 rgt = my_desc + "</a>"; 87 } else { 88 rgt = "</a>"; 89 } 90 wrapSelection(txtarea, lft, rgt); 91 } 92 93 return; 94 } 95 /* end chris w. script */ 96 97 function mozInsert(txtarea, str) { 98 var selLength = txtarea.textLength; 99 var selStart = txtarea.selectionStart; 100 var selEnd = txtarea.selectionEnd; 101 if (selEnd==1 || selEnd==2) { 102 selEnd=selLength; 103 } 104 var s1 = (txtarea.value).substring(0,selStart); 105 var s2 = (txtarea.value).substring(selStart, selEnd) 106 var s3 = (txtarea.value).substring(selEnd, selLength); 107 txtarea.value = s1 + str + s2 + s3; 108 } 109 110 function wrapInsImage(area) { 111 var loc = prompt('Enter the Image Location: '); 112 if (!loc) { 113 return; 114 } 115 mozInsert(area,'<img src="'+ loc + '" alt="" />'); 116 } 117 118 /* end Better-Editor functions */ 119 120 function serendipity_insImage (area) { 121 var loc = prompt('Enter the Image Location: '); 122 if (!loc) { 123 area.focus(); 124 return; 125 } 126 127 area.value = area.value + '<img src="' + loc + '" alt="" />'; 128 area.focus(); 129 } 130 131 function serendipity_insBasic (area, tag) { 132 area.value = area.value + "<" + tag + "></" + tag + ">"; 133 area.focus(); 134 } 135 136 function serendipity_insLink (area) { 137 var loc = prompt('Enter URL Location: '); 138 var text = prompt('Enter Description: '); 139 var my_title = prompt("Enter title/tooltip:", ""); 140 141 if (!loc) { 142 area.focus(); 143 return; 144 } 145 146 html_title = ""; 147 if (my_title != "" && my_title != null) { 148 html_title = ' title="' + my_title + '"'; 149 } 150 151 area.value = area.value + '<a href="' + loc + '"' + html_title + '>' + (text ? text : loc) + '</a>'; 152 area.focus(); 153 } 154 155 function serendipity_imageSelector_addToElement (str, el) 156 { 157 document.getElementById(el).value = str; 158 if (document.getElementById(el).type != 'hidden' && document.getElementById(el).focus) { 159 document.getElementById(el).focus(); 160 } 161 if (document.getElementById(el).onchange) { 162 document.getElementById(el).onchange(); 163 } 164 } 165 166 function serendipity_imageSelector_addToBody (str, textarea) 167 { 168 eltarget = ''; 169 if (document.forms['serendipityEntry'] && document.forms['serendipityEntry']['serendipity['+ textarea +']']) { 170 eltarget = document.forms['serendipityEntry']['serendipity['+ textarea +']'] 171 } else if (document.forms['serendipityEntry'] && document.forms['serendipityEntry'][textarea]) { 172 eltarget = document.forms['serendipityEntry'][textarea]; 173 } else { 174 eltarget = document.forms[0].elements[0]; 175 } 176 177 wrapSelection(eltarget, str, ''); 178 eltarget.focus(); 179 } 180 181 function serendipity_imageSelector_done(textarea) 182 { 183 var insert = ''; 184 var img = ''; 185 var src = ''; 186 var f = document.forms['serendipity[selForm]'].elements; 187 188 if (f['serendipity[linkThumbnail]'] && f['serendipity[linkThumbnail]'][0].checked == true) { 189 img = f['thumbName'].value; 190 imgWidth = f['imgThumbWidth'].value; 191 imgHeight = f['imgThumbHeight'].value; 192 } else { 193 img = f['imgName'].value; 194 imgWidth = f['imgWidth'].value; 195 imgHeight = f['imgHeight'].value; 196 } 197 198 if (f['serendipity[filename_only]']) { 199 if (f['serendipity[htmltarget]']) { 200 starget = f['serendipity[htmltarget]'].value; 201 } else { 202 starget = 'serendipity[' + textarea + ']'; 203 } 204 205 if (f['serendipity[filename_only]'].value == 'true') { 206 parent.self.opener.serendipity_imageSelector_addToElement(img, f['serendipity[htmltarget]'].value); 207 parent.self.close(); 208 return true; 209 } else if (f['serendipity[filename_only]'].value == 'id') { 210 parent.self.opener.serendipity_imageSelector_addToElement(f['imgID'].value, starget); 211 parent.self.close(); 212 return true; 213 } else if (f['serendipity[filename_only]'].value == 'thumb') { 214 parent.self.opener.serendipity_imageSelector_addToElement(f['thumbName'].value, starget); 215 parent.self.close(); 216 return true; 217 } else if (f['serendipity[filename_only]'].value == 'big') { 218 parent.self.opener.serendipity_imageSelector_addToElement(f['imgName'].value, starget); 219 parent.self.close(); 220 return true; 221 } 222 } 223 224 if (document.getElementById('serendipity_imagecomment').value != '') { 225 styled = false; 226 } else { 227 styled = true; 228 } 229 230 imgID = 0; 231 if (f['imgID']) { 232 imgID = f['imgID'].value; 233 } 234 baseURL = ''; 235 if (f['baseURL']) { 236 baseURL = f['baseURL'].value; 237 } 238 239 floating = 'center'; 240 if (f['serendipity[align]'][0].checked == true) { 241 img = "<!-- s9ymdb:" + imgID + " --><img width=\"" + imgWidth + "\" height=\"" + imgHeight + "\" " + (styled ? 'style="border: 0px; padding-left: 5px; padding-right: 5px;"' : '') + ' src="' + img + "\" alt=\"\" />"; 242 } else if (f['serendipity[align]'][1].checked == true) { 243 img = "<!-- s9ymdb:" + imgID + " --><img width=\"" + imgWidth + "\" height=\"" + imgHeight + "\" " + (styled ? 'style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;"' : '') + ' src="' + img + "\" alt=\"\" />"; 244 floating = 'left'; 245 } else if (f['serendipity[align]'][2].checked == true) { 246 img = "<!-- s9ymdb:" + imgID + " --><img width=\"" + imgWidth + "\" height=\"" + imgHeight + "\" " + (styled ? 'style="float: right; border: 0px; padding-left: 5px; padding-right: 5px;"' : '') + ' src="' + img + "\" alt=\"\" />"; 247 floating = 'right'; 248 } 249 250 if (f['serendipity[isLink]'][1].checked == true) { 251 if (f['serendipity[target]'].selectedIndex) { 252 targetval = f['serendipity[target]'].options[f['serendipity[target]'].selectedIndex].value; 253 } else { 254 targetval = ''; 255 } 256 257 prepend = ''; 258 ilink = f['serendipity[url]'].value; 259 if (!targetval || targetval == 'none') { 260 itarget = ''; 261 } else if (targetval == 'js') { 262 itarget = ' onclick="F1 = window.open(\'' + f['serendipity[url]'].value + '\',\'Zoom\',\'' 263 + 'height=' + (parseInt(f['imgHeight'].value) + 15) + ',' 264 + 'width=' + (parseInt(f['imgWidth'].value) + 15) + ',' 265 + 'top=' + (screen.height - f['imgHeight'].value) /2 + ',' 266 + 'left=' + (screen.width - f['imgWidth'].value) /2 + ',' 267 + 'toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes\'); return false;"'; 268 } else if (targetval == '_blank') { 269 itarget = ' target="_blank"'; 270 } else if (targetval == 'plugin') { 271 itarget = ' id="s9yisphref' + imgID + '" onclick="javascript:this.href = this.href + \'&serendipity[from]=\' + self.location.href;"'; 272 prepend = '<a title="' + ilink + '" id="s9yisp' + imgID + '"></a>'; 273 ilink = baseURL + 'serendipity_admin_image_selector.php?serendipity[step]=showItem&serendipity[image]=' + imgID; 274 } 275 276 insert = prepend + "<a class='serendipity_image_link' href='" + ilink + "'" + itarget + ">" + img + "</a>"; 277 } else { 278 insert = img; 279 } 280 281 if (document.getElementById('serendipity_imagecomment').value != '') { 282 comment = f['serendipity[imagecomment]'].value; 283 block = '<div class="serendipity_imageComment_' + floating + '" style="width: ' + imgWidth + 'px">' 284 + '<div class="serendipity_imageComment_img">' + insert + '</div>' 285 + '<div class="serendipity_imageComment_txt">' + comment + '</div>' 286 + '</div>'; 287 } else { 288 block = insert; 289 } 290 291 if (typeof(parent.self.opener.htmlarea_editors) != 'undefined' && typeof(parent.self.opener.htmlarea_editors[textarea]) != 'undefined') { 292 parent.self.opener.htmlarea_editors[textarea].surroundHTML(block, ''); 293 } else if (parent.self.opener.editorref) { 294 parent.self.opener.editorref.surroundHTML(block, ''); 295 } else { 296 parent.self.opener.serendipity_imageSelector_addToBody(block, textarea); 297 } 298 299 parent.self.close(); 300 } 301 302 // -->
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Nov 24 09:00:37 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |