Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Modul mit Javascript
Forum Sefrengo.org > Allgemeine Foren > Entwicklung
Chregu
Hallo Zusammen

Ich bin zurzeit an der Fertigstellung des Tagging-Plugin mit einigen Erweiterungen. Nun habe ich dazu noch ein Modul in der Entwicklung.
Das Modul hat einige AJAX-Implementation logischerweise mit Javascript-Funktion. Nun ist meine Frage, wie ich diese am besten ins Modul eingliedere.

Man könnte den ganzen Javascript-Teil direkt in die Ausgabe mit einbinden. Was ich persönlich gar nicht schön finde.
Oder man könnte das ganze als eigenes JS-File irgendwo in der Ordnerstruktur von Sefrengo unterbringen.

Nun ist meine Frage wie ihr das bewerkstelligen würdet? Mit einer externen Datei ist einfach die Unschöheit da, dass man diese Files noch von Hand herumkopieren müsste oder gäbe es alternativen?


Danke für euer Inputs.

Gruss
Chris
pawel
Guckst du hier.
Zurzeit bevorzuge ich die Sache aber noch manuell.
Chregu
Danke pawel...

Habe ich auch schon gesehen. Aber irgendwie ist das ein wenig übertrieben. Da sollte es doch auch no alternativen geben...

gruss
chregu
smail
ZITAT(Chregu @ Tue. 27. May 2008, 21:42) *
Habe ich auch schon gesehen. Aber irgendwie ist das ein wenig übertrieben. Da sollte es doch auch no alternativen geben...


Na, na, was heißt denn da übertrieben tongue.gif

Meines Wissens nach gibt es derzeit nur 4 Möglichkeiten, Angaben in den Header zu schreiben
  • direkt ins Layout schreiben
  • Modul in den Header setzen, dass das script einbindet
  • Plugin: Modifikation des Outputs über Autostarts (der Output wird dann aber immer verändert!)
  • Plugin: das von mir vorgestellte Konzept bzw. die Abwandlung von duffy (Kombination von Singleton-Implementation + Autostart)
Aus meiner Sicht bietet die letzte Variante einige Vorteile:
  • Einfache Handhabung: Plugins sind auch für Anwender ohne große Kenntnisse zu installieren, manuelle Anpassungen sind nicht mehr nötig
  • Übersichtlichkeit: sämtliche Ressourcen können vom Entwickler im Pluginverzeichnis abgelegt werden
  • kurze Ladezeiten: javascript-files (ebenso css, etc.) werden nur bei Bedarf geladen, d.h. wenn ein Modul die Ressourcen wirklich braucht
Klar, bei der Modul- bzw. Plugin-Entwicklung muss man sich einmal Gedanken machen. Danach aber nie wieder smile.gif

Wenn Du Verbesserungen hast, dann gerne her damit biggrin.gif

Gruß
Jan
pawel
Meines Wissens gibt es noch die fünfte Möglichkeit, zunächst entwickelt von ketti, und von mir genutzt im Googlemapsmodul...
Man kann die Variante sicher mit addheader verheiraten, prüft also bpws. ob das Plugin vorhanden ist und im anderen Fall schreibt man den Link in den Header auf die o.g. Weise.
smail
ZITAT
Meines Wissens gibt es noch die fünfte Möglichkeit, zunächst entwickelt von ketti, und von mir genutzt im Googlemapsmodul...


Wenn ich das richtig sehe, verwendest Du js zum einbinden
QUELLTEXT
document.write('<link rel="stylesheet" href="cms/css/maps.css" type="text/css" />');


Stimmt, damit gibt es noch einen Möglichkeit smile.gif
Im Fall von googlemaps ist das sicher praktisch, da die Karten ohne js eh nicht funktionieren. Für das Einbinden anderer Dateitypen (z.B. css) würde ich aber nicht darauf setzen.

Gruß
Jan
pawel
Nö, das war nicht damit gemeint. Das nutze ich nur, damit maps bei aktiven Js eine Höhe und Breite haben, der div ist ja ohne unnütz.

Ich meine diese Art direkte Outputmanipulation innerhalb einem im body(!) platzierten Modul:
QUELLTEXT
$head = "was soll rein...";
$code2_head = array($head);
    
            $mod['manipulate_output']  = '$magic = "<!--START head//-->"';
            $mod['manipulate_output'] .= '$start = strpos($output, $magic) + strlen($magic);';
            $mod['manipulate_output'] .= '$new_output  = substr($output, 0, $start);';
            $mod['manipulate_output'] .= '$new_output .= implode("", $code2_head);';
            $mod['manipulate_output'] .= '$new_output .= substr($output, $start);';
            $mod['manipulate_output'] .= '$output = $new_output;';
            $cfg_client['manipulate_output'] = $mod['manipulate_output'] . $cfg_client['manipulate_output'];


Bei Googlemaps wird dabei der Javascriptcode in den Header geschrieben, was auch nötig ist, um die Scripts von Google direkt einzubinden.
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.