[ Index ] |
|
Code source de WordPress 2.1.2 |
1 <?php @require_once('../../wp-config.php'); cache_javascript_headers(); ?> 2 var WPAjax = Class.create(); 3 Object.extend(WPAjax.prototype, Ajax.Request.prototype); 4 Object.extend(WPAjax.prototype, { 5 WPComplete: false, // onComplete function 6 WPError: false, // onWPError function 7 initialize: function(url, responseEl) { 8 var tempObj = this; 9 this.transport = Ajax.getTransport(); 10 if ( !this.transport ) 11 return false; 12 this.setOptions( { 13 parameters: 'cookie=' + encodeURIComponent(document.cookie), 14 onComplete: function(transport) { // transport = XMLHttpRequest object 15 if ( tempObj.parseAjaxResponse() ) { 16 if ( 'function' == typeof tempObj.WPComplete ) 17 tempObj.WPComplete(transport); 18 } else if ( 'function' == typeof tempObj.WPError ) // if response corresponds to an error (bad data, say, not 404) 19 tempObj.WPError(transport); 20 } 21 }); 22 this.url = url ? url : '<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php'; 23 this.getResponseElement(responseEl); 24 }, 25 addArg: function(key, value) { 26 var a = $H(this.options.parameters.parseQuery()); 27 a[encodeURIComponent(key)] = encodeURIComponent(value); 28 this.options.parameters = a.map(function(pair) { 29 return pair.join('='); 30 }).join('&'); 31 }, 32 getResponseElement: function(r) { 33 var p = $(r + '-p'); 34 if ( !p ) { 35 new Insertion.Bottom(r, "<span id='" + r + "-p'></span>"); 36 var p = $(r + '-p'); 37 } 38 this.myResponseElement = p; 39 }, 40 parseAjaxResponse: function() { // 1 = good, 0 = strange (bad data?), -1 = you lack permission 41 if ( this.transport.responseXML && typeof this.transport.responseXML == 'object' && ( this.transport.responseXML.xml || 'undefined' == typeof this.transport.responseXML.xml ) ) { 42 var err = this.transport.responseXML.getElementsByTagName('wp_error'); 43 if ( err[0] ) { 44 var msg = $A(err).inject( '', function(a, b) { return a + '<p>' + b.firstChild.nodeValue + '</p>'; } ); 45 Element.update(this.myResponseElement,'<div class="error">' + msg + '</div>'); 46 return false; 47 } 48 return true; 49 } 50 var r = this.transport.responseText; 51 if ( isNaN(r) ) { 52 Element.update(this.myResponseElement,'<div class="error"><p>' + r + '</p></div>'); 53 return false; 54 } 55 var r = parseInt(r,10); 56 if ( -1 == r ) { 57 Element.update(this.myResponseElement,"<div class='error'><p><?php _e("You don't have permission to do that."); ?></p></div>"); 58 return false; 59 } else if ( 0 == r ) { 60 Element.update(this.myResponseElement,"<div class='error'><p><?php _e("Something strange happened. Try refreshing the page."); ?></p></div>"); 61 return false; 62 } 63 return true; 64 }, 65 addOnComplete: function(f) { 66 if ( 'function' == typeof f ) { var of = this.WPComplete; this.WPComplete = function(t) { if ( of ) of(t); f(t); } } 67 }, 68 addOnWPError: function(f) { 69 if ( 'function' == typeof f ) { var of = this.WPError; this.WPError = function(t) { if ( of ) of(t); f(t); } } 70 }, 71 notInitialized: function() { 72 return this.transport ? false : true; 73 } 74 }); 75 76 Ajax.activeSendCount = 0; 77 Ajax.Responders.register( { 78 onCreate: function() { 79 Ajax.activeSendCount++; 80 if ( 1 != Ajax.activeSendCount ) 81 return; 82 wpBeforeUnload = window.onbeforeunload; 83 window.onbeforeunload = function() { 84 return "<?php js_escape(__("Slow down, I'm still sending your data!")); ?>"; 85 } 86 }, 87 onLoading: function() { // Can switch to onLoaded if we lose data 88 Ajax.activeSendCount--; 89 if ( 0 != Ajax.activeSendCount ) 90 return; 91 window.onbeforeunload = wpBeforeUnload; 92 } 93 }); 94 95 //Pretty func adapted from ALA http://www.alistapart.com/articles/gettingstartedwithajax 96 function getNodeValue(tree,el){try { var r = tree.getElementsByTagName(el)[0].firstChild.nodeValue; } catch(err) { var r = null; } return r; }
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 |