Ik heb een firefox extensie gedownload. Maar deze bevalt me nog niet helemaal. Ik wil het zelf gaan aanpassen. Iemand enig idee hoe ik dit moet doen? Ik heb het xpi bestand geopend. Er staan duidelijk javascript functies in het .js bestand. Moet ik deze aanpassen? Kan dat als het al geinstalleerd is? of moet ik het opnieuw installeren iedere keer?
het kan in iedergeval gewoon als het al geinstalleerd is..
verder heb ik er ook geen verstand van..
(tip: kijk in de maak je eigen extentie tut op de site van de add-ons)
Zou iemand mij kunnen helpen met deze extensie? Het gaat erom dat er informatie word verzonden, en dit moet worden opgevangen door php. Maar het probleem is,.. het lukt me niet om "wat het script al doet" nog eens te doen voor een ander stuk code.


// Get the "extensions.gtplugin." branch

var prefs = GTPlugin_getPrefs();
var GTPlugin_activated = 0;
var GTPlugin_result = 2;
var GTPlugin_selectedTyp = -1;
var GTPlugin_selectedWer = -1;
var GTPlugin_selectedGalaxy = -1;
var GTPlugin_selectedSystem = -1;
var GTPlugin_selectedRanks = -1;
var GTPlugin_Messagedoc;

function init() { GTPlugin_ext.init(); }

window.addEventListener("load", init, false);

var GTPlugin_ext = {
	init: function() {
		var appcontent = document.getElementById("appcontent");   // browser
		if(appcontent)
		appcontent.addEventListener("load", this.onPageLoad, true);
		var messagepane = document.getElementById("messagepane"); // mail
		if(messagepane)
		messagepane.addEventListener("load", this.onPageLoad, true);
		var prefs = GTPlugin_getPrefs();
		if (prefs.getBoolPref("gtplugin.settings.autostarten") == true)
		GTPlugin_Activate();
	},

	onPageLoad: function(aEvent) {

		if (GTPlugin_activated == 0) return;
		var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
		var text;
		// do something with the loaded page.
		// doc.location is a Location object (see below for a link).
		document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString( "toolbar.status.nothing" );
		if(doc.location.href.search("/game/galaxy.php") > -1) {
			// break if foxgame reduced galaxyview or enhanced debris field is enabled

			try {
				if (fgGetBooleanPref("foxgameRemovePlanets",true)) {
					// reduced galaxyview activated
					GTPlugin_selectedGalaxy = GTPlugin_getGalaxy(doc);
					GTPlugin_selectedSystem = GTPlugin_getSystem(doc);

					document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("galaxyfound.prefix")+GTPlugin_selectedGalaxy+":"+GTPlugin_selectedSystem+GTPlugin_GetLocString("galaxyfound.suffix");
					text = GTPlugin_get_galaxyview_data(doc,true);

				} else {
					// foxgame installed, but no reduced galaxyview activated
					GTPlugin_selectedGalaxy = GTPlugin_getGalaxy(doc);
					GTPlugin_selectedSystem = GTPlugin_getSystem(doc);

					document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("galaxyfound.prefix")+GTPlugin_selectedGalaxy+":"+GTPlugin_selectedSystem+GTPlugin_GetLocString("galaxyfound.suffix");
					text = GTPlugin_get_galaxyview_data(doc,false);
				}
			} catch(e) {
				// no foxgame installed
				GTPlugin_selectedGalaxy = GTPlugin_getGalaxy(doc);
				GTPlugin_selectedSystem = GTPlugin_getSystem(doc);

				document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("galaxyfound.prefix")+GTPlugin_selectedGalaxy+":"+GTPlugin_selectedSystem+GTPlugin_GetLocString("galaxyfound.suffix");
				text = GTPlugin_get_galaxyview_data(doc,false);
			}
			GTPlugin_result = GTPlugin_sendText("galaxy",text,doc.location.href);

		}
		if(doc.location.href.search("/game/stat.php") > -1) {
			GTPlugin_selectedTyp = GTPlugin_getStatsTyp(doc);
			GTPlugin_selectedWer = GTPlugin_getStatsWho(doc);
			GTPlugin_selectedRanks = GTPlugin_getStatswhitch(doc);
			document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("statsfound");

			var text = GTPlugin_getStatsText(doc);
			GTPlugin_result = GTPlugin_sendText("stats",text,doc.location.href);
		}
		if(doc.location.href.search("/game/messages.php") > -1) {
			document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("reportsfound");
			GTPlugin_Messagedoc = doc;
		}
		// Allyhistory
		if((doc.location.href.search("/game/allianzen.php") > -1) && (doc.location.href.search("&a=4") > -1)) {
			GTPlugin_result = GTPlugin_sendText("allyhistory",doc.getElementsByTagName("table")[4].innerHTML,doc.location.href);
		}


	}
}

