|
Kaan
678 posts |
#668 2014-12-14 21:32 GMT | |
|
Seditio 171 ve alt sürümleri için ajax uygulaması.
Bu uygulama ile Seditio 175'de bulunan Ajax destekli eklentileri sitenizde çalıştırabilirsiniz. Yapmanız gereken alttaki adımları izlemeniz. Ben Seditio 171 için anlatıyorum sizde kendi sitenizde hangi versionu kullanıyorsanız ona göre düzenleme yapabilirsiniz. Öncelikle Ana dizin plug.php yi açı PHP: $z = 'plug'; g';[/highlight]Altına ekleyin [highlight=php]if(!empty($_GET['ajx'])) { define('SED_DISABLE_XFORM', true); } [/highlight] System/core/plug/plug.inc.php'yi aà Kod: lttakini bulun. #039;ALP');[/code][code]$c2 = sed_import('c2','G& Altına Ekleyin. [highlight=php]$ajx = sed_import('ajx','G','ALP');[/highlight] Alttakini bulun [highlight=php]elseif (!empty($r)) { if (strpos($r, ".") !== FALSE || strpos($r, "/") !== FALSE) { sed_die(); } $incl = 'plugins/code/'.$r.'.php'; if (@file_exists($incl)) { require($incl); } else { sed_die(); } } else { sed_die(); } [/highlight] Değiştirin [highlight=php]elseif (!empty($r)) { if (strpos($r, ".") !== FALSE || strpos($r, "/") !== FALSE) { sed_die(); } $incl = 'plugins/code/'.$r.'.php'; if (@file_exists($incl)) { require($incl); } else { sed_die(); } } [/highlight] Değiştirdikden sonra Altına ekleyin [highlight=php]elseif (!empty($ajx)) { $extp = array(); if (is_array($sed_plugins)) { foreach($sed_plugins as $i => $k) { if ($k['pl_hook']=='ajax' && $k['pl_code']==$ajx) { $extp[$i] = $k; } } } if (count($extp)==0) { header("Location: message.php?msg=907"); exit; } if (is_array($extp)) { foreach($extp as $k => $pl) { include('plugins/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } } } else { sed_die(); }[/highlight] Seditio 171'de yine js/popjs.js'de alttakileri uygulayın. Alttakini bulun silin. [highlight=javascript]function ajaxSend(settings) { var method = settings.method || 'GET'; var data = settings.data || ''; var url = settings.url || $('#' + settings.formId).attr('action'); if(method == 'POST') { data += '&' + $('#' + settings.formId).serialize(); } $.ajax({ type: method, url: url, data: data, beforeSend: function() { $('#' + settings.divId).append('<span style="position:relative;left:' + ($('#' + settings.divId).width()/2 - 16) + 'px;top:-' + ($('#' + settings.divId).height()/2 - 16) + 'px;" class="loading" id="loading"><img src="js/spinner_bigger.gif" alt="loading"/></span>'); }, success: function(msg) { $('#loading').remove(); $('#' + settings.divId).hide().html(msg).fadeIn(500); }, error: function(msg) { $('#loading').remove(); alert(settings.errMsg); } }); return false; } [/highlight] Alttakini bulun Silin [highlight=javascript]function sed_ajax_getxmlhttp() { var xmlhttp = false; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest() } else if (window.ActiveXObject) { try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") } catch (E) { xmlhttp=false } } } return xmlhttp; } function sed_ajax_pass(url, callbackFunction, params) { var xmlhttp = new sed_ajax_getxmlhttp(); if (xmlhttp) { xmlhttp.onreadystatechange = function () { if (xmlhttp && xmlhttp.readyState==4) { if (xmlhttp.status==200) { var response = xmlhttp.responseText; var functionToCall = callbackFunction + '(response,'+params+')'; eval(functionToCall); } } } xmlhttp.open("GET",url,true); xmlhttp.send(null); } } function sed_ajax_set(url, obj_id) { var xmlhttp = new sed_ajax_getxmlhttp(); if (xmlhttp) { xmlhttp.onreadystatechange = function () { if (xmlhttp && xmlhttp.readyState==4) { if (xmlhttp.status==200) { if(typeof obj_id == 'object') { obj_id.innerHTML = xmlhttp.responseText; } else { document.getElementById(obj_id).innerHTML = xmlhttp.responseText; } } } } xmlhttp.open("GET",url,true); xmlhttp.send(null); } }[/highlight] Yukardakileri sildikden sonra alttakini bulun. [code]window.name = 'main';[/code] Altına ekleyin. [highlight=javascript]/*= Seditio Ajax functions -------------------------------------*/ ajax : { getHTTPObject : function() { var http = false; if(typeof ActiveXObject != 'undefined') { try {http = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try {http = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {http = false;} } } else if (window.XMLHttpRequest) { try {http = new XMLHttpRequest();} catch (e) {http = false;} } return http; }, load : function (url,callback,format,method,opt) { var http = this.init(); if(!http||!url) return; if (http.overrideMimeType) http.overrideMimeType('text/xml'); if(!method) method = "GET"; if(!format) format = "text"; if(!opt) opt = {}; format = format.toLowerCase(); method = method.toUpperCase(); var now = "uid=" + new Date().getTime(); url += (url.indexOf("?")+1) ? "&" : "?"; url += now; var parameters = null; if(method=="POST") { var postparams = ''; if(opt.formid) postparams = '&' + this.serialize(opt.formid); var parts = url.split("?"); //url = parts[0]; parameters = parts[1] + postparams; } http.open(method, url, true); if(method=="POST") { http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } var ths = this; if(opt.handler) { http.onreadystatechange = function() { opt.handler(http); }; } else { http.onreadystatechange = function () { if (http.readyState == 4) { if(http.status == 200) { var result = ""; if(http.responseText) result = http.responseText; if(format.charAt(0) == "j") { result = result.replace(/[nr]/g,""); result = eval('('+result+')'); } else if(format.charAt(0) == "x") { result = http.responseXML; } if(callback) callback(result); } else { if(opt.loading) document.getElementById(opt.loadingid).removeChild(opt.loading); if(opt.onError) {opt.onError(http.status); } } } } } http.send(parameters); }, bind : function(user_options) { var opt = { 'url':'', 'onSuccess':false, 'onError':false, 'format':"text", 'method':"GET", 'update':"", 'loading':"", 'formid':"" } for(var key in opt) { if(user_options[key]) { opt[key] = user_options[key]; } } if(!opt.url) return; var div = false; if(opt.loading) { div = document.createElement("div"); opt.loadingid = opt.loading; var intElemOffsetHeight = Math.floor(document.getElementById(opt.loading).offsetHeight/2) + 16; var intElemOffsetWidth = Math.floor(document.getElementById(opt.loading).offsetWidth/2) - 16; div.setAttribute("style","position:absolute; margin-top:-" + intElemOffsetHeight + "px; margin-left:" + intElemOffsetWidth + "px;"); div.setAttribute("class","loading-indicator"); document.getElementById(opt.loading).appendChild(div); opt.loading=div; } this.load(opt.url,function(data){ if(opt.onSuccess) opt.onSuccess(data); if(div) document.getElementById(opt.loadingid).removeChild(div); if(opt.update && data != "") {document.getElementById(opt.update).innerHTML = data;} },opt.format,opt.method, opt); }, serialize : function(formid) { var form = document.getElementById(formid); if (!form || form.nodeName !== "FORM") { return; } var i, j, q = []; for (i = form.elements.length - 1; i >= 0; i = i - 1) { if (form.elements.name === "") { continue; } switch (form.elements.nodeName) { case 'INPUT': switch (form.elements.type) { case 'text': case 'hidden': case 'password': case 'button': case 'reset': case 'submit': q.push(form.elements.name + "=" + encodeURIComponent(form.elements.value)); break; case 'checkbox': case 'radio': if (form.elements.checked) { q.push(form.elements.name + "=" + encodeURIComponent(form.elements.value)); } break; case 'file': break; } break; case 'TEXTAREA': q.push(form.elements.name + "=" + encodeURIComponent(form.elements.value)); break; case 'SELECT': switch (form.elements.type) { case 'select-one': q.push(form.elements.name + "=" + encodeURIComponent(form.elements.value)); break; case 'select-multiple': for (j = form.elements.options.length - 1; j >= 0; j = j - 1) { if (form.elements.options[j].selected) { q.push(form.elements.name + "=" + encodeURIComponent(form.elements.options[j].value)); } } break; } break; case 'BUTTON': switch (form.elements.type) { case 'reset': case 'submit': case 'button': q.push(form.elements.name + "=" + encodeURIComponent(form.elements.value)); break; } break; } } return q.join("&"); }, init : function() {return this.getHTTPObject();} }[/highlight] system/fonksiyon.php'de Alttakini bulun. [highlight=php]function sed_alphaonly($text) { return(preg_replace('/[^a-zA-Z0-9_]/', '', $text)); }[/highlight] Altına Ekleyin. [highlight=php]function sed_ajax_flush($res, $ajax) { if ($ajax) { ob_clean(); sed_sendheaders(); echo $res; ob_flush(); exit; } }[/highlight] Bu uygulamayı yaptıkdan sonra Seditio 175'de Ajax ile çalışan eklentileri kullanabilirsiniz. Seditio 171 için İlk Ajax Eklentimiz Like Eklentisi Hayırlı olsun.
Kişiliğim, hayatım hakkında konuşabilirsiniz. Fikir yürüte bilirsiniz. Beni öyle böyle sanabilirsiniz. Ama emin olamazsınız. Sizin hakkımdaki yorumlarınız, sanmalarınız benim gerçek de ne olduğumu değiştirmez. Baktığım yeri söyleye bilirsiniz ama ne gördüğümü ASLA...
Bu mesaj Kaan tarafından 2014-12-14 21:46 GMT, 4154 Gün önce düzenlendi. |