• Welcome to Simple Machines Community Forum. Please login or sign up.
December 08, 2021, 08:59:52 PM

News:

Follow SMF on Twitter.


Glossar im Forum

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

Previous topic - Next topic

metamorph

Hallo,

ich habe hier im Forum danach gesucht aber nichts gefunden.

Ich suche eine Art Mod, die nach selbstdefinierten Begriffen im Forum sucht, und diese duch mouseover die Definition in einem kleinen Fenster öffnet.

Es gibt sowas für cms Systeme wie Mambo das Glossary. Es wäre sehr interessant wenn bestimmte Begriffe nicht erkärt werden müssen, und das man die Definition direkt erhält.

Gibt es sowas für das SMF?

Danke im voraus.


Metamorph

Christian Land

Keine Ahnung ob das noch geht, aber bei YaBB konnte man sowas per Zensur-Funktion hintricksen... da hätte man dann einfach z.B. SMF als zu zensierendes Wort definiert und es z.B. mit <a href="javascript:hier nen popup mit glossar aufrufen">SMF</a> ersetzt... nicht elegant, aber eine Übergangslösung ;D

Hondo

Hallo,
für yabbse hatte ich das auch, aber nicht direkt im Forum sondern auf einer separaten seite.
Könnte dir jetzt nur noch ein Modul für MKPortal anbieten, falls dir das was hilft.

Gruß Andreas

Pitti

auf tom's hardwareguide läuft sowas ähnliches über nen javascript,
was nach laden der seite einzelne begriffe mit werbelinks hinterlegt,
die bei mouseover auch nen kleenes popup zeigen.

mal abgesehn davon, daß hier der content von dem abweicht, was du möchtest,
sollte die engine den gewünschten effect erbringen.
ob und wo es das ding gibt, weiß ich aber nicht.

gruß pitti

Dudelsack

Meinst du vielleicht die Akronyme?
Wie zB btw (<-- Fahr mit der Maus drüber)

Wenn ja, dan "Quote" mal meinen Beitrag, um zu sehen wie der BBCode geht, den fügst du dann einfach in die Zensurliste ein.
sorry for my bad english

Pitti

Quote from: Dudelsack on July 31, 2005, 02:58:16 PM
Meinst du vielleicht die Akronyme?
Wie zB btw (<-- Fahr mit der Maus drüber)

Wenn ja, dan "Quote" mal meinen Beitrag, um zu sehen wie der BBCode geht, den fügst du dann einfach in die Zensurliste ein.

sowas kannste auch in codetags fassen, da sieht mans gleich ;)
[acronym=btw: by the way]btw[/acronym]

so wärs auch ne idee. allerdings musses dann der parser auf dem webserver leisten.
als js dagegen der userrechner. (evtl optional abschaltbar)

gruß pitti

metamorph

Hallo,

danke für die Antworten, aber leider ist nicht das dabei, was ich suche.

Ich suche irgendwie eine Mod, in dem eine Wortliste mit Erklärungen also ein Glossar erstellt werden kann, und ohne BBCode diese Mod bei der Ausgabe des Threads die Wörter im Thread mit der Wortliste vergleicht. Sollten welche dabei sein, wird über diesen Begriff durch mouseover ein Fenster mit der Erklärung geöffnet.

Ich finde sowas ganz praktisch, weil die Foren immer für spezifische Themen sind mit speziellen Fachausdrücken.
Dadurch kann man die Fachbegriffe ohne weiteres verwenden, und andere die diesen Thread lesen auch die Fachbegriffe verstehen, obwohl sie es nicht kennen.

Schade das noch niemand auf so eine Idee gekommen ist.

Trotzdem danke

Metamorph

Dudelsack

Meinst du vielleicht sowas ähnliches? (siehe Wort Entity)
sorry for my bad english

metamorph

Hi dudelsack,

genau das .

Ich habe auch Mambo und die Glossary-Komponente wie auf der Seite installiert ist.
Nun möchte ich auch, das diese Wörter im Forum durchsucht werden.

Leider geht es laut Author der Komponente mit der Glossary-Komponente nicht, weil diese nur das News Content durchsucht.

