[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ -> serendipity_editor.js (source)

   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 + \'&amp;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&amp;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  // -->


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics