Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 22
Seite [1] 2 >
Jam2 ClanSphere Team


Highlander





Beiträge: 3291
# Thema - 31.05.2009 um 00:20 Uhr
nabend

{url:news_recent}
bei aktiviertem ajax wird aus dem #mod=news&action=recent aber in welcher funktion geschieht dies? bei der ersten ajax version wars noch in der cs_url funktion (wo auch die umwandlung für mod_rewrite zu finden ist)

grund:
ich will abfragen ob das modul board oder users ist und für die module eine andere index.php datei aufrufen (für ein anderes tpl)


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!
Inaktiv
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 1 - 31.05.2009 um 15:14 Uhr
hi,
hab auch schon überlegt eine solche unterscheidung einzubauen, dann halt gleich dynamisch für alle anderen index dateien. könnte aber noch etwas dauern bis ich zeit finde.

das geschieht sowohl in zeile 8 als auch in zeile 97/99. für formulare nochmal in der zeile 224, aber ich denke mal das brauchst du nicht zu verändern weil das nur formulare betrifft.

gruß
duRiel


Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 2 - 31.05.2009 um 15:57 Uhr
hey,
danke für deine antwort. zeile 97/99/8 sind sehr interessant. leider kann ich mit der js replace funktion nichts anfangen (google suche) und auch mit der vergleichbaren preg_replace php funktion hab ich noch nicht wirklich gearbeitet (als php anfänger)

