Benutzer:J*/Ka-Mel-Oh/Testgelände/Notizzettel: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
(Neuer Abschnitt: Wiki-Klasse)
Zeile 152: Zeile 152:
 
c instanceof fkt2
 
c instanceof fkt2
 
-->
 
-->
 +
 +
== Wiki-Klasse ==
 +
 +
wiki = {
 +
    /*
 +
    * getSource: fragt wiki nach Seitenquelltexten
 +
    * Argumente und Rückgabewerte als Objekt:
 +
    * objekt.wiki.title = Seitentitel (benötigtes Argument)
 +
    * objekt.wiki.source = Seitenquelltext (Rückgabewert)
 +
    */
 +
    getSource: new Async([
 +
        function ( args ) {
 +
            if (args == null)
 +
                args = {};
 +
            if (args.wiki == null)
 +
                args.wiki = {};
 +
 +
            new Ajax.Request( wgServer+wgScript, {
 +
                method:'get',
 +
                parameters: 'action=raw&title='+escape(args.wiki.title),
 +
                onSuccess: function( transport ) { args.wiki.source = transport.responseText; wiki.getSource.continue(args) },
 +
                onFailure: function() { args.wiki.source = null; wiki.getSource.continue( args ) }
 +
            })
 +
        },
 +
        null
 +
    ]),
 +
    /*
 +
    * getHTML: fragt wiki nach gerenderten Seiten
 +
    * Argumente und Rückgabewerte als Objekt:
 +
    * objekt.wiki.title = Seitentitel (benötigtes Argument)
 +
    * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
 +
    */
 +
    getHTML: new Async([
 +
        function ( args ) {
 +
            if (args == null)
 +
                args = {};
 +
            if (args.wiki == null)
 +
                args.wiki = {};
 +
 +
            new Ajax.Request( wgServer+wgScript, {
 +
                method:'get',
 +
                parameters: 'action=render&title='+escape(args.wiki.title),
 +
                onSuccess: function( transport ) { args.wiki.HTML = transport.responseText; wiki.getHTML.continue(args) },
 +
                onFailure: function() { args.wiki.HTML = null; wiki.getHTML.continue( args ) }
 +
            })
 +
        },
 +
        null
 +
    ]),
 +
    /*
 +
    * parse: lässt Wiki beliebigen Wiki-Quelltext rendern
 +
    * Argumente und Rückgabewerte als Objekt:
 +
    * objekt.wiki.source = Quelltext (benötigtes Argument)
 +
    * objekt.wiki.title = Seitentitel (für {{PAGENAME}} oder ähnliches)
 +
    * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
 +
    */
 +
    parse: new Async([
 +
        function ( args ) {
 +
            if (args == null)
 +
                args = {};
 +
            if (args.wiki == null)
 +
                args.wiki = {};
 +
 +
            filter1='<div id="wikilibajaxfilterdiv1"></div>';
 +
            filter2='<div id="wikilibajaxfilterdiv2"></div>';
 +
 +
            new Ajax.Request( wgServer+wgScript, {
 +
                method:'post',
 +
                parameters: 'action=submit&wpPreview=true&live=true&title='+escape(args.wiki.title)+'&wpTextbox1='+escape(filter1+args.wiki.source+filter2),
 +
                onSuccess: function( transport ) { args.wiki.HTML = transport.responseText.replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, "\"").replace(/&amp;/gi,"&").replace(new RegExp("^(.|\n)*"+filter1),"").replace(new RegExp(filter2+"(.|\n)*$"),""); wiki.parse.continue(args) },
 +
                onFailure: function() { args.wiki.HTML = null; wiki.parse.continue( args ) }
 +
            })
 +
        },
 +
        null
 +
    ])
 +
};
 +
 +
ready = function ( a ) { alert("-->"+String(a.wiki.HTML) ) };
 +
 +
wiki.parse.start( { wiki: {title:"Test", source:"{{Bild}}"} }, ready )

Version vom 21. Februar 2009, 13:49 Uhr


Framework: Array.prototype und Async

Klassenarchitektur der Karten

Wiki-Klasse

