Umsetzung von solchen "Mini-Pop-Ups" ?

also es soll kein Lexikon sein, welches der User selbst durchsuchen kann ...

schaut einfach mal auf http://www.k-hardware.de ... in deren News gibt es Wörter, die rot markiert sind und wenn man dann mit dem Cursor darüber fährt, wird einem eine Erklärung zu dem Begriff angegeben.

Also muss es ja irgendwo im Hintergrund ein Lexikon geben und sobald ein Wort aus diesem Lexikon im Text auftaucht, wird dieses im Text markiert und eine die Erklärung aus dem Lexikon dazugefügt ...

Guru
 
also du hast eine db im hintergrund, die zu den entsprechenden schluesselwoertern die erklaerungen hat.

bevor die seitentexte an den browser gesendet werden wird eben dieser seitentext durchgeparsed und die entsprechenden schluesselwoerter durch regulaere ausdruecke mit einem schicken dynamisch generierten javascript ersetzt...

got the point ? ;)
 
aber wenn ich den gesamten Text "explode" und mit jedem Wort aus der Datenbank vergleiche, dauert dieser Prozess dann nicht ziemlich lange ?

Guru
 
wer will denn hier irgendwas explodieren lassen ? ;)
du holst dir pro seite den text aus ner db oder textfile, oder wie auch immer und die schluesselwoerter (auch aus der db) und dann wird froehlich ersetzt.

z.b. so:

$ersetzter_text = eregi_replace("schluesselwort","<a href="details.php?word=schluesselwort">schluesselwort</a>",$text_der_seite_aus_db);

so in der art (vom prinzip her) kannst du das dann im text ersetzen...
 
stimmt, das wäre eine Möglichkeit ...

also für jedes Schlüsselwort aus meinem Lexikon einen "eregi_replace", richtig ?

Guru
 
so, das mit der mySQL-Datenbank und den POP-Ups hat jetzt alles geklappt ... nun möchte ich aber auch noch eine reine Lexikon-Seite gestalten und habe dazu folgende Fragen:

1. Ich möchte eine Auswahl-Liste mit allen Buchstaben des Alphabets umsetzen ... gibt es dafür eine Vereinfachung in PHP oder muss ich das alles manuell machen ? (kann man also über eine Funktion die Buchstaben des Alphabets "durchzählen" ?)

2. Wenn man dann auf den Buchstaben "C" klickt, sollen alle Begriffe aus der Datenbank angezeigt werden, die mit "C" beginnen. In meiner Tabelle in der Datenbank habe ich aber keine Spalte "Anfangsbuchstabe" ... brauche ich eine solche Spalte, oder geht das auch ohne ?

3. Wenn man sich die Erklärung eines Begriffs ansieht, soll man auch auf ähnliche Begriffe hingewiesen werden. Wie könnte man dies am besten umsetzen ? Ich habe mir überlegt, dass man eine weitere Spalte in der mySQL-Tabelle anlegt, in die dann die "IDs" der ähnlichen Begriffe kommagetrennt eingetragen werden. Ist diese Lösung empfehlenswert oder gibt es einen besseren Weg ?

Danke im Vorraus

Guru
 
1.
PHP:
for ($i=65;$i<=90;++$i)
   echo chr($i).", ";

2.
SELECT * FROM LEXIKON WHERE wort LIKE 'A%' //sucht alles was mit A anfaengt

3.
ja kann man so machen, doch wuerd ich evtl. eine extra tabelle dafuer nehmen ... vielleicht kannst du auch automatisch aehnliche worte per soundex suchen. http://www.php.net/soundex berechnet dir einen lautwert eines wortes, und so kannst du nach wertebereichen suchen ... ist auf jeden fall interessant ;)
 
mal wieder vielen Dank an dich, gecko !

zu 3. soundex ist in meinem Fall nicht wirklich passend, da ich ja z.B. beim Begriff "CPU" einen Link zu "Prozessor" generieren möchte...
Wie meinst du das mit einer extra Tabelle ???

Guru
 
eine extra tabelle mit den zuordnungen, z.b. so:

im lexikon:
id 1 name cpu
id 4 name prozessor
id 45 name mmu
id 60 name register

in der zuordnung
1 4
1 45
1 60

so deckst du auch gleich 4 1 ab, also den link vom prozessor zur cpu.
mit kommagetrennten musst du das in beiden definieren um die links in beide richtungen zu realisieren.
 
Zurück