Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 8
Seite [1]
tobimo


King for a day




Beiträge: 253
# Thema - 04.11.2011 um 02:04 Uhr
Hallo zusammen.

Ich habe in der index.htm (im template-Ordner) einen Javascript-Teil eingebaut (im <head>).

Nun möchte ich dort bestimmte Variablen übergeben, die ich in einer .php-Datei in /wars/navtop, bestimmt habe.
Alternativ könnte ich Platzhalter im Schema {wars:wars_variable} einfügen.

Beides gelingt aber nicht so richtig, obwohl die Variablen stimmen.

ich füge dann im <script>-Teil folgende Variable ein:
<?php echo $jahr;?>
bzw. folgendenen Platzahlter:
{wars:variable]

Diese wird jedoch nicht umgesetzt.

Ich habe in der news/recent.php schon echo cs_subtemplate(__FILE__, $data, 'news', 'recent',1); eingefügt, damit (so dachte ich) die Variablen ausgelesen werden.

Bei dem Platzhalter wird mir dann im <script> folgendes umgesetzt:
m[0] wars - m[1] topmatch_jahr - ;

und mit dem php-Code, wird das im <script> angezeigt:
<?php echo $jahr;?>;

Die Variable die ich einsetze, funktioniert übrigens in der wars/navtop-Datei selber ohne Probleme.
Aber auch in der index.htm im <body> wird mir diese komische Ausgabe gemacht.
m[0] wars - m[1] topmatch_jahr - ;

So habe ich den Platzhalter erstellt:
 
1.
1. / 2. / ... 
 $data['wars']['topmatch_jahr'] = date("Y",$data['wars']['date_unix']);


... Wie lasse ich die Variablen/Platzhalter denn nun auslesen, damit es funktioniert?
Ich schätze, dass php-Tags gar nicht gelesen werden, weil es ja eine .htm-Datei ist.
Aber Platzhalter müssten doch eigentlich ersetzt werden, wenn man zusätzlich diese 1 hinzufügt.

Wenn jemand das nicht alles lesen möchte, hier meine Vermutung:
Das Problem liegt also vermute ich darin, dass der Platzhalter (der in wars/navtop funktioniert und erstellt wurde) nicht vernünftig ausgelesen wird (in der index.htm des templates/xyz/). Die Frage ist, wie mache ich das?



Zuletzt editiert von tobimo am 04.11.2011 um 02:11 Uhr (2x Editiert)
Inaktiv
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 1 - 04.11.2011 um 06:28 Uhr
Die index.htm ist der falsche Ort für das script. Wenns funktionieren soll, musst Du das Modul das das jscript verwenden soll anpassen. in Deinem Fall also mods/wars/topmatch.php. Im Modul müsste das jscript per cs_scriptload eingebunden werden.


------------------
--- CLANSPHERE ---
Professional clan care starts here


Inaktiv
|
palle ClanSphere Team

Supporter
Supporter




Beiträge: 3073
# Antwort: 2 - 04.11.2011 um 07:12 Uhr
04.11.2011 um 06:28 Uhr - SlayR:
Deinem Fall also mods/wars/topmatch.php

Ich kann mich daran erinnern eine navtop.php für clansphere programmiert zu haben und keine topmatch.php Ansonsten gebe ich Slayr recht.


------------------
I like the part where it says 'nyan'



Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 3 - 04.11.2011 um 15:09 Uhr
Wie funktioniert cs_scriptload denn?

cs_scriptload('templates/xyz/javascript.js'); oder wie ist der Befehl aufgebaut? In der Wiki steht leider nichts.


Zuletzt editiert von tobimo am 04.11.2011 um 15:17 Uhr (1x Editiert)
Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 4 - 13.11.2011 um 14:07 Uhr
Wie funktioniert diese Funktion? Ruft man damit eine Datei auf oder ruft man damit direkt javascript-Code auf?


Inaktiv
|
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 5 - 13.11.2011 um 16:22 Uhr
http://trac.csphere.eu/csp/browser/trunk/system/core/templates.php#L299

 
1.
1. / 2. / ... 
 function cs_scriptload($mod$type$file$top 0$media 'screen')


$mod = Modul, in dem die Zieldatei liegt

$type = javascript oder stylesheet

$file = Dateiname

$top = vor allen vorher eingereihten Dateien laden

$media = zielmedium, wohl so gut wie nur für css sinnvoll dies zu ändern, wenn überhaupt

media und top sind optional, man kann deren angabe also auslassen


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 6 - 14.11.2011 um 17:30 Uhr
Ah okey, alles klar. Danke!

Funktioniert leider immer noch nicht.

also in der navtop.php steht jetzt:
cs_scriptload($wars, $javascript, $countdown, $top = 0, $media = 'screen');

und in der countdown.js steht der Code vom Countdown.

wenn ich mir dann in der .tpl über <span id="Countdown" style="color: #ffffff;"></span> den Counter anzeigen lassen möchte, dann wird dieser gar nicht generiert. Obwohl ich bisher noch gar keine Variabeln habe übergeben lassen. (Ich wollte erstmal probieren, ob das so klappt und das tut es ja leider auch nicht). Wo ist der Fehler?


______

Normalerweise habe ich eine Datei countdown.html, wo dann im <script>-Tag der JS-Teil steht, dann ein onLoad-Befehl im <body>-Tag und über das <span>-Element zeige ich mir den Countdown an.

Daher habe ich jetzt den <script>-Teil in eine *js-Datei gepackt, den <span>-Teil in die *tpl-Datei und der onLoad-Befehl steht in der index*htm des Templates.

Resultat ist, dass mir im <span>-Element gar nichts mehr angezeigt wird...


Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 7 - 17.11.2011 um 16:08 Uhr
Ich glaube es ist nicht ganz klar, was nicht funktioniert. Deshalb erkläre ich das nochmal:

Ich habe einen <script>-Teil. In dem Teil möchte ich Variablen über php definieren.

Die Frage ist, wie mache ich das?

Wenn ich die Datei über cs_scriptload lade, kann ich sie ja nicht mehr verändern. Daher müsste ich den Inhalt davon laden, damit ich ihn verändern kann. Den <script>-Teil einfach in die *tpl oder in die *php schreiben wird nicht funktionieren, denke ich.

Wie löse ich das Problem?




------
aber anscheinend lädt der die Scriptdatei so gar nicht, weil auch mit festen Werten für den Countdown wird dieser nicht angezeigt, wenn ich ihn über die navtop.php lade und über die navtop.tpl ausgeben möchte.

Die Datei countdown.js liegt in mods/wars. Der cs_scriptload-Befehl müsste doch daher richtig sein oder?


Zuletzt editiert von tobimo am 17.11.2011 um 16:10 Uhr (1x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 8 - 17.11.2011 um 18:05 Uhr
dann pack den js code einfach in die tpl datei.
DAnn kannst du dort auch deine CSP Platzhalter nutzen.
Alles andere kann und wird nicht funktionieren, da cs_scriptload usw. nicht durch den 'Template-Parser laufen.
Somit würden deine Platzhalter nie ersetzt werden.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Antworten: 8
Seite [1]


Sie müssen sich registrieren, um zu antworten.