function GTPlugin_FindReports() {
	// get information about what ranks were selected
	try {
		var messageElements = GTPlugin_Messagedoc.getElementsByTagName("table")[5].innerHTML;
		GTPlugin_result = GTPlugin_sendText("reports",messageElements,GTPlugin_Messagedoc.location.href  );
	} catch(e) {
		//alert(e);
	}
}


function GTPlugin_sendText(typ,text,source_url) {
	try {
		if (source_url.search(prefs.getCharPref("gtplugin.settings.ogameurl1")) > -1) {
			var txt = "user="+prefs.getCharPref("gtplugin.settings.username1")+"&password="+prefs.getCharPref("gtplugin.settings.password1")+"&typ="+typ;
			var url = prefs.getCharPref("gtplugin.settings.url1");
		} else if (source_url.search(prefs.getCharPref("gtplugin.settings.ogameurl2")) > -1) {
			var txt = "user="+prefs.getCharPref("gtplugin.settings.username2")+"&password="+prefs.getCharPref("gtplugin.settings.password2")+"&typ="+typ;
			var url = prefs.getCharPref("gtplugin.settings.url2");
		} else if (source_url.search(prefs.getCharPref("gtplugin.settings.ogameurl3")) > -1) {
			var txt = "user="+prefs.getCharPref("gtplugin.settings.username3")+"&password="+prefs.getCharPref("gtplugin.settings.password3")+"&typ="+typ;
			var url = prefs.getCharPref("gtplugin.settings.url3");
		} else if (source_url.search(prefs.getCharPref("gtplugin.settings.ogameurl4")) > -1) {
			var txt = "user="+prefs.getCharPref("gtplugin.settings.username4")+"&password="+prefs.getCharPref("gtplugin.settings.password4")+"&typ="+typ;
			var url = prefs.getCharPref("gtplugin.settings.url4");
		} else if (source_url.search(prefs.getCharPref("gtplugin.settings.ogameurl5")) > -1) {
			var txt = "user="+prefs.getCharPref("gtplugin.settings.username5")+"&password="+prefs.getCharPref("gtplugin.settings.password5")+"&typ="+typ;
			var url = prefs.getCharPref("gtplugin.settings.url5");
		} else {
			document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.unknownuni");
			return;
		}

		var responsetext = "";

		if (typ == "stats") {
			txt = txt + "&who="+GTPlugin_selectedWer+"&what="+GTPlugin_selectedTyp;
			if (GTPlugin_selectedWer == 0) responsetext = GTPlugin_GetLocString("statsupdated.playerprefix");
			if (GTPlugin_selectedWer == 1) responsetext = GTPlugin_GetLocString("statsupdated.allyprefix");
			if (GTPlugin_selectedTyp == 0) responsetext = responsetext + GTPlugin_GetLocString("statsupdated.scoreinfix")+GTPlugin_selectedRanks+GTPlugin_GetLocString("statsupdated.suffix");
			if (GTPlugin_selectedTyp == 1) responsetext = responsetext + GTPlugin_GetLocString("statsupdated.fleetinfix")+GTPlugin_selectedRanks+GTPlugin_GetLocString("statsupdated.suffix");
			if (GTPlugin_selectedTyp == 2) responsetext = responsetext + GTPlugin_GetLocString("statsupdated.researchinfix")+GTPlugin_selectedRanks+GTPlugin_GetLocString("statsupdated.suffix");
		}

		if (typ == "galaxy") {
			txt = txt + "&galaxy="+GTPlugin_selectedGalaxy+"&system="+GTPlugin_selectedSystem;
			responsetext = GTPlugin_GetLocString("galaxyupdated.prefix")+GTPlugin_selectedGalaxy+":"+GTPlugin_selectedSystem+GTPlugin_GetLocString("galaxyupdated.suffix");
		}

		if (typ == "reports") {
			responsetext = GTPlugin_GetLocString("reportsupdated");
		}
		if (typ == "allyhistory") {
			responsetext = GTPlugin_GetLocString("allyhistoryupdated");
		}

		txt = txt + "&content=" + encodeURIComponent(text); // needed to send data with special chars like \s or \n


		var httpRequest = new XMLHttpRequest();
		httpRequest.open("POST", url, true); // 3. Parameter ist für asynchronen Transfer nötig
		httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-Length", txt.length);
		httpRequest.send(txt);

		httpRequest.onreadystatechange = function () {

			if (httpRequest.readyState != 4) {
				//alert('Bad Ready State: ' + httpRequest.status);
				//document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.badreadystate")+httpRequest.status;
				return 0;
			} else {
				/*
				* Status Codes:
				- 200 = gernally okay
				- 403 = forbidden
				- Response Text:
				- 601: galaxy view inserted
				- 602: problem with inserting galaxy view
				- 611: report inserted
				- 612: at least one report was wrong
				- 621: stats updated
				- 622: stats not updated
				- 631: allyhistory updated
				- 632: allyhistory not updated
				*/

				if (httpRequest.status == 403) { // forbidden
					document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.permissiondenied");
					return 0;
				} else if (httpRequest.status == 404) { // Server responsed
					document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.pagenotfound");
					return 0;
				} else if (httpRequest.status == 200) { // Server responsed
					if ((parseInt(httpRequest.responseText) == 601) || (parseInt(httpRequest.responseText) == 611) ||
					(parseInt(httpRequest.responseText) == 621) || (parseInt(httpRequest.responseText) == 631)) { // gv updated
						document.getElementById("GTPlugin-status-view").value = responsetext;
						return 1;
					} else if (parseInt(httpRequest.responseText) == 602) { // gv not updated
						document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.gvnotupdated");
						return 0;
					} else if (parseInt(httpRequest.responseText) == 612) { // at least 1 report not inserted
						document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.reporterror");
						return 0;
					} else if (parseInt(httpRequest.responseText) == 622) { // stats not updated
						document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.statserror");
						return 0;
					} else if (parseInt(httpRequest.responseText) == 632) { // allyhistory not updated
						document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.allyhistoryerror");
						return 0;
					}
				} else {
					document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.badstatuscode")+httpRequest.status;
					return 0;
				}

			}
		};


	} catch (e){
		document.getElementById("GTPlugin-status-view").value = GTPlugin_GetLocString("error.gtservernotfound");
		//alert('An error has occured calling the external site: '+e);
		return 0;
	}
	return 0;
}


dit is het hele bestand: http://flashfocus.nl/forum/attachment.php?attachmentid=4900



Zoals je kan zien worden er gegevens verzonden als er een bepaalde pagina word geladen.
Nu wil ik een nieuwe functie toevoegen die uitgevoerd word op een bepaalde pagina:
zoals hier word gecheckt: if(doc.location.href.search("/game/galaxy.php") > -1

Wat het dus moet doen is op een bepaalde pagina controleren en dan de juiste informatie doorsturen met de functies. Als iemand hier verstand van heeft en mij wil helpen ben ik weer helemaal blij :) (al een dag aan het prutsen).

Reageren