Beiträge von FragSalat

    Alles klar ich warte drauf :)


    Ja da hast du definitiv Recht und es ist mir wie schon gesagt auch peinlich.
    Dennoch waren die Reaktionen wie ich fand etwas übertrieben.

    Nein das habe ich nicht.
    Brauchst du eine SQL Query dafür?
    Wenn ja schick mir per pn einfach mal die Tabellen Struktur mit 1-2 Einträgen :)


    PS: Eventuell überdenkst du ja jetzt deinen Dislike nochmal :D

    Ok ich prüfe das mal.


    Edit: Für mich sieht die Query gut aus.
    Wie sehen die Berechtigungen für die Boards aus wovon die Threads nicht gelistet werden sollen?
    Z.B. Umfragen
    Getestet habe ich mit Jeder kann das Board sehen aber sonst nix.
    Registrierte Benutzer können das Board betreten und posten.

    Ah ich glaube ich sehe das Problem.
    Das Problem ist das ich Prüfe ob die Benutzer das Board sehen können und nicht ob Sie es betreten können :stock:


    Hier die neue Query
    thread.boardID NOT IN (SELECT objectID FROM wcf1_acl_option_to_group og INNER JOIN wcf1_object_type_definition otd ON otd.definitionName = 'com.woltlab.wcf.acl' INNER JOIN wcf1_object_type ot ON ot.objectType = 'com.woltlab.wbb.board' AND ot.definitionID = otd.definitionID INNER JOIN wcf1_acl_option o ON o.objectTypeID = ot.objectTypeID AND o.optionName = 'canEnterBoard' WHERE og.optionID = o.optionID AND og.groupID IN (1, 2) AND og.optionValue = 0) AND ISNULL((SELECT b.boardID FROM wbb1_board b LEFT JOIN wbb1_board b2 ON b2.boardID = b.parentID LEFT JOIN wbb1_board b3 ON b3.boardID = b2.parentID WHERE b.boardID = thread.boardID AND ((b.isInvisible = 1 OR b2.isInvisible = 1 OR b3.isInvisible = 1) OR (b.isClosed = 1 OR b2.isClosed = 1 OR b3.isClosed = 1))))

    So sieht das ganze bei mir aus

    PHP
    1. /**
    2. * @see wcf\system\event\IEventListener::execute()
    3. */
    4. public function execute($eventObj, $className, $eventName) {
    5. // Fix broken PATH_INFO on cgi
    6. if (!empty($_SERVER['REDIRECT_PATH_INFO']) && empty($_SERVER['PATH_INFO'])) {
    7. $_SERVER['PATH_INFO'] = $_SERVER['REDIRECT_PATH_INFO'];
    8. }

    Das Datum ist kein Fehler sondern die Sitemap wurde noch nie erstellt.
    Aufgrund der Teils riesigen Sitemaps werden diese nicht bei der Erstellung generiert.
    Sitemaps werden Standard mäßig alle 4 Stunden von einem Cronjob generiert.
    Man kann entweder diesen Cronjob manuell starten oder man navigiert im ACP nach System -> Wartung -> Anzeigen aktualisieren Und drückt dort den Knopf Sitemaps aktualisieren


    Darf ich dich fragen ob sich das Problem mit der Terms Of Use URL gelöst oder weiterhin Bestand hat?


    Gruß Sick^

    Ich habe dafür eine Lösung gefunden wie ich das über mein WBB SEO Plugin regeln kann.
    Am Ende wird es im ACP eine Textarea geben worin man die Fehlerseiten angeben kann.
    Das Plugin wird dann eine Umleitung vornehmen und gleichzeitig die Fehlermeldung dort ausgeben.
    In etwa in diesem Stil <status>|url

    Code
    1. 404|/Search
    2. 503|/Search
    3. 500|http://www.stagetwo.eu/Search


    Gruß Sick^

    Hey Alonso :)


    Das ist kein Problem :)
    Der Controller ist die Klasse, welche deine Seiten behandelt, darstellt und angibt wie die Standard URL aussieht.
    Diese kannst du anhand der Standard URL's erkennen.
    Hier ein paar Beispiele:

    • Der Controller wcf\page\User behandelt die URL /index.php/User/1-test
    • Der Controller wbb\page\BoardPage behandelt die URL /index.php/Board/1-test
    • Der Controller wbb\page\ThreadPage behandelt die URL /index.php/Thread/1-test
    • Der Controller wbb\page\FilePage behandelt die URL /index.php/File/1-test

    Die List Klasse dient zum Auflisten der Datenbank Objekte.
    Sprich das Auflisten der Themen, Boards, Benutzer, Dateien, News und so weiter.
    Von ihnen bekomme ich die ID und den Titel der Einträge.
    Zu jedem Controller, der mehrere Inhalte behandelt, gibt es eine Liste.
    Um die Benutzer aufzulisten gibt es z.B. die Liste wcf\data\user\UserList.
    Bei Themen wäre das wbb\data\thread\ThreadList.
    Für Dateien hätten wir in etwa eine solche Liste file\data\file\FileList.


    Nun zu deiner Frage:
    Themen Sitemap
    Controller: wbb\page\ThreadPage
    Liste: wbb\data\thread\ThreadList
    SQL Bedingung: thread.boardID NOT IN (SELECT objectID FROM wcf1_acl_option_to_group og INNER JOIN wcf1_object_type_definition otd ON otd.definitionName = 'com.woltlab.wcf.acl' INNER JOIN wcf1_object_type ot ON ot.objectType = 'com.woltlab.wbb.board' AND ot.definitionID = otd.definitionID INNER JOIN wcf1_acl_option o ON o.objectTypeID = ot.objectTypeID AND o.optionName = 'canViewBoard' WHERE og.optionID = o.optionID AND og.groupID IN (1, 2) AND og.optionValue = 0) AND ISNULL((SELECT b.boardID FROM wbb1_board b LEFT JOIN wbb1_board b2 ON b2.boardID = b.parentID LEFT JOIN wbb1_board b3 ON b3.boardID = b2.parentID WHERE b.boardID = thread.boardID AND ((b.isInvisible = 1 OR b2.isInvisible = 1 OR b3.isInvisible = 1) OR (b.isClosed = 1 OR b2.isClosed = 1 OR b3.isClosed = 1))))


    Für die Beiträge gibt es keine Sitemap da diese ja die URL vom Thread haben.
    Da ich das Marktplatz Plugin selber nicht besitze, kann ich da nur raten.
    Die SQL Bedingung ist optional und soll verhindern das nicht veröffentlichte bzw nicht sichtbare Inhalte gelistet werden.
    Der Marktplatz Eintrag hat bestimmt auch so etwas wie einen status welcher angibt ob der Eintrag öffentlich ist.
    Controller: marketplace\page\EntryPage
    Liste: marketplace\data\entry\EntryList
    SQL Bedingung: entry.status = 1


    Ich hoffe ich konnte dir helfen.


    Gruß Sick^

    Du kannst das auch als Hotfix selber machen.
    Du musst die Htaccess Rewrites ändern und den obigen Code in wcf/lib/system/event/listener/SEORouteEventListener.class.php am Anfang der execute Funktion einfügen.

    Ich habe wohl einen Workaround gefunden.
    Weil der blöde cgi bei dem rewrite die PATH_INFO scheinbar entfernt gebe ich diese selber mit.
    RewriteRule ^(.*)/ index.php [QSA,L,E=PATH_INFO:$1]


    Dann werde ich überprüfen ob PATH_INFO leer und REDIRECT_PATH_INFO gesetzt ist und weise die PATH_INFO zu.

    Code
    1. if (!empty($_SERVER['REDIRECT_PATH_INFO']) && empty($_SERVER['PATH_INFO'])) {
    2. $_SERVER['PATH_INFO'] = $_SERVER['REDIRECT_PATH_INFO'];
    3. }


    Damit funktioniert das dann...