html Fehler im Lexikon

Forum_Lexicon_Desc

html Fehler im Lexikon

Beitragvon Dungeonwatcher » 14. Mai 2010 13:01

Hi großer Meister! 8)

Schön das du wieder dabei bist. :D

Drei Schönheitsfehler hat das Lexikon 2 seit seiner Fertigstellung, welche ich selber nicht korrigiert bekomme.

Der erste betrifft dass unerlaubte Tag alt in den Links. Dieser Code:

Code: Alles auswählen
alt="'.$lang['to_Lexicon'].'"


wird automatisch beim Eintragen eines neuen Stichwortes für alle Stichworte in die def_lexikon.php hinzugefügt, ist aber laut W3C nicht erlaubt. Nur ich finde nirgends die Stelle im Code wo ich das deaktivieren kann.

Der Zweite Schönheitsfehler betrifft Stichworte im Lexikon, welche aus mehreren Worten bestehen. Z.B. "die ist ein Suchwort".

Code: Alles auswählen
<td class="row2"><a name="die ist ein Suchwort"></a><span class="cattitle"><b><a href="lexicon.php?letter=die%20ist%20ein%20Suchwort" class="crosslink" alt="" title="">die ist ein Suchwort</a> die ist ein Suchwort (<a href="lexicon.php?letter=ASCII" class="crosslink" title="">


Dieses Stichwort wird zwar korrekt als solches angezeigt, der entsprechende Wert für das Attribut name ist aber Fehlerhaft, denn Leerzeichen sind auch nicht erlaubt.

Zu guter Letzt noch ein Fehler im PHP Code. Der Wert $lang['to_Lexicon'] für das Tag tittle wird nicht ausgefüllt. Das müsste dieser Codebereich sein:

Code: Alles auswählen
// init crosslinks
$crosslink_word = array();
$crosslink_url = array();
if ( defined('CACHE_LEXICON') )
{
   $lang['to_Lexicon'] = '';
   @include( $phpbb_root_path . './includes/def_lexicon.' . $phpEx );
   if ( empty($crosslink_word) )
   {
      cache_lexicon();
      include( $phpbb_root_path . './includes/def_lexicon.' . $phpEx );
   }
}

if ( empty($crosslink_word) )
{
   $sql = "SELECT keyword
      FROM  " . LEXICON_ENTRY_TABLE;
   if( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Could not get lexicon entrys from database', '', __LINE__, __FILE__, $sql);
   }
   
   if ( $row = $db->sql_fetchrow($result) )
   {
      do
      {
         $crosslink_word[] = '#\b(' . $row['keyword'] . ')\s#';
         $crosslink_url[] = '<a href="lexicon.'.$phpEx.'?letter=' . $row['keyword'] . '" class="crosslink">' . $row['keyword'] . '</a> ';
         $crosslink_word[] = '#\s(' . $row['keyword'] . ')\b#';
         $crosslink_url[] = ' <a href="lexicon.'.$phpEx.'?letter=' . $row['keyword'] . '" class="crosslink">' . $row['keyword'] . '</a>';
      }
      while ( $row = $db->sql_fetchrow($result) );
   }
}


Bye
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Re: html Fehler im Lexikon

Beitragvon AmigaLink » 14. Mai 2010 18:26

Hallo Dungeonwatcher.

Vorweg sei gesagt das die Lexicon v2 MOD nicht mehr weiterentwickelt wird.
Es ist zwar genau das eingetreten was ich damals vorausgesagt habe, nämlich das sich die phpBB Communty in 2 Gruppen spalten wird weil viele nicht auf das phpBB3 updaten können oder wollen (ich selbst werde bei meinem EmF auch noch was länger dafür brauchen). Dennoch lohnt es sich nicht weiterhin Zeit und Energie in die alten phpBB2 MODs zu stecken.
Von daher gehe ich gerne auf die ein oder andere Frage ein, sofern es mir -nach so langer Zeit- noch möglich ist, werde aber nichts mehr am Code meiner alten MODs verändern.

Zu deinen Anliegen:
Meine MODs waren noch nie zu 100% W3C Validiert. Weil ich Benutzerorientiert Arbeite und somit die Macken diverser Browser einbeziehe, was halt manchmal nicht den W3C Spezifikationen entspricht. Ich habe immer den goldenen Mittelweg gesucht und aus damaliger Sicht auch gefunden. Zum Beispiel ist das Attribut alt eigentlich nur für Bildbeschreibungen und nicht für Links. Da die Attribute alt und title aber von vielen Brwosern (vor allem IE) falsch Interpretiert wurden, setzte ich beide auch bei Links ein was früher von W3C bemängelt wurde (keine Ahnung ob das heute auch noch so ist).

Was das beheben der Mängel anbetrifft, bin ich ehrlich gesagt selbst ein wenig überfordert. Denn ich hab den Code dieser 5 Jahre alten MOD beim bestem willen nicht mehr im Kopf. Und kann auch nicht alles nachvollziehen weil das Lexikon hier nicht mehr installiert ist, ich (auf EmF) das Crosslinks AddOn nicht nutze und darüber hinaus sogar eine Entwickler-Version einsetze die (aufgrund meiner Pause) nie fertig -geschweige denn releast- worden ist.[code_2]## 2007-xx-xx - Version 2.0.5 DEV (unreleased)
## - fix bug in crosslinks
## - little stylefixes
## - fix bug in categorie selector
## - some codechanges for more individual employment and better phpBB compatibility
## - complete new cache management by the cache addons[/code_2] Der Cache dieser Version Basiert nicht mehr auf dem CH-Cache, sondern Arbeitet mit meiner eigenen Cache-Klasse die ohne def_lexikon_def.php auskommt und komplett anders Arbeitet.
Diese Cache-Klasse habe ich parallel zum CPSv2 entwickelt und sollte mal eine eigene MOD werden, die das komplette phpBB2 um ein vielfaches Beschleunigt hätte. (Ein identischer Cache läuft heute standardmäßig im phpBB3.)

Was ich dir aber sagen kann ist:
  • Die $lang['to_Lexicon'] ist vom Quicklinks-AddOn und war niemals für die Crosslinks gedacht.
    Die Variable wird zwar in die def_lexikon.php geschrieben, ist aber leer wenn das Quicklinks AddOn nicht installiert ist, was zu den leeren alt und title Attributen führt.
    Was in die def_lexikon.php geschrieben wird, ist in der def_lexicon_def.tpl vorgegeben.
  • Was mich ein wenig wundert ist der -von dir- gepostete letzte Codeblock.
    In den beiden $crosslink_url[] Zeilen müssten eigentlich alt und title Attribute vorgegeben sein, wie es in der def_lexikon.php der Fall ist. Könnte sein das dies der Stylefix ist der mit Version 2.0.5 gekommen wäre, müsste bei dir aber eh unrelevant sein weil du den Cache einsetzt und somit diese Zeilen nie ausgeführt werden.
  • Zu den Leerzeichen im name Attribut.
    Das gehört zu den Dingen die damals nicht bemängelt wurden (ich muss aber zugeben das es dennoch ein Fehler ist) und lässt sich einfach ändern.
    Code: Alles auswählen
    #
    #-----[ OPEN ]----------------------------------------------------------------
    #

    lexicon.php
    #
    #-----[ FIND ]----------------------------------------------------------------
    #

          'ANCHOR' => $title_anchor,
    #
    #-----[ REPLACE WITH ]--------------------------------------------------------
    #

          'ANCHOR' => str_replace(' ', '_', $title_anchor),
    #
    #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------------
    #
    # EoM
    Du kannst aber auch einfach <a name="{lexicon_row.ANCHOR}"></a> aus der lexicon_body.tpl löschen, denn die Anker werden sowieso nicht genutzt.
    Eigentlich müsste man auch noch die generierte URL bearbeiten, das hätte aber folgen für bereits bestehende Links und Suchmaschineneinträge.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Re: html Fehler im Lexikon

Beitragvon Dungeonwatcher » 15. Mai 2010 14:46

Hi! 8)

