Schnittstelle zu Wordpress

  • Hallo Zusammen,

    ich mache gerade eine Schnittstelle zu Wordpress. Die Funktionen beschränken allerdings erst mal auf einen Post, also einen Blogbeitrag von Wordpress ins WBB zu bringen und hinter her auch updaten zu können. Die Kommentarfunktion für entsprechende Beiträge auf Wordpress wird auch ersetzt, es sollen die letzten 5 Posts aus dem Forum Thread angezeigt werden. In der Blogübersicht soll auch noch die Anzahl der Antworten im WP-Beitrag angezeigt werden.

    In einem anderen Thread hab ich schon folgenden Code bekommen:



    Mit diesem Code kann man einen Thread erstellen lassen. Meine konkreten Fragen:

    Kann man nachdem erstellen des Threads die ThreadID abgreifen? Ich würde die gerne in Wordpress in ein custom field speichern, um nachher eine Zuordung zu haben.

    Anschließend würde ich einen Thread gerne updaten, also bearbeiten via PHP. Ich denke anstelle von create gibts sicherlich auch ein 'update' oder so?

    Kann mir jemand helfen oder die entsprechende Stelle in der API-Dokumentation nennen? Ich komme mit der Doku irgendwie nicht zurecht oder ich hab die Falsche.

    Gruß
    Koji

    • Offizieller Beitrag

    Kann mir jemand helfen oder die entsprechende Stelle in der API-Dokumentation nennen? Ich komme mit der Doku irgendwie nicht zurecht oder ich hab die Falsche.

    Es gibt keine richtige API-Dokumentation.

    An die Thread-ID kommst du über folgendes:

    PHP
    $parameters = $action->getReturnValues(); 
    $objectID = $parameters['returnValues']->getObjectID();

    Und wenn du ein Thema updaten möchtest, bist du mit update richtig. Allerdings brauchst du eine Post-Action (mit dem Posting), wenn du den Beitragstext verändern möchtest, dieser wird nicht mit dem Thema gespeichert, sondern in einem Beitrag.

  • Achja, sorry das war ein Denkfehler! Der Start-Post im Thread hat ja ne eigene ID, den Inhalt des Posts möchte ich ja verändern und nicht den Thread, daher bringt mir die ThreadID wohl gar nix.

    Ich werde das mal probieren und hier nochmal posten ob es geklappt hat.

  • Okay, jetzt verstehe ich es doch nicht. Wie komme ich denn an die PostID? :(

    Also der Vorgang ist ja Thread erstellen, wie oben angegeben, anschließend wir der Post in dem Thread ja nur geupdatet.

    Komm ich über die ThreradID irgendwie an die PostID? In der Table für Threads gibts die firstPostID, die kann ich aber so auch nicht ausgeben.


    edit:
    Wenn ich an die firstPostID käme wäre ja alles super. Aber scheinbar wird erst der Thread mit dem ThreadAction erstellt, das wiederrum PostAction ausführt. (Anscheinend nachdem der Thread logischerweise erstellt wurde.) Was bedeuten würde,dass die fristPostID auch danach erst eingetragen wird und ich bei der Thread-Erstellung noch gar keinen Zugriff drauf hab? Das muss doch möglich sein? Ich lasse die Felder in Wordpress als custom field ausgeben und wenn ich firstPostID nehme ist der Wert leer, aber threadID schreibt er die ID rein. Die threadID wird ja auch erst dann reingeschrieben, wenn der thread erstellt ist, mir erschließt sich nicht warum ich die firstPostID nicht auslesen kann.

    3 Mal editiert, zuletzt von Koji (15. September 2016 um 18:17)

    • Offizieller Beitrag

    Ohne mir das genauer angeschaut zu haben, wenn wirklich die firstPostID nicht gefüllt sein sollte, kannst du sowas machen (Namespace musst du selber eintragen):

    • Offizieller Beitrag

    Der Thread, der von \wbb\data\thread\ThreadAction::create() zurückgegeben wird, ist nicht 100%-ig aktuell. Wenn Du die ein aktuelles Thread-Objekt haben möchtest, verwende folgenden Code (ungetestet):

    PHP
    $returnValues = $action->executeAction();
    $thread = new \wbb\data\thread\Thread($returnValues['returnValues']->threadID);

    PS: Da habe ich wohl zu lange am Beitrag gesessen :whistling:

  • So erst mal vielen vielen Dank für eure Hilfe! Hat mir echt weitergeholfen. Das mit dem Posten und updaten klappt auch alles soweit. Ich muss die html-Ausgabe nur noch etwas anpassen, aber das ist ein anderes Thema.


    Jetzt würd ich in Wordpress noch gerne unter einem Bolgbeitrag, anstelle der Kommentare die letzten 3-5 Kommentare aus dem Thread zeigen. Ist sowas auch möglich? Ich weiß ich hab die LastPostID auch in der Thread-table. Wie lese ich denn so einen Post aus der DB aus? Mir reicht eigentlich Username und Message, ggf. noch time.

    Vielen Dank :)

    edit:

    Also den letzten Post eines Threads kann ich auslesen und auch alle Daten daraus. Ich würde gerne aber die letzten 3 oder 5 Posts haben. Wie mache ich das? Kann man irgendwie an alle Posts aus einem Thread kommen?


    Hat sich erledigt! Danke!

    2 Mal editiert, zuletzt von Koji (28. September 2016 um 17:57)

    • Offizieller Beitrag

    Folgender (ungetesteter) Code sollte das machen, was Du willst:

    $threadID musst Du natürlich entsprechend setzen und der foreach-Loop ist auch nur zur Veranschaulichung.

  • Hi Adhen,

    kommt drauf an was du brauchst. WIr sind mit unserem Umzug leider auch noch nicht durch weil ich das alles so nebenbei mache und das zieht sich natürlich.

    Meine Brücke funktioniert soweit aber, aktuell ist es nur in den Functions von Wordpress eingebunden. Ob ich daraus ein Plugin mache, weiß ich noch nicht, wäre aber auch kein Problem.

    Was bisher funktioniert:

    - Post ins WBB vom WP übertragen. (Aktuell werden alle Blog-Posts übertragen. Ich denke ich werde das noch an eine bestimmte Kategorie beschränken.)

    - Post in WP updaten -> Erster Beitrag im Thread in WBB wird geupdatet. Hier speichere ich ThreadID und PostID in Meta Fields in Wordpress, damit ich anhand den ID den Beitrag wieder zuordnen kann.

    - In den einzelnen Beiträgen im Worpdress werden dann die Kommentare aus dem Forum angezeigt. (HIer hab ich ein extra Script geschrieben.)
    - In der Blog-Ansicht gibts einen Disuktieren-Button (Anzahl-WBB-Kommentare, lässt sich ja direkt aus der WBB-DB auslesen.)


    Das ist bei uns halt sehr individuell. SSO zwischen WP und WBB ist bei uns nicht vorgesehen, weil wir in WP keine Anmeldungen haben und wollen, deshalb kann ich da leider nicht helfen.

    Wenn du Fragen hast kannst du mich gerne anschreiben.

  • Hi Koji,

    danke für die Antwort. Ein SSO brauche ich nicht mehr.

    - Post ins WBB vom WP übertragen. (Aktuell werden alle Blog-Posts übertragen. Ich denke ich werde das noch an eine bestimmte Kategorie beschränken.)

    Ja daran bastel ich gerade. Habe den Code oben genommen und schaue, wie weit man das anhand von Kategorien (WP Funktion has_catgories) trennen kann. Allerdings gibt es Artikel, die gar nicht ins Forum sollen. Also komme ich an einer manuellen Auswahl wohl nicht vorbei. da hackt es schon. ^.^"

    - Post in WP updaten -> Erster Beitrag im Thread in WBB wird geupdatet. Hier speichere ich ThreadID und PostID in Meta Fields in Wordpress, damit ich anhand den ID den Beitrag wieder zuordnen kann.

    - In den einzelnen Beiträgen im Worpdress werden dann die Kommentare aus dem Forum angezeigt. (HIer hab ich ein extra Script geschrieben.)

    Diese beiden Punkte wären mir auch sehr wichtig. Aha über Meta Fields. Interessanter Ansatz. >Hätte das über ne Tabelle in der DB gelöst. Das Script, wie man die Kommentare im Blog sieht, wäre hier am spannendsten. Hier fehlt mir jeder Ansatz. Wie löst du das? Ich hatte erst überlegt bei abschicken einer Antwort im Forum den Kommentar in die Kommentare des Blog Beitrags direkt zu schreiben. Aber kA wie ich das vom Forum aus antrigger.

    Außerdem müsste es die Möglichkeit geben, bei Artikeln, die nicht ins Forum gepostet wurden, nachträglich eine Thread ID anzugeben. Wenn nicht angegeben, dann wird ein Button angezeigt, der auf ein bestimmtes Forum leitet.

    - In der Blog-Ansicht gibts einen Disuktieren-Button (Anzahl-WBB-Kommentare, lässt sich ja direkt aus der WBB-DB auslesen.)

    Den Button brauche ich auch. :)

    Also so ziemlich was ihr auch umsetzt. Mit einer Änderung.

    Wie gesagt, das ins Forum posten bekomme ich evt. noch hin, aber das mit den Kommentaren aus dem Forum im Artikel, da brauche ich besonders Hilfe.

    VG

    Adhen

  • Huhu, also das mit dem automatisch posten funzt nun glaube ich. Man kann im Backend beim erstellen des Artikels ein Forum auswählen und dort wird der Thread erstellt. War gar nicht so einfach, denn das ließ sich nun nicht über ein Plugin bewerkstelligen. :/

    Bei meiner Version lässt sich der Thread nur nicht mehr updaten. Aber ich zeige eh nur den Excerpt im Thread an.

    Nu überlege ich an den Kommentaren. Am liebsten würde ich ja die bisherigen Kommentare weiter anzeigen lassen. Liest du jedes Mal aus dem Forum die Kommentare aus, wenn du den Artikel aufrufst?

    Und wie komme ich anhand der Thread ID an die URL des Threads um Forum? O.o

    Edit: Okay, habe ne Idee wegen den Kommentaren. Ich lese einfach WP und WBB Kommentare aus und lasse die anzeigen. :D und das mit dem Thread... ja, da stand ich auch aufm Schlauch. Einfach http://example.com/index.php?thread/<?php $threadID; ?>.

    Manchmal ist es so einfach. :D

    Einmal editiert, zuletzt von Adhen (3. April 2017 um 11:46)

  • Folgender (ungetesteter) Code sollte das machen, was Du willst:

    $threadID musst Du natürlich entsprechend setzen und der foreach-Loop ist auch nur zur Veranschaulichung.

    Hi, der Code funzt nicht. Ich bekomme immer den Error: Class 'Thread' not found. :/

  • Danke, hat funktioniert! :thumbup:

    Okay, jetzt habe ich nen mega Object wo auch irgendwo die replies drinne stehen. Aber der lässt mich da nicht ran. :/

    Edit: erledigt.

    2 Mal editiert, zuletzt von Adhen (3. April 2017 um 17:01)

  • Wie komme ich an die URL des Avatars den ein User verwendet?

    Edit: Erledigt. Die Schnittstelle funktioniert nun wie gewünscht! :D

    3 Mal editiert, zuletzt von Adhen (3. April 2017 um 21:12)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!