wiki = {

   /*
    * getSource: fragt wiki nach Seitenquelltexten
    * Argumente und Rückgabewerte als Objekt:
    * objekt.wiki.title = Seitentitel (benötigtes Argument)
    * objekt.wiki.source = Seitenquelltext (Rückgabewert)
    */
   getSource: new Async([
       function ( args ) { 
           if (args == null)
               args = {};
           if (args.wiki == null)
               args.wiki = {};
           new Ajax.Request( wgServer+wgScript, {
               method:'get',
               parameters: 'action=raw&title='+escape(args.wiki.title),
               onSuccess: function( transport ) { args.wiki.source = transport.responseText; wiki.getSource.continue(args) },
               onFailure: function() { args.wiki.source = null; wiki.getSource.continue( args ) }
           })
       },
       null
   ]),
   /*
    * getHTML: fragt wiki nach gerenderten Seiten
    * Argumente und Rückgabewerte als Objekt:
    * objekt.wiki.title = Seitentitel (benötigtes Argument)
    * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
    */
   getHTML: new Async([
       function ( args ) { 
           if (args == null)
               args = {};
           if (args.wiki == null)
               args.wiki = {};
           new Ajax.Request( wgServer+wgScript, {
               method:'get',
               parameters: 'action=render&title='+escape(args.wiki.title),
               onSuccess: function( transport ) { args.wiki.HTML = transport.responseText; wiki.getHTML.continue(args) },
               onFailure: function() { args.wiki.HTML = null; wiki.getHTML.continue( args ) }
           })
       },
       null
   ]),
   /*
    * parse: lässt Wiki beliebigen Wiki-Quelltext rendern
    * Argumente und Rückgabewerte als Objekt:
    * objekt.wiki.source = Quelltext (benötigtes Argument)
    * objekt.wiki.title = Seitentitel (für J*/Ka-Mel-Oh/Testgelände/Notizzettel oder ähnliches)
    * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
    */
   parse: new Async([
       function ( args ) { 
           if (args == null)
               args = {};
           if (args.wiki == null)
               args.wiki = {};

filter1='

'; filter2='

';

           new Ajax.Request( wgServer+wgScript, {
               method:'post',
               parameters: 'action=submit&wpPreview=true&live=true&title='+escape(args.wiki.title)+'&wpTextbox1='+escape(filter1+args.wiki.source+filter2),
               onSuccess: function( transport ) { args.wiki.HTML = transport.responseText.replace(/</gi, "<").replace(/>/gi, ">").replace(/"/gi, "\"").replace(/&/gi,"&").replace(new RegExp("^(.|\n)*"+filter1),"").replace(new RegExp(filter2+"(.|\n)*$"),""); wiki.parse.continue(args) },
               onFailure: function() { args.wiki.HTML = null; wiki.parse.continue( args ) }
           })
       },
       null
   ])

};

ready = function ( a ) { alert("-->"+String(a.wiki.HTML) ) };

wiki.parse.start( { wiki: {title:"Test", source:"

Informationen zu dieser Datei:
Quellen- und Urheberangaben
CopyUnknownIcon.png
... hat keine oder unzureichende Quellenangaben.

Bitte entsprechend die Quellen hier angeben! Falls alles selbst gemacht wurde: Hier "Quelle Selbst" benutzen!
Unter Umständen ist dies eine Urheberrechtsverletzung!

Vielleicht kannst du die Quelle mit TinEye oder Google ausfindig machen und hier eintragen?
nicht angegebenDreißiggrad.pngNichtbleichen.pngBügeln.pngTrockner.png
Nutzungsbedingungen
Lizenz(en) dieser Datei
Achtung klein.png
Keine Lizenz angegeben!

Kann jemand mal anstelle dieser Vorlage eine passende Lizenz wählen? Danke.
Beschreibende Markierungen
Keine Quelle.png
Diese Datei wurde noch nicht markiert.

Falls dir Stichworte zu dieser Datei durch den Kopf schwirren, klick auf „Bearbeiten“, klappe die Bild-Lizenz-Box auf, und spendiere dieser Datei knackige Schlagwörter …
 
Technik
Hä.png
Ich hab' keine Ahnung, welche Bildtechnik J*/Ka-Mel-Oh/Testgelände/Notizzettel nun ist!
Irgendwie versteh' ich das alles nicht so ganz. Kann mir vielleicht mal Jemand helfen?
Malware
Unbekannte Anwendung.png
Ich weiß leider nicht, mit welcher Ware J*/Ka-Mel-Oh/Testgelände/Notizzettel gemalt wurde!
Vermutlich ist das Bild schon etwas älter ... älter als diese Vorlage zumindest.
Was bedeuten die Symbole da rechts bei den Nutzungsbedingungen?
Sh.png
Datei darf weitergegeben werden
By.png
Urheber muss genannt werden
Sa.png
Nutzung nur unter gleicher Lizenz
Re.png
Datei darf verändert werden
Nd.png
Datei darf nicht verändert werden
Nc.png
Keine kommerzielle Nutzung

"} }, ready )