AmigaLink hat geschrieben:Vorweg sei gesagt das die Lexicon v2 MOD nicht mehr weiterentwickelt wird.


Jou, das war/ist mir durchaus klar.

Es ist zwar genau das eingetreten was ich damals vorausgesagt habe, nämlich das sich die phpBB Communty in 2 Gruppen spalten wird weil viele nicht auf das phpBB3 updaten können oder wollen


Ich gehöre zu den letzteren.

...lohnt es sich nicht weiterhin Zeit und Energie in die alten phpBB2 MODs zu stecken.


Null Problemo.

Von daher gehe ich gerne auf die ein oder andere Frage ein, sofern es mir -nach so langer Zeit- noch möglich ist, werde aber nichts mehr am Code meiner alten MODs verändern.


Nur wegen so einem alten "Nörgler" wie mich muss das auch nicht sein. :)

Meine MODs waren noch nie zu 100% W3C Validiert. Weil ich Benutzerorientiert Arbeite und somit die Macken diverser Browser einbeziehe, was halt manchmal nicht den W3C Spezifikationen entspricht. Ich habe immer den goldenen Mittelweg gesucht und aus damaliger Sicht auch gefunden.


W3C Konformität hin oder her, bis auf wenige Kleinigkeiten wie einige fehlende Tabellen Tags im ACP sind die alt Tags halt nur überflüssig.

Zum Beispiel ist das Attribut alt eigentlich nur für Bildbeschreibungen und nicht für Links. Da die Attribute alt und title aber von vielen Brwosern (vor allem IE) falsch Interpretiert wurden, setzte ich beide auch bei Links ein was früher von W3C bemängelt wurde (keine Ahnung ob das heute auch noch so ist).


Ohja, die werden weiterhin bemängelt. Ich jage mein Forum regelmäßig bei validome.org durch deren Validator und versuche dann evtl. vorhandene Fehler zu beheben. Zu 95% gelingt mir das dann auch.

Was das beheben der Mängel anbetrifft, bin ich ehrlich gesagt selbst ein wenig überfordert. Denn ich hab den Code dieser 5 Jahre alten MOD beim bestem willen nicht mehr im Kopf. Und kann auch nicht alles nachvollziehen weil das Lexikon hier nicht mehr installiert ist, ich (auf EmF) das Crosslinks AddOn nicht nutze und darüber hinaus sogar eine Entwickler-Version einsetze die (aufgrund meiner Pause) nie fertig -geschweige denn releast- worden ist. Der Cache dieser Version Basiert nicht mehr auf dem CH-Cache, sondern Arbeitet mit meiner eigenen Cache-Klasse die ohne def_lexikon_def.php auskommt und komplett anders Arbeitet.
Diese Cache-Klasse habe ich parallel zum CPSv2 entwickelt und sollte mal eine eigene MOD werden, die das komplette phpBB2 um ein vielfaches Beschleunigt hätte. (Ein identischer Cache läuft heute standardmäßig im phpBB3.)


Ahja.

Was ich dir aber sagen kann ist:
  • Die $lang['to_Lexicon'] ist vom Quicklinks-AddOn und war niemals für die Crosslinks gedacht.


Ich habe das <a name="{lexicon_row.ANCHOR}"></a> entfernt und validome.org meckert nicht mehr rum.
Außerdem habe ich diesen Block in der lexikon.php deaktiviert:

Code: Alles auswählen
if ( defined('CACHE_LEXICON') )
{
   $lang['to_Lexicon'] = '';
   @include( $phpbb_root_path . './includes/def_lexicon.' . $phpEx );
   if ( empty($crosslink_word) )
   {
      cache_lexicon();
      include( $phpbb_root_path . './includes/def_lexicon.' . $phpEx );
   }
}


Das Lexikon ist ohne den Cache genauso schnell wie mit.

Und noch etwas verwundert mich. Vor laaanger Zeit klagte ich mal über die schlechte Performance des Lexikons unter PHP5. Aktuell läuft bei mir PHP 5.2.13 und die Performance ist bestens. Die Seiten sind in unter einer Sekunde da. Die Server Hardware und das BS sind immer noch identisch, nur Apache und PHP sind auf den neuesten Stand. :x

Danke und schönes Wochenende 8)
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Re: html Fehler im Lexikon

Beitragvon AmigaLink » 15. Mai 2010 16:43

LOL Der Codeblock -den du da deaktiviert hast- gehört zu den Dingen die mir mir gar nicht mehr bewusst waren.
Da wird -unter anderem- die $lang['to_Lexicon'] gelöscht bzw. geleert damit der Tooltip nicht bei den Cropsslinks erscheint wenn das Quicklinks AddOn installiert ist. :)
Das Lexikon ist ohne den Cache genauso schnell wie mit.
Jo da tut sich nicht viel.
Ich habe das ja damals schon in den Beschreibungen der AddOns erwähnt. Für das Lexikon selber ist der Cache nur Interessant wenn das Board so Frequentiert ist das die Datenbank Permanent sehr stark Belastet wird. Und in dem Fall wäre es eigentlich wichtiger das ganze Board umfassend zu Optimieren, denn es ist nur ein Query das von dem dem Cache abgefangen wird.
Bei den Quicklinks sieht das ein wenig anders aus. Denn im Forum ist es ein Query pro angezeigten Beitrag. Das sind -bei den Standardeinstellungen des Forums- also bis zu 10 Querys die gespart werden, wenn eine Seite aufgerufen wird. (Eigentlich auch Blödsinn, aber beim phpBB2 waren/sind viele Dinge die man Optimieren konnte.)
Und noch etwas verwundert mich. Vor laaanger Zeit klagte ich mal über die schlechte Performance des Lexikons unter PHP5. Aktuell läuft bei mir PHP 5.2.13 und die Performance ist bestens. Die Seiten sind in unter einer Sekunde da. Die Server Hardware und das BS sind immer noch identisch, nur Apache und PHP sind auf den neuesten Stand.
Nun ja, auch PHP und mySQL werden ständig Optimiert. ;)
Du warst ja damals auch der einzige der einen Performanceeinbruch bemerkt hat. Vielleicht gab es auch irgend eine Funktion der Serversoftware (egal ob Apache, PHP, mySQL, ...) die auf deiner Hardware nicht 100%ig Optimal lief.
Den meisten Usern fällt sowas nur bei Spielen auf. Da gibt's ein UpDate und Schwubs läuft es bei dem einem um ein vielfaches besser und bei dem anderem so gut wie gar nicht mehr. Da ist dann irgendeine Programm-Routine die sich mit irgendeinem Bestandteil der Maschine (egal ob Hard- oder Software) nicht verträgt. (Im Falle der heutigen Spiele, ist es oftmals die Grafik-Engine.)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW


Zurück zu Lexicon v2



Wer ist online?

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

cron