[ Index ] |
|
Code source de WordPress 2.1.2 |
1 <?php @require_once('../../wp-config.php'); 2 cache_javascript_headers(); 3 ?> 4 var autosaveLast = ''; 5 var autosavePeriodical; 6 7 function autosave_start_timer() { 8 var form = $('post'); 9 autosaveLast = form.post_title.value+form.content.value; 10 // Keep autosave_interval in sync with edit_post(). 11 autosavePeriodical = new PeriodicalExecuter(autosave, <?php echo apply_filters('autosave_interval', '120'); ?>); 12 //Disable autosave after the form has been submitted 13 if(form.addEventListener) { 14 form.addEventListener("submit", function () { autosavePeriodical.currentlyExecuting = true; }, false); 15 } 16 if(form.attachEvent) { 17 form.save ? form.save.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 18 form.submit ? form.submit.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 19 form.publish ? form.publish.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 20 form.deletepost ? form.deletepost.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 21 } 22 } 23 addLoadEvent(autosave_start_timer) 24 25 function autosave_cur_time() { 26 var now = new Date(); 27 return "" + ((now.getHours() >12) ? now.getHours() -12 : now.getHours()) + 28 ((now.getMinutes() < 10) ? ":0" : ":") + now.getMinutes() + 29 ((now.getSeconds() < 10) ? ":0" : ":") + now.getSeconds(); 30 } 31 32 function autosave_update_nonce() { 33 var response = nonceAjax.response; 34 document.getElementsByName('_wpnonce')[0].value = response; 35 } 36 37 function autosave_update_post_ID() { 38 var response = autosaveAjax.response; 39 var res = parseInt(response); 40 var message; 41 42 if(isNaN(res)) { 43 message = "<?php echo js_escape(__('Error: ')); ?>" + response; 44 } else { 45 message = "<?php echo js_escape(__('Saved at ')); ?>" + autosave_cur_time(); 46 $('post_ID').name = "post_ID"; 47 $('post_ID').value = res; 48 // We need new nonces 49 nonceAjax = new sack(); 50 nonceAjax.element = null; 51 nonceAjax.setVar("action", "autosave-generate-nonces"); 52 nonceAjax.setVar("post_ID", res); 53 nonceAjax.setVar("cookie", document.cookie); 54 nonceAjax.setVar("post_type", $('post_type').value); 55 nonceAjax.requestFile = "<?php echo get_option('siteurl'); ?>/wp-admin/admin-ajax.php"; 56 nonceAjax.onCompletion = autosave_update_nonce; 57 nonceAjax.method = "POST"; 58 nonceAjax.runAJAX(); 59 $('hiddenaction').value = 'editpost'; 60 } 61 $('autosave').innerHTML = message; 62 autosave_enable_buttons(); 63 } 64 65 function autosave_loading() { 66 $('autosave').innerHTML = "<?php echo js_escape(__('Saving Draft...')); ?>"; 67 } 68 69 function autosave_saved() { 70 var response = autosaveAjax.response; 71 var res = parseInt(response); 72 var message; 73 74 if(isNaN(res)) { 75 message = "<?php echo js_escape(__('Error: ')); ?>" + response; 76 } else { 77 message = "<?php echo js_escape(__('Saved at ')); ?>" + autosave_cur_time() + "."; 78 } 79 $('autosave').innerHTML = message; 80 autosave_enable_buttons(); 81 } 82 83 function autosave_disable_buttons() { 84 var form = $('post'); 85 form.save ? form.save.disabled = 'disabled' : null; 86 form.submit ? form.submit.disabled = 'disabled' : null; 87 form.publish ? form.publish.disabled = 'disabled' : null; 88 form.deletepost ? form.deletepost.disabled = 'disabled' : null; 89 setTimeout('autosave_enable_buttons();', 1000); // Re-enable 1 sec later. Just gives autosave a head start to avoid collisions. 90 } 91 92 function autosave_enable_buttons() { 93 var form = $('post'); 94 form.save ? form.save.disabled = '' : null; 95 form.submit ? form.submit.disabled = '' : null; 96 form.publish ? form.publish.disabled = '' : null; 97 form.deletepost ? form.deletepost.disabled = '' : null; 98 } 99 100 function autosave() { 101 var form = $('post'); 102 var rich = ((typeof tinyMCE != "undefined") && tinyMCE.getInstanceById('content')) ? true : false; 103 104 autosaveAjax = new sack(); 105 106 /* Gotta do this up here so we can check the length when tinyMCE is in use */ 107 if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 || rich == false ) { 108 autosaveAjax.setVar("content", form.content.value); 109 } else { 110 // Don't run while the TinyMCE spellcheck is on. 111 if(tinyMCE.selectedInstance.spellcheckerOn) return; 112 tinyMCE.wpTriggerSave(); 113 autosaveAjax.setVar("content", form.content.value); 114 } 115 116 if(form.post_title.value.length==0 || form.content.value.length==0 || form.post_title.value+form.content.value == autosaveLast) 117 return; 118 119 autosave_disable_buttons(); 120 121 autosaveLast = form.post_title.value+form.content.value; 122 123 cats = document.getElementsByName("post_category[]"); 124 goodcats = ([]); 125 for(i=0;i<cats.length;i++) { 126 if(cats[i].checked) 127 goodcats.push(cats[i].value); 128 } 129 catslist = goodcats.join(","); 130 131 autosaveAjax.setVar("action", "autosave"); 132 autosaveAjax.setVar("cookie", document.cookie); 133 autosaveAjax.setVar("catslist", catslist); 134 autosaveAjax.setVar("post_ID", $("post_ID").value); 135 autosaveAjax.setVar("post_title", form.post_title.value); 136 autosaveAjax.setVar("post_type", form.post_type.value); 137 if ( form.comment_status.checked ) 138 autosaveAjax.setVar("comment_status", 'open'); 139 if ( form.ping_status.checked ) 140 autosaveAjax.setVar("ping_status", 'open'); 141 if(form.excerpt) 142 autosaveAjax.setVar("excerpt", form.excerpt.value); 143 144 if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 || rich == false ) { 145 autosaveAjax.setVar("content", form.content.value); 146 } else { 147 tinyMCE.wpTriggerSave(); 148 autosaveAjax.setVar("content", form.content.value); 149 } 150 151 autosaveAjax.requestFile = "<?php echo get_option('siteurl'); ?>/wp-admin/admin-ajax.php"; 152 autosaveAjax.method = "POST"; 153 autosaveAjax.element = null; 154 autosaveAjax.onLoading = autosave_loading; 155 autosaveAjax.onInteractive = autosave_loading; 156 if(parseInt($("post_ID").value) < 1) 157 autosaveAjax.onCompletion = autosave_update_post_ID; 158 else 159 autosaveAjax.onCompletion = autosave_saved; 160 autosaveAjax.runAJAX(); 161 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Mar 30 19:41:27 2007 | par Balluche grâce à PHPXref 0.7 |