die cs_url funktion +-
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
1. / 2. / ... 
<?php function cs_url($mod$action 'list'$more 0$base 0) {

  global 
$cs_main$account;
  if(!
file_exists('mods/' $mod '/' $action '.php')) {
    
cs_error('mods/' $mod '/' $action '.php','cs_url - File not found');
  }

  
$return $cs_main['php_self']['dirname'];
  
  if(
$mod == 'users'||$mod == 'board')
      
$base 'board';
    
  if(empty(
$cs_main['mod_rewrite'])) {
    
$base = empty($base) ? $cs_main['php_self']['basename'] : $base '.php';
    
$return .= $base '?mod=' $mod '&action=' $action;
    return empty(
$more) ? $return $return '&' $more;
  }
  else {
    
$return .= basename($cs_main['php_self']['basename'], '.php') . '/' $mod '/' $action;
    return empty(
$more) ? $return $return '/' strtr($more, array('&' => '/''=' => '/''&' => '/'));
  }
?>


ich müsste eigentlich nur zeile 99 (beispiel)
cont = cont.replace(/href=\"([a-zA-Z0-9\/\.\-\_]*)\?mod=(\w.+?)\"/g,"href=\"#mod=$2\"");
was vor ?mod=xxx steht, vor #mod=xx hinzufügen
denk ich richtig?

edit:
doch denkfehler hätte nichts gebracht
ich müsste vergleichen:
wenn das was vor ?mod=xxx steht "board || jsless || board-ohne" ist, dann muss es das nicht ersetzen


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 31.05.2009 um 16:06 Uhr (1x Editiert)
Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 3 - 31.05.2009 um 16:06 Uhr
so einfach funktioniert das nicht.
Ajax ruft ja, immer wenn man auf einen link klickt, die content.php auf, diese liefert den inhalt der seite aber ohne das template, also nur das was dann per js in der #content-div eingefügt wird.

wenn du statt der content.php einfach die board.php aufrufst, dann würde eine komplette html-seite (inkl head und allem drum und dran) in einen schon existierenden div eingefügt werden. dann wäre es total invalid und würde alles zerreissen.

also die einfachste möglichkeit wäre, die links darauf zu prüfen ob der mod, den sie laden, das gleiche layout benutzen soll, dass schon geladen ist oder ein anderes und im letzteren fall den link gar nicht in einen "ajax-link" zu convertieren, damit beim klick die seite wirklich komplett neu geladen wird.


------------------
www.laszlokorte.de

Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 4 - 31.05.2009 um 16:16 Uhr
ist eigentlich nicht schwer, nur den teil vor ?mod muss man abfragen ob der nicht board.php heißt. geht mit so nem "zusatzpattern", haben wir auch in der template.php irgendwo beim template.


Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 5 - 31.05.2009 um 16:18 Uhr
hmm, ich denke ich habe mich bisschen falsch ausgedrückt!

Du meinst bestimmt, dass ich von "#mod=xx" das machen wollte "board.php#mod=xx" dem ist nicht so.

Ich will, dass wenn ein Link "board.php" beinhaltet der Link gar nicht zu einem "ajax-link" umgewandelt wird sondern einfach so bleibt wie er aus der cs_url funktion ausgegeben wird



edit://

ok ich seh mit mal die templates.php an


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 31.05.2009 um 16:18 Uhr (1x Editiert)
Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 6 - 31.05.2009 um 16:21 Uhr
zeile 326:
 
1.
2.
3.
1. / 2. / ... 
<?php 
$cs_temp_get 
preg_replace_callback("={ (?!func)(.*?):(.*?)(:(.*?))*}=i"'cs_templatefile'$cs_temp_get);
 
?>


das leerzeichen am anfang gehört da nicht hin, musste ich nur einbauen damit das hier richtig angezeigt wird.


Zuletzt editiert von duRiel ClanSphere Team am 31.05.2009 um 16:22 Uhr (1x Editiert)
Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 7 - 31.05.2009 um 16:43 Uhr
mom mom mom mom

wenn ich statt
cont = cont.replace(/href=\"([a-zA-Z0-9\/\.\-\_]*)\?mod=(\w.+?)\"/g,"href=\"#mod=$2\"");
das $2 in $1 ändere dann sind die urls
z. B.
#mod=board.php

das würde mir reichen... jetzt muss ich nur noch vergleichen ob $1 == board.php, aber wie bekomme ich das $1 in eine variable zum abfragen?

(ich weiß meine fragen....^^)

edit:
doch nicht so leicht wie ich dachte, oder? da cont ja den ganzen quelltext beinhaltet


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 31.05.2009 um 16:48 Uhr (1x Editiert)
Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 8 - 31.05.2009 um 16:59 Uhr
hä?!
2 in 1 ändern?


du musst doch nur abfragen ob der teil nach mod "board" beinhaltet. das machst du wie eben geschrieben.


Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 9 - 31.05.2009 um 17:15 Uhr
also ich muss
={ (?!func)(.*?):(.*?)(:(.*?))*}=i

das irgendwo hier einbauen?
cont = cont.replace(/href=\"([a-zA-Z0-9\/\.\-\_]*)\?mod=(\w.+?)\"/g,"href=\"#mod=$2\"");

aber wo?


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 31.05.2009 um 17:16 Uhr (2x Editiert)
Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 10 - 31.05.2009 um 18:24 Uhr
ich würd (?!board) nach mod= einbauen. lies dich ansonsten mal etwas ein.


Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 11 - 31.05.2009 um 19:54 Uhr
thx duriel^^
cont = cont.replace(/href=\"([a-zA-Z0-9\/\.\-\_]*)(?!board.php)\?mod=(?!board)(?!users)(\w.+?)\"/g,"href=\"#mod=$2\"");

allerdings brauchte ich es vorher, da ich alle links die, die board.php aufrufen nicht umgewandelt haben wollte




------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 31.05.2009 um 20:53 Uhr (2x Editiert)
Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 12 - 01.06.2009 um 03:15 Uhr
das hängt ja von deinem aufbau ab.

inzwischen sind die meisten ja von der lösung weg gegangen, extra index dateien zu erstellen, und machen die unterscheidung lieber in der index.php direkt auf $_GET['mod'] und definieren dadurch das zugehörige template. da bräuchtest du die board.php nicht.


Inaktiv
|
fUnK3r ClanSphere Team


Specialist





Beiträge: 1656
# Antwort: 13 - 09.06.2009 um 10:43 Uhr
Ja, nur dass die Lösung mit $_GET['mod'] ja eben auch nicht Ajax kompatibel ist^^
Deshalb bin ich mittlerweile auch wieder auf die Lösung mit der board.php umgestiegen.

Eine schöne Lösung für Ajax wäre also sehr schön


------------------
Grüßle Jo
><(((°> Son of God through Jesus Christ his Son <°)))><
www.funk3r.de
while (!asleep() ) sheep++;


Inaktiv
|
Jam2 ClanSphere Team
Thread-Ersteller


Highlander





Beiträge: 3291
# Antwort: 14 - 09.06.2009 um 12:59 Uhr
und ich bin schon lange ein befürworter der extra index dateien^^


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Inaktiv
|
LoNE|Hitman


King for a day





Beiträge: 376
# Antwort: 15 - 03.06.2011 um 01:39 Uhr
Hey ich kram mal den alten Fred hier wieder raus.
Ich habe ein Problem mit AJAX und der Shoutbox. Da ich AJAX eigentlich nicht richtig nutzen kann, da ich 2 php Dateien habe mit normalem und breitem Content und AJAX irgendwie immer beim Wechsel zwischen den Dateien die news_recent kurz lädt, habe ich es ausgeschaltet. Nun ist es aber nervig, dass wenn man einen Post in die Shoutbox schreibt, immer die ganze Page neu geladen wird.

Meine Frage nun, wie bekomme ich AJAX nur für die SB ans laufen? Man kann ja in den Optionen einstellen, dass AJAX nur für einzelne aktiviert werden soll, aber wo definiere ich die einzelnen Module?


------------------
"Wer glaubt ein Licht am Ende des Tunnels zu sehen, sollte sich Gedanken machen, ob es nicht ein Zug ist, der einem entgegen kommt!"



System Info:
Clansphere Version: 2011.4.3
CS Website: http://www.lone-clan.de/
Browser: Firefox 27.0 / IE 9 / Safari 5 / Opera 11.11 / Google Chrome 7
OS: Windows 7 Home Premium x64


Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 16 - 03.06.2011 um 09:35 Uhr
AJAX für Einzelne, heißt AJAX für "Einzelne User", jeder kann also in den Einstellungen selbst entscheiden, ob er die Seite mit AJAX anzeigen lässt oder nicht.

Du könntest (obs klappt weiß ich nicht) den Spieß ja mal versuchen umzudrehen und Allem Kontent, der nicht über AJAX laufen soll, die Klasse "noajax" mitgeben. Also sämtlichen Clansphere-Platzhaltern in Deinem Template, bis auf die shoutbox. Müsstest Du natürlich mal wieder in Deinen beiden index.htm machen, also in der index.htm und der wide.htm. Nicht sehr elegant, könnte aber funktionieren.


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


Zuletzt editiert von SlayR ClanSphere Team am 03.06.2011 um 09:36 Uhr (1x Editiert)
Inaktiv
|
LoNE|Hitman


King for a day





Beiträge: 376
# Antwort: 17 - 03.06.2011 um 12:09 Uhr
Achso dann hatte ich das falsch verstanden...
Wie genau müssten denn die Platzhalter geändert werden wenn ich das so machen wollte wie du vorschlägst?
Ich muss also alle Links in der Navi und die {XX:YY} Platzhalter in der index irgendwie mit noajax versehen, richtig?


------------------
"Wer glaubt ein Licht am Ende des Tunnels zu sehen, sollte sich Gedanken machen, ob es nicht ein Zug ist, der einem entgegen kommt!"



System Info:
Clansphere Version: 2011.4.3
CS Website: http://www.lone-clan.de/
Browser: Firefox 27.0 / IE 9 / Safari 5 / Opera 11.11 / Google Chrome 7
OS: Windows 7 Home Premium x64


Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 18 - 03.06.2011 um 14:20 Uhr
Ja, genau richtig!
Es müsste also etwa so aussehen, als Beispiel für die Navigation (hier Forum):
 
1.
1. / 2. / ... 
 {url:board_list|noajax}

Beispiel für eine Navlist:
 
1.
1. / 2. / ... 
 {users:navonline|noajax}

Und noch der Code für den eigentlichen content:
 
1.
1. / 2. / ... 
 {func:show|noajax}


Das machst Du mit allen Platzhaltern, |noajax, ist die Klassenzuweisung. Mit allen, ausser Deiner Shoutbox.


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


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 19 - 03.06.2011 um 17:06 Uhr
Das wird nicht klappen, weil du selbiges auch für ALLE Links machen müsstest.

Wenn du Ajax nur für die Shoutbox brauchst, wäre es am einfachsten dafür selbst was mit jQuery zu bauen anstatt das Clansphere-Ajax zu benutzen.


/Edit: Ok, könnte doch klappen. Evtl musst du aber zumindest auch noch dem div in dem sich deine navigation befindet (aber nicht die shoutbox) class="noajax" geben.


------------------
www.laszlokorte.de

Zuletzt editiert von SCHIRI ClanSphere Team am 03.06.2011 um 17:07 Uhr (1x Editiert)
Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 20 - 03.06.2011 um 17:32 Uhr
Ist halt schon ziemlich schräg, was der Hitman da vor hat


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


Inaktiv
|
Antworten: 22
Seite [1] 2 >


Sie müssen sich registrieren, um zu antworten.