anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 18 Jul, 2019 20:21

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bugfix Addnav/Appoencode
BeitragVerfasst: Fr 07 Mai, 2010 23:47 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Ich bin gerade auf einen Fehler in der Funktion Addnav gestoßen, der die Navigation zerschießt, wenn vor dem Accesskey ein Farbcode steht, der als Kürzel den selben Buchstaben benutzt wie der Accesskey. Hier ein Beispiel:
$this->bbcode_second_pass_code('', 'Zum `tgolden`0 Priester; Key: Z
Zum `Apurpurnen`0 Priester; Key: u
Zum `4roten`0 Priester; Key: m
Zum `Zblauen`0 Priester; Key: b
Zum `ggrünen`0 Priester; Key: g')
Im Letzten Fall ist der Key nun gleich dem Farcode, sodass der `H-Code, der den Accesskey farblich hervor heben soll nicht vor dem angezeigten (zweiten) "g" eingefügt wird, sondern vor dem ersten. Dadurch entsteht folgender Text:
$this->bbcode_second_pass_code('', 'Zum ``Hg`Hgrünen`0 Priester')
Die beiden ``s werden dann im appoencode durch ein einzelnes ` ersetzt und kein Farbcode geparst. Das Zweite `H, dass die Hervorhebung eigentlich wieder schließen sollte, wird nun allerdings verarbeitet und das Farbschema in der Navigation ist zerschossen. Damit es richtig eingefügt wird und wieder so aussieht:
$this->bbcode_second_pass_code('', 'Zum `g`Hg`Hrünen`0 Priester')
muss folgender Code in der Funktion addnav(), normalerweise in der common.php, geändert werden:
$this->bbcode_second_pass_code('', '//Suche
$text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
// Ersetze mit
$index = strpos($text,$key);
$prekey = substr($text,$index-1,1);
if($prekey == "`") $index++;
$text=substr($text,0,$index)."`H".$key."`H".substr($text,$index+1);
')

Da der Fehler nur in einer bestimmten Kombination von Text und in Navs ja recht seltenen Farbcodes auftritt, ist er bisher wohl einfach noch nicht gefunden worden.

Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugfix Addnav/Appoencode
BeitragVerfasst: Sa 08 Mai, 2010 12:09 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Da muss ich ein klein wenig widersprechen. Auf das Problem mit den Farbcodes, die als Highlight gesetzt werden, habe ich schon vor etwa drei Jahren hingewiesen, und auch einen Bugfix gepostet: http://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=1095&hilit=addnav

Aber auf den ersten Blick scheint deine Lösung performanter, ich werd das mal austesten, und wahrscheinlich übernehmen. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugfix Addnav/Appoencode
BeitragVerfasst: Sa 08 Mai, 2010 13:25 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Tatsache - war wohl irgendwie an mir vorbei gegangen, aber ist ja auch schon drei Jahre her.

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugfix Addnav/Appoencode
BeitragVerfasst: Sa 08 Mai, 2010 18:10 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Stimmt, drei Jahre sind eine lange Zeit. Ich war selbst erstaunt wie alt dieser Post von mir schon ist. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugfix Addnav/Appoencode
BeitragVerfasst: Do 31 Jan, 2013 15:53 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Manchmal sieht man den Wald vor lauter Bäumen nicht. :???:
Ich habe da jetzt noch einen Fix erarbeitet, der kürzer, universeller und schneller ist:

suche in der common.php, in der Funktion addnav():
$this->bbcode_second_pass_code('', ' if ($key==""){
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" class='nav'>".appoencode($text,$priv)."<br></a>";
//$key==""; // This is useless
}else{
$text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
if ($pop){
$quickkeys[$key]=popup($link.$extra);
}else{
$quickkeys[$key]="window.location='$link$extra';";
}
}
')

und ersetze mit:
$this->bbcode_second_pass_code('', ' if ($key==""){
}else{
$index = $i;
$text=substr($text,0,$index)."`H".$key."`H".substr($text,$index+1);
if ($pop){
$quickkeys[$key]=popup($link.$extra);
}else{
$quickkeys[$key]="window.location='$link$extra';";
}
}
')


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum