Glossar im Forum

Started by metamorph, July 28, 2005, 08:12:43 AM

Previous topic - Next topic

Pitti

QuoteNachtrag:
Manchmal kommt es so vor, dass die "Stichwörter" zwar markiert werden (so wie sie sollen), aber dabei wird auch noch anderer Text ausgegeben, zB:
>> Glossar Rules');" onmouseout="return nd();">Glossar Rules und in den FAQs

ihr müßt aufpassen mit sonderzeichen in der textbeschreibung.
nen htmlspecialchars auf diesen text müßte man globe besser deswegen noch machen.

gruß pitti

Christian Land

#21
Naja, eigentlich sollte man in die Beschreibung HTML reinquetschen können (deshalb der Bug, wenn man da von Hand sowas wie >> reinschreibt - dann müsste man halt >> reinschreiben) ... daher hatte ich kein htmlspecialchars gemacht... mal sehen, vielleicht hab ich heute Abend langeweile und bau den Kram nochmal um, damit es noch einen Tick sauberer ist *g*

Also nochmal zur Erinnerung: In gloss_desc MUSS der Text als sauberes HTML drinne stehen! Das heisst: Spitze Klammern (die hier: < >) sind nicht erlaubt wenn sie unmotiviert in der Gegend rumstehen! Um auf das obige Beispiel zurückzukommen:

>> Glossar rules


ist falsch. Richtig wäre

&gt;&gt; Glossar rules


BBCode wird entsprechend im Moment nicht unterstützt!

Die Einträge muss man im Moment z.B. mit phpMyAdmin machen, da es keine eigene Oberfläche dafür gibt. Genausowenig kann man das Glossary-Mod im Moment an/-abschalten... das müsste noch jemand programmieren *unschuldigst flötend zu Pitti und medi guck* *g*

Prinzipiell müsste das Mod von der SMF-Version unabhängig sein... sollte also problemlos auch mit 1.0.5 laufen.

Nachtrag: Die aktuelle Version ist jetzt in der Admin-Konsole an-/abschaltbar... bleibt nur noch die Konfiguration der Wortliste übrig *g*

metamorph

Hallo,

konnte es nicht abwarten und habe es jetzt eingebaut  :D .

Mit SMF 1.05 funktioniert es prima und genau das was ich gesucht habe.

Habe aber bei Anleitung, also beim Einfügen von den Zeilen unterschiedliche Zeilen gehabt.


1.

Folgende Zeile habe ich in der index.template.php nicht gehabt.


<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[


und habe die Funktion do_gloss() direkt am Anfang nach den Kommentar der index.template.php
eingefügt.

2.

Die Zeile

// Run BBC interpreter on the message.
$message['body'] = parse_bbc($message['body'], $message['smileysEnabled'], $message['ID_MSG'])


in der Display.php hatte ich nicht und habe den entsprechenden Code nach der Zeile


// Run BBC interpreter on the message.
$message['body'] = doUBBC($message['body'], $message['smileysEnabled']);


eingefügt.

Ich wollte es nur angeben für die Leute die evtl. die Zeilen nicht finden.

Wie gesagt es funktioniert prima.

Vielen Dank nochmal an SnowCrow und mach weiter so. Ich werde sie jetzt ausführlich noch testen.


Metamorph



metamorph

Hi nochmal,

habe noch eine Frage.

Wenn ich über den Begriff gehe und die Erklärung erscheint, dann wird immer der erste Buchstabe durch die Hand verdeckt.



Wie kann ich dies ändern, wie auch die Darstellung des Fensters (Farbe).

Metamorph

Christian Land

#24
Da musst Du Dich ein wenig mit Overlib beschäftigen... siehe: http://www.bosrup.com/web/overlib/?Command_Reference

Grob gesagt musst Du die Zeile

$gloss_replace[] = '<a href="javascript:void(0);" onmouseover="return overlib(\''.str_replace('"','&quot;',str_replace("\r",'',str_replace("\n",'',addslashes(nl2br($row['gloss_desc']))))).'\');" onmouseout="return nd();">\1</a>';

umbauen... so z.B.

$gloss_replace[] = '<a href="javascript:void(0);" onmouseover="return overlib(\''.str_replace('"','&quot;',str_replace("\r",'',str_replace("\n",'',addslashes(nl2br($row['gloss_desc']))))).'\',WIDTH,400,OFFSETX,20);" onmouseout="return nd();">\1</a>';

wie Du siehst, ist die Zeichenkette ",WIDTH,400,OFFSETX,20" hinzugekommen (Fensterbreite ist dann 400 Pixel und das Ganze wird um 20 Pixel nach rechts verschoben). Das sind Parameter für die Overlib-Funktion. Wenn Du z.B. die Farbe ändern willst, müsstest Du das noch um FGCOLOR/BGCOLOR/TEXTCOLOR erweitern... (ist alles auf der Seite erklärt die ich oben genannt hab)

Also z.B.

$gloss_replace[] = '<a href="javascript:void(0);" onmouseover="return overlib(\''.str_replace('"','&quot;',str_replace("\r",'',str_replace("\n",'',addslashes(nl2br($row['gloss_desc']))))).'\',WIDTH,400,OFFSETX,20,BGCOLOR,\'#00ff00\',TEXTCOLOR,\'#ffff00\');" onmouseout="return nd();">\1</a>';

wichtig dabei ist, dass Du kein Hochkomma alleine ' in den Parameter benutzen darfst, sondern nen Backslash davorschreiben musst... also \' (wie in meinem Beispiel bei den Parametern BGCOLOR und TEXTCOLOR) weil sich sonst PHP verschluckt...

Hier noch ein kleines Beispiel für PopUps die weiss sind (FGCOLOR=#ffffff) mit schwarzem Rand (BGCOLOR=#000000) und dunkelblauer Schrift (TEXTCOLOR=#006090):

$gloss_replace[] = '<a href="javascript:void(0);" onmouseover="return overlib(\''.str_replace('"','&quot;',str_replace("\r",'',str_replace("\n",'',addslashes(nl2br($row['gloss_desc']))))).'\',WIDTH,300,OFFSETX,20,BGCOLOR,\'#000000\',FGCOLOR,\'#ffffff\',TEXTCOLOR,\'#006090\');" onmouseout="return nd();">\1</a>';

metamorph

Gut danke werde ich versuchen und rum experimentieren.


Ich habe noch etwas.

Ich habe bei Firefox beim Ausrufen des Fensters keine Probleme.
Aber bei IE6 zeigt er mir ein Skriptfehler 

Fehler: 'undefined' ist Null oder kein Objekt


Hat jemand eine Idee woran es liegt?

Metamorph

Christian Land

Gleiches Theme?

Der Fehler kommt wahrscheinlich weil er die overlib_mini.js nicht laden kann... schau mal in den Quellcode der Seite die generiert wird ob innerhalb des <head></head>-Blocks die Zeile

<script language="JavaScript" type="text/javascript" src="http://localhost/forum/Themes/default/overlib_mini.js"></script>

zu finden ist. Wie schon gesagt - am Besten ist die Zeile da aufgehoben wo die restlichen JavaScripts eingebunden werden... also z.B. nach der Zeile

<script language="JavaScript" type="text/javascript" src="http://localhost/forum/Themes/default/script.js?beta3"></script>

oder sonst irgendwo in der Gegend *g*

Wobei der "http://localhost/forum" Teil halt bei Dir anders sein sollte *g*

metamorph

Hi,

irgendwie habe ich generell mit dem Skript overlib_mini.js bei IE Probleme.

Ich benutze auch das Skript für die Mambo Komponente Glossary und diese macht auch den Fehler.

Bei Firefox läufts einwandfrei, das Skript wird auch reingeladen.

Kann jemand mal kurz mit IE6 nachschauen, ob er den selben  Javaskriptfehler bekommt.
Wäre nett.

Hier ist mein Link der Testplattform:


http://pic.fernando-heitor.de  auf der ersten Seite und im Forum

http://pic.fernando-heitor.de/index.php?option=com_smf&Itemid=41&topic=1359.0 [nofollow]



Danke

Metamorph

Christian Land

Das ist ein Problem der Mambo-Integration...

Ruf mal Dein Forum direkt auf: http://www.pic.fernando-heitor.de/picforum/index.php?topic=1359.0 - bei mir klappt es dort einwandfrei, auch mit dem IE...

Von daher kann ich Dir damit nicht wirklich helfen...

metamorph

Ok hast Recht liegt irgendwie an Mambo.

Trotzdem danke

Jetzt weiss ich wo ich suchen muss.



Dudelsack

Ich kann mir denken worans liegt...

Die overlib_mini.js wird nicht im Header aufgerufen, sondern im Body, kann es sein, dass es daran liegt?
sorry for my bad english

Christian Land

Die Datei wird sogar mehrmals eingebunden... ich tippe eher darauf, dass das das Problem ist... aber sicher bin ich mir nicht...

Wobei ich allerdings generell kein Freund davon bin, irgendwelche Seiten so in eine andere einzubinden wie es da bei Mambo passiert... man handelt sich dann nämlich solche Probleme wie jetzt ein und es sieht schei*** aus wenn ein Forum so in eine andere Seite reingequetscht wird. Dann lieber das Forum für sich aufrufen... ist problemloser und übersichtlicher.

Daniel D.

Quote from: SnowCrash on August 03, 2005, 06:53:16 AM
Wobei ich allerdings generell kein Freund davon bin, irgendwelche Seiten so in eine andere einzubinden wie es da bei Mambo passiert... man handelt sich dann nämlich solche Probleme wie jetzt ein und es sieht schei*** aus wenn ein Forum so in eine andere Seite reingequetscht wird. Dann lieber das Forum für sich aufrufen... ist problemloser und übersichtlicher.
Hach, irgendwie verstehen wir uns ;D...

metamorph

#33
Hallo,

Problem ist mir jetzt bekannt, es liegt am genutzten Template für das Mambo.


Es ist klar, dass das Design nicht schön ist und das Forum im Design "eingequetscht" wird.
Aber mir ist es erst wichtig das die komplette Technik drum herum funktioniert.
Erst zum Schluss kümmere ich mich um das Design. Selbstverständlich kann die momentane Breite des Forum nicht bleiben, gefällt mir auch nicht.

Ich habe das SMF mit dem Mambo integriert damit die Registrierten User sich nur einmal anmelden.

Danke Leute das ihr mir geholfen habt.





Dudelsack

Und jetzt nur noch ein Admin-Panel, wo man die Wörter eintragen/ändern/löschen kann, und so ein Paket wäre nicht schlecht *gg* ;)
sorry for my bad english

Dudelsack

Hi, so hier noch einmal die Problembeschreibung von vorhin, wegen den seltsamen Code, allerdings mit mehr Details:

Ich habe in einen Testforum im ersten Beitrag 4 mal hintereinander das Wort "Test" stehen (Test ist auch gleichzeitig das Glossar-Wort), es funktioniert einwandfrei.

Als zweiten Beitrag, habe ich wieder 3 mal hintereinander das Wort "Test" Test geschrieben, und es sieht seltsam aus:
QuoteTest klappt.');" onmouseout="return nd();"> Test klappt.');" onmouseout="return nd();">  Test klappt.');" onmouseout="return nd();"> Test,    Test klappt.');" onmouseout="return nd();"> Test klappt.');" onmouseout="return nd();">  Test klappt.');" onmouseout="return nd();"> Test ,    Test klappt.');" onmouseout="return nd();"> Test klappt.');" onmouseout="return nd();">  Test klappt.');" onmouseout="return nd();"> TEst

Dieser Text, wird so -wie er im quote zu lesen ist- auch im Beitrag angezeigt.
Das seltsame an der Sache ist eben, dass es vorhin (im ersten Beitrag) funktioniert hat, und im zweiten dann nicht mehr, ich nehme an, dass es per Zufall funktioniert...
Und man kann bei allen "Test"-Wörtern in den seltsamen Beitrag die Maus darüber fahren und die Beschreibung erscheint korrekt.

Irgendwelche Ideen?


Und hier die Daten in der Datenbank:
Wort: "Test"
Beschreibung: "Damit kann man etwas testen
Und hier wird gerade getestet, ob der Test klappt."
Word-Match: 0

Kann es sein, weil das Wort "Test" auch in der Beschreibung auftaucht?
sorry for my bad english

Christian Land

Ist das der einzige Eintrag in der Datenbank oder hast Du vielleicht "Test" mehrmals als gloss_word? Das Vorkommen des gloss_word in der gloss_desc spielt keine Rolle. Ich kann das nur reproduzieren, wenn ich sowas hier mache:

INSERT INTO `smf_glossary` VALUES (1, 'SMF', 'SMF = Simple Machines Forum. Forensystem das aus YaBB SE hervorgegangen ist.', 0);
INSERT INTO `smf_glossary` VALUES (2, 'Zensur', 'findet nicht statt', 0);
INSERT INTO `smf_glossary` VALUES (3, 'SMF', 'hier knallt es...', 0);
INSERT INTO `smf_glossary` VALUES (4, 'Diskussion', 'Wenn mehrere Leute miteinander reden... unglaublich aber wahr.', 0);

Dudelsack

Quote from: SnowCrash on August 04, 2005, 03:18:27 AM
Ist das der einzige Eintrag in der Datenbank oder hast Du vielleicht "Test" mehrmals als gloss_word? Das Vorkommen des gloss_word in der gloss_desc spielt keine Rolle. Ich kann das nur reproduzieren, wenn ich sowas hier mache:
Test ist derzeit das einzige gloss_word
sorry for my bad english

Christian Land

Hmm... seltsam... Du hast Recht... *g* Ich schau mal

Christian Land

#39
ARGH! OK, ich weiss was passiert...

Ersetz mal die Zeile

if (is_null($glosswords))

in "do_gloss()" durch:

if (is_null($gloss_search))

*hüstel*unschuldig flöt*

Das kommt davon, wenn man sowas mit der heissen Nadel strickt :( Beim ersten Posting in einem Thread hat es immer geklappt... und ich hab immer nur mit einem Posting getestet.. der Fehler war, dass er durch das vermurkste if-Statement die Wörter immerwieder neu geladen hat und die Liste der Wörter intern immer länger wurde...

Advertisement: