[ Index ]
 

Code source de WordPress 2.1.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/wp-includes/js/ -> quicktags.js (source)

   1  // new edit toolbar used with permission
   2  // by Alex King
   3  // http://www.alexking.org/
   4  
   5  var edButtons = new Array();
   6  var edLinks = new Array();
   7  var edOpenTags = new Array();
   8  
   9  function edButton(id, display, tagStart, tagEnd, access, open) {
  10      this.id = id;                // used to name the toolbar button
  11      this.display = display;        // label on button
  12      this.tagStart = tagStart;     // open tag
  13      this.tagEnd = tagEnd;        // close tag
  14      this.access = access;        // access key
  15      this.open = open;            // set to -1 if tag does not need to be closed
  16  }
  17  
  18  function zeroise(number, threshold) {
  19      // FIXME: or we could use an implementation of printf in js here
  20      var str = number.toString();
  21      if (number < 0) { str = str.substr(1, str.length) }
  22      while (str.length < threshold) { str = "0" + str }
  23      if (number < 0) { str = '-' + str }
  24      return str;
  25  }
  26  
  27  var now = new Date();
  28  var datetime = now.getUTCFullYear() + '-' + 
  29  zeroise(now.getUTCMonth() + 1, 2) + '-' +
  30  zeroise(now.getUTCDate(), 2) + 'T' + 
  31  zeroise(now.getUTCHours(), 2) + ':' + 
  32  zeroise(now.getUTCMinutes(), 2) + ':' + 
  33  zeroise(now.getUTCSeconds() ,2) +
  34  '+00:00';
  35  
  36  edButtons[edButtons.length] = 
  37  new edButton('ed_strong'
  38  ,'b'
  39  ,'<strong>'
  40  ,'</strong>'
  41  ,'b'
  42  );
  43  
  44  edButtons[edButtons.length] = 
  45  new edButton('ed_em'
  46  ,'i'
  47  ,'<em>'
  48  ,'</em>'
  49  ,'i'
  50  );
  51  
  52  edButtons[edButtons.length] = 
  53  new edButton('ed_link'
  54  ,'link'
  55  ,''
  56  ,'</a>'
  57  ,'a'
  58  ); // special case
  59  
  60  edButtons[edButtons.length] = 
  61  new edButton('ed_block'
  62  ,'b-quote'
  63  ,'\n\n<blockquote>'
  64  ,'</blockquote>\n\n'
  65  ,'q'
  66  );
  67  
  68  
  69  edButtons[edButtons.length] = 
  70  new edButton('ed_del'
  71  ,'del'
  72  ,'<del datetime="' + datetime + '">'
  73  ,'</del>'
  74  ,'d'
  75  );
  76  
  77  edButtons[edButtons.length] = 
  78  new edButton('ed_ins'
  79  ,'ins'
  80  ,'<ins datetime="' + datetime + '">'
  81  ,'</ins>'
  82  ,'s'
  83  );
  84  
  85  edButtons[edButtons.length] = 
  86  new edButton('ed_img'
  87  ,'img'
  88  ,''
  89  ,''
  90  ,'m'
  91  ,-1
  92  ); // special case
  93  
  94  edButtons[edButtons.length] = 
  95  new edButton('ed_ul'
  96  ,'ul'
  97  ,'<ul>\n'
  98  ,'</ul>\n\n'
  99  ,'u'
 100  );
 101  
 102  edButtons[edButtons.length] = 
 103  new edButton('ed_ol'
 104  ,'ol'
 105  ,'<ol>\n'
 106  ,'</ol>\n\n'
 107  ,'o'
 108  );
 109  
 110  edButtons[edButtons.length] = 
 111  new edButton('ed_li'
 112  ,'li'
 113  ,'\t<li>'
 114  ,'</li>\n'
 115  ,'l'
 116  );
 117  
 118  edButtons[edButtons.length] = 
 119  new edButton('ed_code'
 120  ,'code'
 121  ,'<code>'
 122  ,'</code>'
 123  ,'c'
 124  );
 125  
 126  edButtons[edButtons.length] = 
 127  new edButton('ed_more'
 128  ,'more'
 129  ,'<!--more-->'
 130  ,''
 131  ,'t'
 132  ,-1
 133  );
 134  /*
 135  edButtons[edButtons.length] = 
 136  new edButton('ed_next'
 137  ,'page'
 138  ,'<!--nextpage-->'
 139  ,''
 140  ,'p'
 141  ,-1
 142  );
 143  */
 144  function edLink() {
 145      this.display = '';
 146      this.URL = '';
 147      this.newWin = 0;
 148  }
 149  
 150  edLinks[edLinks.length] = new edLink('WordPress'
 151                                      ,'http://wordpress.org/'
 152                                      );
 153  
 154  edLinks[edLinks.length] = new edLink('alexking.org'
 155                                      ,'http://www.alexking.org/'
 156                                      );
 157  
 158  function edShowButton(button, i) {
 159      if (button.id == 'ed_img') {
 160          document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage(edCanvas);" value="' + button.display + '" />');
 161      }
 162      else if (button.id == 'ed_link') {
 163          document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(edCanvas, ' + i + ');" value="' + button.display + '" />');
 164      }
 165      else {
 166          document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(edCanvas, ' + i + ');" value="' + button.display + '"  />');
 167      }
 168  }
 169  
 170  function edShowLinks() {
 171      var tempStr = '<select onchange="edQuickLink(this.options[this.selectedIndex].value, this);"><option value="-1" selected>(Quick Links)</option>';
 172      for (i = 0; i < edLinks.length; i++) {
 173          tempStr += '<option value="' + i + '">' + edLinks[i].display + '</option>';
 174      }
 175      tempStr += '</select>';
 176      document.write(tempStr);
 177  }
 178  
 179  function edAddTag(button) {
 180      if (edButtons[button].tagEnd != '') {
 181          edOpenTags[edOpenTags.length] = button;
 182          document.getElementById(edButtons[button].id).value = '/' + document.getElementById(edButtons[button].id).value;
 183      }
 184  }
 185  
 186  function edRemoveTag(button) {
 187      for (i = 0; i < edOpenTags.length; i++) {
 188          if (edOpenTags[i] == button) {
 189              edOpenTags.splice(i, 1);
 190              document.getElementById(edButtons[button].id).value =         document.getElementById(edButtons[button].id).value.replace('/', '');
 191          }
 192      }
 193  }
 194  
 195  function edCheckOpenTags(button) {
 196      var tag = 0;
 197      for (i = 0; i < edOpenTags.length; i++) {
 198          if (edOpenTags[i] == button) {
 199              tag++;
 200          }
 201      }
 202      if (tag > 0) {
 203          return true; // tag found
 204      }
 205      else {
 206          return false; // tag not found
 207      }
 208  }
 209  
 210  function edCloseAllTags() {
 211      var count = edOpenTags.length;
 212      for (o = 0; o < count; o++) {
 213          edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
 214      }
 215  }
 216  
 217  function edQuickLink(i, thisSelect) {
 218      if (i > -1) {
 219          var newWin = '';
 220          if (edLinks[i].newWin == 1) {
 221              newWin = ' target="_blank"';
 222          }
 223          var tempStr = '<a href="' + edLinks[i].URL + '"' + newWin + '>' 
 224                      + edLinks[i].display
 225                      + '</a>';
 226          thisSelect.selectedIndex = 0;
 227          edInsertContent(edCanvas, tempStr);
 228      }
 229      else {
 230          thisSelect.selectedIndex = 0;
 231      }
 232  }
 233  
 234  function edSpell(myField) {
 235      var word = '';
 236      if (document.selection) {
 237          myField.focus();
 238          var sel = document.selection.createRange();
 239          if (sel.text.length > 0) {
 240              word = sel.text;
 241          }
 242      }
 243      else if (myField.selectionStart || myField.selectionStart == '0') {
 244          var startPos = myField.selectionStart;
 245          var endPos = myField.selectionEnd;
 246          if (startPos != endPos) {
 247              word = myField.value.substring(startPos, endPos);
 248          }
 249      }
 250      if (word == '') {
 251          word = prompt('Enter a word to look up:', '');
 252      }
 253      if (word !== null && /^\w[\w ]*$/.test(word)) {
 254          window.open('http://www.answers.com/' + escape(word));
 255      }
 256  }
 257  
 258  function edToolbar() {
 259      document.write('<div id="ed_toolbar">');
 260      for (i = 0; i < edButtons.length; i++) {
 261          edShowButton(edButtons[i], i);
 262      }
 263      document.write('<input type="button" id="ed_spell" class="ed_button" onclick="edSpell(edCanvas);" title="Dictionary lookup" value="lookup" />');
 264      document.write('<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" title="Close all open tags" value="Close Tags" />');
 265  //    edShowLinks(); // disabled by default
 266      document.write('</div>');
 267  }
 268  
 269  // insertion code
 270  
 271  function edInsertTag(myField, i) {
 272      //IE support
 273      if (document.selection) {
 274          myField.focus();
 275          sel = document.selection.createRange();
 276          if (sel.text.length > 0) {
 277              sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
 278          }
 279          else {
 280              if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
 281                  sel.text = edButtons[i].tagStart;
 282                  edAddTag(i);
 283              }
 284              else {
 285                  sel.text = edButtons[i].tagEnd;
 286                  edRemoveTag(i);
 287              }
 288          }
 289          myField.focus();
 290      }
 291      //MOZILLA/NETSCAPE support
 292      else if (myField.selectionStart || myField.selectionStart == '0') {
 293          var startPos = myField.selectionStart;
 294          var endPos = myField.selectionEnd;
 295          var cursorPos = endPos;
 296          var scrollTop = myField.scrollTop;
 297  
 298          if (startPos != endPos) {
 299              myField.value = myField.value.substring(0, startPos)
 300                            + edButtons[i].tagStart
 301                            + myField.value.substring(startPos, endPos) 
 302                            + edButtons[i].tagEnd
 303                            + myField.value.substring(endPos, myField.value.length);
 304              cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
 305          }
 306          else {
 307              if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
 308                  myField.value = myField.value.substring(0, startPos) 
 309                                + edButtons[i].tagStart
 310                                + myField.value.substring(endPos, myField.value.length);
 311                  edAddTag(i);
 312                  cursorPos = startPos + edButtons[i].tagStart.length;
 313              }
 314              else {
 315                  myField.value = myField.value.substring(0, startPos) 
 316                                + edButtons[i].tagEnd
 317                                + myField.value.substring(endPos, myField.value.length);
 318                  edRemoveTag(i);
 319                  cursorPos = startPos + edButtons[i].tagEnd.length;
 320              }
 321          }
 322          myField.focus();
 323          myField.selectionStart = cursorPos;
 324          myField.selectionEnd = cursorPos;
 325          myField.scrollTop = scrollTop;
 326      }
 327      else {
 328          if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
 329              myField.value += edButtons[i].tagStart;
 330              edAddTag(i);
 331          }
 332          else {
 333              myField.value += edButtons[i].tagEnd;
 334              edRemoveTag(i);
 335          }
 336          myField.focus();
 337      }
 338  }
 339  
 340  function edInsertContent(myField, myValue) {
 341      //IE support
 342      if (document.selection) {
 343          myField.focus();
 344          sel = document.selection.createRange();
 345          sel.text = myValue;
 346          myField.focus();
 347      }
 348      //MOZILLA/NETSCAPE support
 349      else if (myField.selectionStart || myField.selectionStart == '0') {
 350          var startPos = myField.selectionStart;
 351          var endPos = myField.selectionEnd;
 352          myField.value = myField.value.substring(0, startPos)
 353                        + myValue 
 354                        + myField.value.substring(endPos, myField.value.length);
 355          myField.focus();
 356          myField.selectionStart = startPos + myValue.length;
 357          myField.selectionEnd = startPos + myValue.length;
 358      } else {
 359          myField.value += myValue;
 360          myField.focus();
 361      }
 362  }
 363  
 364  function edInsertLink(myField, i, defaultValue) {
 365      if (!defaultValue) {
 366          defaultValue = 'http://';
 367      }
 368      if (!edCheckOpenTags(i)) {
 369          var URL = prompt('Enter the URL' ,defaultValue);
 370          if (URL) {
 371              edButtons[i].tagStart = '<a href="' + URL + '">';
 372              edInsertTag(myField, i);
 373          }
 374      }
 375      else {
 376          edInsertTag(myField, i);
 377      }
 378  }
 379  
 380  function edInsertImage(myField) {
 381      var myValue = prompt('Enter the URL of the image', 'http://');
 382      if (myValue) {
 383          myValue = '<img src="' 
 384                  + myValue 
 385                  + '" alt="' + prompt('Enter a description of the image', '') 
 386                  + '" />';
 387          edInsertContent(myField, myValue);
 388      }
 389  }


Généré le : Fri Mar 30 19:41:27 2007 par Balluche grâce à PHPXref 0.7