Posts by itsmeJAY

    Hallo,


    ich habe eine Vermutung was das Problem sein könnte. Steht vor der Tabelle bzw. in den Tabellenspalten davor (kann auch Text in einer vorhergehenden Zeile sein) bereits Text?

    Ja, die Tabelle erscheint mitten im Eintrag. Davor steht normaler Text.


    Den gleichen Fehler kriege ich teilweise auch für einzelne <li> einer <ul> (nicht für jeden Punkt innerhalb der Liste, aber für einige).

    Hm, das verstehe ich nicht. Lexikon Eintrag angelegt, versucht nach einem Begriff zu suchen welcher in einer Tabelle innerhalb eines Eintrags verfügbar ist. Resultat: Keinerlei Treffer.


    Hin und wieder werden auch keine Einträge gefunden, welche keine Tabellen haben aber den Begriff der gesucht wird definitiv beinhalten. Ich kann dahinter immer noch kein System erkennen, aber irgendwie steckt da noch der Wurm drin bei mir.

    Hallo,


    ist es richtig, dass man in Tabellen in Beiträgen nicht suchen kann? Ich finde keine Einträge die in Tabellen existieren, obwohl das Wort (länger als 4 Zeichen) in einer Tabelle existiert.


    Gruß

    In diesem Fall würde MySQL einfach nur nach "Fehler" suchen ("36" würde einfach ignoriert) und dadurch auf die Treffer finden, in denen "Fehler 36" vorkommt aber eben auch Treffer ohne "36".

    Das stimmt so leider nicht, zumindest in meinem Fall. Suche ich nach Fehler 36, wird gar nicht erst gesucht bzw. es wird direkt die Meldung ausgegeben, dass nichts gefunden wurde. Würde er wenigstens „Fehler“ finden und würde das 36 ignorieren, wäre es ja schon brauchbarer.

    "Fehler" hat mehr als 3 Zeichen.

    "36" ist 2 Zeichen lang.


    In der Standardkonfiguration ignoriert MySQL Wörter mit weniger als 4 Zeichen, d.h. diese werden gar nicht erst in den Suchindex aufgenommen und können daher nicht gefunden werden.

    Okay, gibt es die Möglichkeit dies auf einem eigenen Server in der Konfiguration umzustellen?


    Gruß

    Dies ist auch bei mir der Fall, aber es geht hier wie mir bereits gestern der TE bestätigt hat, nicht um das Wort, bzw. die Ziffer "36", sondern um die Bezeichnung "Fehler 36" und dies wird, bzw. sollte über die Standardfunktion auch gefunden werden.

    Richtig. Wie geschrieben habe ich das Problem im Lexikon und VieCode bezieht sich nach meiner Rückmeldung auf die Suche vom WSC.


    „Fehler 36“ hat doch > 3 Zeichen und müsste somit von der Suche gefunden werden.


    Ich habe das alles jetzt in meinem Forum mit aktueller Lizenz und somit neuster Version ausprobiert, da finde ich auch nichts. Ich finde auch keine Themen die z. B. „Hallo wie funktioniert das?“ heißen obwohl diese existieren und auch im Suchindex sind. Ebenso haben diese Themen teilweise über 2000 Beiträge. Da wird einfach gar nichts gefunden wenn man den Thementitel identisch eingibt.

    Hallo,


    ich habe ein Thema mit dem Betreff „Fehler 36“ angelegt. Suche ich nach dem Betreff in der Suche, wird nichts gefunden.


    Siehe:

    Suche - WoltLab®
    www.woltlab.com

    (such nach Fehler 36 und wähle „Nur im Betreff suchen“)


    Thread welcher hätte gefunden werden müssen:


    Auf den „Fehler?“ bin ich durch das Lexikon aufmerksam geworden.

    Hallo,


    das sieht zumindest nicht offensichtlich falsch aus. Ich kann allerdings auch nicht sagen, ob es richtig ist. Dazu am besten Rücksprache mit VieCode halten.

    Danke, das reicht mir vorerst - das sollte klappen, weil $this->moduleList dann überschrieben wird. Ich hätte mich weiterhin dämlich gesucht ^^ Nochmals danke!

    Hallo Tim Düsterhus,


    du hast mir erst einmal weitergeholfen - danke dafür.


    Ich sehe hier spontan jetzt nur die Möglichkeit im Event assignVariables folgendes zu machen und im conditionBuilder einfach weiter einzugrenzen und da bereits die Überprüfung zu machen, ob der Benutzer die Untereseite sehen darf. Dann würde die moduleList überschrieben und wird von "außen" nicht mehr angefasst.


    Im Event assignVariables:

    Code
            if ($page->entry->modules) {
                $page->moduleList = new EntryModuleList();
                $page->moduleList->getConditionBuilder()->add('entryID = ?', [$this->entryID]);
                $page->moduleList->sqlOrderBy = 'sortOrder ASC';
                $page->moduleList->readObjects();
            }

    Das sollte das Problem doch theoretisch lösen?


    Grüße,

    JAY

    Hallo,


    danke. Das bedeutet effektiv gibt es keine saubere Möglichkeit über einen EventListener die moduleList zu ändern? Oder würdest du dies ggf. irgendwie anders lösen?


    Wundern tut mich aber immer noch, weshalb es bei einige Einträgen klappt und bei anderen hingegen wieder nicht.


    Grüße

    Hallo,


    danke für deine Antwort.

    Hilfe, warum ist die ->objects-Eigenschaft einer DatabaseObjectList public ;( .

    Vielleicht vertu ich mich jetzt, aber die ->objects der DatabaseObjectList sind protected. Siehe z. B.:


    wcfDebug($page->moduleList):


    Ich manipuliere hier keine Werte der ->objects, sondern entferne (unset) lediglich einige objects aus dem Array ($this->moduleList), welches in der EntryPage.class.php public ist.


    Ist das o.g. Verhalten von mir fehlerhaft?


    Ganz konkret fällt dir hier vermutlich auf die Füße, dass du durch die Löschung des Wertes dafür sorgst, dass indexToObject ungültige Daten enthält.

    Ist diese Aussage nach meiner Erläuterung immer noch valide?

    Hallo,


    ich stecke gerade mehr oder weniger an einem Fehler fest, welchen ich nicht nachvollziehen kann. Vielleicht kann sich jemand ja etwas darunter vorstellen.


    Ausgangssituation: Ich erweitere das Lexikon von VieCode. In dem Lexikon wird bei Einträgen das Array "moduleList" in der EntryPage.class.php in das Template gerendert und beinhaltet alle Module (Unterseiten) zu diesem Eintrag.

    Ich manipuliere das Array $this->moduleList (BEVOR es ins Template gerendet wird) über ein EventListener auf assignVariables. Unter gegebenen Umständen möchte ich nämlich nicht, dass der Benutzer eine bestimme Unterseite sieht und entferne diese vor dem Rendern aus dem Array.


    Der Code sieht wie folgt aus (gekürzt):


    Jetzt ist es so, dass ich bei einigen Lexikon Einträgen beim Aufruf folgende Fehlermeldung bekomme und bei anderen Einträgen funktioniert alles wunderbar und die Unterseite wird nicht angezeigt. Datenbanktechnisch sind alle Einträge gleich, es gibt keine Unterschiede im Inhalt.



    Ich habe natürlich erst einmal überprüft ob es den Key 85 ggf. wirklich nicht gibt. Der Key ist in dem Lexikon-Eintrag aber definitiv vorhanden (sonst würde er ja auch nicht durch die foreach-Schleife ausgegeben werden).


    Ich kann den Fehler nicht mehr nachvollziehen - auch wenn er erst einmal recht trivial zu beheben erscheint. Im Template werden auch lediglich die Unterseiten ausgegeben, welche ins Template gerendert wurden. Somit wird auch im Template nicht explizit auf irgendeinen Key zugegriffen.


    Ich teste weiter, aber vielleicht weiß ja jemand eine Lösung oder hatte so etwas ähnliches schonmal.


    Grüße,

    JAY