Aber genau so was hatte ich mir eigentlich für das Simple Machine Forum vorgestellt.
Ich finde das Forum selbst klasse, bietet mehr als phpbb-Forum.

Kennst du vielleicht eine Möglichkeit so etwas zu realisieren?

Metamorph

Dudelsack

Sowas wäre durchaus ein genialer Mod (oder Standardfunktion...), würde ich auch installieren, aber bis jetzt hab ich keinen Mod, oder eine Funktion dafür gefunden.

Es gibt 3 Möglichkeiten:

Entweder du kannst es selber, und fangst gleich damit an ;)
Oder du fragst ein paar Hobbyprogrammierer (Featurerequest), ob sie so einen Mod für's SMF machen können, und wartest ab, bis es fertig ist.
Oder die dritte Möglichkeit; Du vergisst das Ganze, ganz schnell, und so ein Mod wird nie entwickelt ;)
sorry for my bad english

metamorph

Hi,

also die 3. Möglichkeit vergesse ich direkt.

Also bleibt nur die 1. oder 2. Möglichkeit, werde mich mal in den nächsten Tagen mal etwas mehr darüber informieren.

Vielleicht hat es noch keiner gemacht, wegen der Performance. Dies glaube ich aber nicht, denn es gibt so viele andere Mods die mehr Performance benötigen.

Ich finde die Idee in einem Forum auch genial.
Vielleicht liest das ein Mod Programmierer  :D und hat Lust dies zu programmieren. Denn ich denke sowas würden auch mehrere Leute installieren.

Werde zuerst mal dein 2. Vorschlag machen.


Trotzdem danke

Metamorph

Dudelsack

Ja, wäre sicherlich ein interessanter Mod.
Warum es den Mod bis jetzt noch nicht gibt, liegt wahrscheinlich daran, weil ihn noch niemand vorgeschlagen hat, vielleicht aber doch, und der Mod ist schon längst in Arbeit? ...
sorry for my bad english

Christian Land

August 02, 2005, 08:23:13 AM #12 Last Edit: August 04, 2005, 06:20:08 AM by SnowCrash
Da ihr gerade so nett am diskutieren seid...

Datenbank-Tabelle:

CREATE TABLE `smf_glossary` (
  `gloss_id` int(11) unsigned NOT NULL auto_increment,
  `gloss_word` varchar(60) NOT NULL default '',
  `gloss_desc` text NOT NULL,
  `gloss_match` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`gloss_id`),
  KEY `gloss_id` (`gloss_id`)
) ENGINE=MyISAM;


in Subs.php am Ende:

function do_gloss($message)
{

global $gloss_search,$gloss_replace,$db_prefix,$modSettings;

if ($modSettings['gloss_enabled'] == 1)
{

// load glossary

if (is_null($gloss_search))
{
$result = db_query('SELECT gloss_id, gloss_word, gloss_desc, gloss_match FROM '.$db_prefix.'glossary', __FILE__, __LINE__);
$glosswords = array();
while ($row = mysql_fetch_assoc($result))
{
$gloss_search[] = '/\b('.preg_quote($row['gloss_word']).')\b/'.(((int)$row['gloss_match']==0) ? 'i' : '');
$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>';
}
mysql_free_result($result);
}

// s&r

if (count($gloss_search)>0)
$message = preg_replace($gloss_search,$gloss_replace,$message);

}

return $message;

}


in index.template.php  vor die Zeile

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

folgende Zeile einfügen (WICHTIG! in jeder index.template.php muss die folgende Zeile im <head> vorkommen!)

<script language="JavaScript" type="text/javascript" src="', $settings['default_theme_url'], '/overlib_mini.js"></script>

dann noch Overlib von http://www.bosrup.com/web/overlib/ runterladen, entpacken und die Datei "overlib_mini.js" in das Themes\default Verzeichnis kopieren. Zu guter Letzt in Display.php noch nach

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


suchen und dahinter

$message['body'] = do_gloss($message['body']);

einfügen. Um das Ganze dann noch per Admin-Oberfläche an-/abschaltbar zu machen muss man noch in Modifications.english.php (oder welche Sprache auch immer -- im Themes\default\languages\ Verzeichnis) die Zeile

$txt['gloss_enabled'] = 'Glossary-Mod';

einfügen. In ModSettings.php muss man noch folgende Änderung vornehmen: hinter

array('rule'),
// Who's online.
array('check', 'who_enabled'),

         
muss der folgende Block eingefügt werden:

array('rule'),
// Glossary-Mod.
array('check', 'gloss_enabled'),


Danach hast Du eine einfache Glossar-Funktion die man über die Admin-Oberfläche (Letzter Punkt vor dem Karma-Kram) an-/abschalten kann...

Du musst nur in der smf_glossary Tabelle entsprechende Einträge machen... gloss_word ist die Zeichenkette die gesucht wird, gloss_desc die Beschreibung die eingeblendet wird und gloss_match gibt an ob die Gross-Kleinschreibung beachtet wird (1) oder ob nicht (0). In gloss_desc muss korrektes HTML benutzt werden! (also bitte keine spitzen Klammern, etc. wenn sie nicht gerade im Zusammenhang mit Tags benutzt werden... also nicht sowas wie ">> Überschrift" sondern "&gt;&gt; Überschrift" !!!)

Das Ganze ist so gut wie ungetestet, weil ich das gerade in 10 Minuten zusammengetippert habe, aber auf jeden Fall sollte es ein guter anfang sein... aber ACHTUNG: je mehr Einträge es in smf_glossary gibt, desto langsamer wird die Sache!

Das Ganze sieht dann so aus:



Achja... bisher nur mit SMF 1.1 Beta 3 getestet...


Edits:
  • do_gloss() aktualisiert
  • Hinweis wegen index.template.php eingebaut
  • Hinter "// s&r" noch die if()-abfrage eingebaut um zu verhindern, dass bei einer leeren smf_glossary die Nachrichten gelöscht werden
  • do_gloss() aktualisiert um die Admin-Einstellung zu berücksichtigen
  • Anleitung erweitert um zu erklären wie noch die Admin-Einstellung eingebaut wird
  • Bug gefixt der zu sehr "seltsamen" Mehrfach-Ersetzungen geführt hat

Dudelsack

wow, danke für die gute Anleitung, werde es am Abend einmal ausprobieren und dir dann bescheid geben,...
sorry for my bad english

Dudelsack

hm, ich habe ein Testwort hinzugefügt.
Das Wort wird unterstrichen, aber wenn ich mit der Maus drüberfahre, dann passiert nichts, also habe ich mir das ganze im IE angesehen, und der gibt eine Fehlermeldung im Bereich des Wortes aus:
"Nicht abgeschlossene Zeichenfolgenkonstante"

Was auch immer das heißt

Und das ist der Quelltext, in dieser Zeile:
<a href="javascript:void(0);" onmouseover="return overlib('<b>Test:</b> Dies ist nur ein <i>Test</i>');" onmouseout="return nd();">Test</a>
Kannst du damit irgendwas anfangen?
sorry for my bad english

Christian Land

August 02, 2005, 03:13:05 PM #15 Last Edit: August 02, 2005, 03:32:48 PM by SnowCrash
Schau mal in den Quellcode der Seite... steht da wirklich genau die Zeile oder sind da irgendwo Zeilenumbrüche?

Nachtrag: Ich hab in der Funktion "do_gloss" die Zeile mit dem $gloss_replace[]   = '<a href... usw. umgebaut... ist zwar nicht schön, sollte aber jetzt funktionieren.

Das Problem sollten Zeilenumbrüche oder Anführungszeichen gewesen sein.

Dudelsack

Hi!
Seltsam, jetzt funktioniert es plötzlich, auch ohne der Änderung, ...
Keine Ahnung wieso, vielleicht hat es was mit den Bildern zu tun, auf die man warten muss, bis sie fertiggeladen sind, ich weiß es nicht...

Ich werde in den nächsten Tagen mal ein Auge darauf werfen ;)
Danke
sorry for my bad english

Christian Land

Naja, bau am Besten mal die Version ein, die jetzt in meinem Posting steht... die ist nochmal etwas stabiler... sicher ist sicher ;D

Dudelsack

August 02, 2005, 06:22:54 PM #18 Last Edit: August 02, 2005, 06:44:58 PM by Dudelsack
Und wenn man:
$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>';

durch:
$gloss_replace[] = '<img src= "http://URL ZUM INFOBILD.gif" border="0" alt="Glossar" title="Glossar"> <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>';
ersetzt, dann kann man ein kleines Infobild davor setzen.

Sieht dann zB so aus:


Und falls wer das kleine Infobild haben will ,dann einfach speichern:


Mir war gerade langweilig ;)

Nachtrag:
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:
Quote>> Glossar Rules');" onmouseout="return nd();">Glossar Rules und in den FAQs
Das Wort, was hier gemeint ist, lautet "Rules", wenn ich mit der Maus drüber fahr, dann kommt das mini-popup, genauso, wie es auch funktionieren sollte, aber der restliche Text ist einwenig... seltsam...

Irgendeine Idee?
sorry for my bad english

metamorph

August 03, 2005, 01:57:45 AM #19 Last Edit: August 03, 2005, 02:00:18 AM by metamorph
Hi,

WOW klasse SnowCrash !!!

das so schnell jemand etwas dafür macht, finde ich klasse.

Werde es auch heute abend ausprobieren und testen.


Danke.

PS. Wo gibst du die Wörter mit Erklärungen ein?
      Meinste es funktioniert auch im SMF 1.05?
     


Metamorph

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

August 03, 2005, 02:53:54 AM #21 Last Edit: August 03, 2005, 03:36:09 AM by SnowCrash
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 &gt;&gt; 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

August 03, 2005, 04:57:39 AM #24 Last Edit: August 03, 2005, 05:03:12 AM by SnowCrash
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

August 03, 2005, 08:13:08 AM #33 Last Edit: August 03, 2005, 08:16:02 AM by metamorph
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

August 04, 2005, 06:18:51 AM #39 Last Edit: August 04, 2005, 06:22:52 AM by SnowCrash
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...

Dudelsack

Okay, danke, ja jetzt funktioniert es wieder *gg*
sorry for my bad english

Christian Land

Nur als Hinweis: Es gibt Probleme wenn man mehrere Begriffe in die DB schreibt die untereinander vorkommen... also z.B. als ersten Begriff "Test" mit der Beschreibung "Alles ganz furchtbar toll" und dann als zweiten Begriff "toll" mit der Beschreibung "Echt super!" anlegt...

Ich werd mal am Wochenende den ganzen Code in die Tonne kloppen und was neues programmieren... *seufz*

Ich weiss schon warum ich das Mod-Programmieren vor Ewigkeiten aufgehört hab *g*

Christian Land

Kurze Info: ich hab jetzt eine Version zusammengebaut, die auch mit dem oben von mir beschriebenen Problem fertig wird (und ich muss sagen... es war echt schwierig *g*). Ich werde sie heute Abend noch ein wenig testen und dann einen neuen Thread starten in dem alles Wissenswerte drin stehen wird.

Dudelsack

Quote from: SnowCrash on August 05, 2005, 01:51:08 PM
Kurze Info: ich hab jetzt eine Version zusammengebaut, die auch mit dem oben von mir beschriebenen Problem fertig wird (und ich muss sagen... es war echt schwierig *g*). Ich werde sie heute Abend noch ein wenig testen und dann einen neuen Thread starten in dem alles Wissenswerte drin stehen wird.
Hört sich gut an, danke!

Halt uns auf den Laufenden ;)
sorry for my bad english

Dudelsack

ähm ja Nachtrag:

Ich bekomme im Fehlerprotokoll folgende Einträge:
Undefined variable: glosswords
In Datei: Sources/Subs.php - Zeile: 3379

In der Zeile steht folgendes:
if (is_null($gloss_search))

Weißt du was das bedeutet? Oder wird das mit deiner "neuen Version" sowieso gefixt?

Die Fehlermeldung erscheint nirgens Öffentlich, also für mich eigentlich kein Problem, mir ist es eben einfach nur im Fehlerprotokoll aufgefallen.
sorry for my bad english

Christian Land

Die Meldungen dürften alt sein und Du kannst sie ignorieren.

Advertisement: