Extern Artikel/Blog Einträge erstellen? Codeschnipsel.

  • Hallo zusammen,

    welche Datei ist bei dem Blog aber auch bei den Artikel für den "Upload" der Bild-Dateien verantwortlich?

    Ich möchte diese entsprechend bearbeiten, dass Bilder nicht auf dem Server sondern beispielsweise auf Imgut hochgeladen und angezeigt werden.

    Mit ist bewusst, dass nach jedem Update die Dateien überschrieben werden, dass muss ich dann im Blick behalten.

    Danke im Voraus.

    LG

  • Sunny C. 24. Januar 2020 um 19:53

    Hat den Titel des Themas von „Artikel, Blog externe Bild-Auslagerung“ zu „Extern Artikel/Blog Einträge erstellen? Codeschnipsel.“ geändert.
  • Alle PHP Klassen sind im weiteren Sinne eine API. Eine Rest- oder SOAP-API für die Erstellung von Artikeln gibt es nicht.

    Mit "Einbindung" ist gemeint, dass wenn du bereits eine PHP Anwendung hast, von der aus die die Artikel anlegen willst, dass du dann die Dateien des WSC einbindest und darüber dann die Artikel anlegst.

  • Mit API ist der verlinkte Quellcode gemeint, wo anhand der von WoltLab vorgegebenen Methoden ein Artikel samt Inhalt erzeugt wird. Eine richtige API-Schnittstelle wie du es vermutlich von anderen Systemen kennst, gibt es im WoltLab-Imperium momentan leider nicht. Hier wirst du also gezwungen den WolLab Suite Core in deine PHP-basierte Anwendung einzubinden und dann den gleichen Weg zu gehen, wie WoltLab ihn geht. Insofern deine Anwendung nicht auf PHP basiert, müsstest du dir eine Möglichkeit schaffen, das deine Anwendung einen Endpunkt (=hier findet dann die Einbindung des WSC statt) auf deinen Server anspricht, der dann die gewünschte Aktion ausführt.

    Wie eine Einbindung in externe PHP basierte Anwendungen geht findest du über die Suchbegriffe "Externer Login" oder "Externe Registrierung".

  • Bin ich da auf dem richtigen Weg?

    Die Idee:

    Artikel extern einstellen:

    - Artikel-Bild Extern

    - Teaser-Bild Extern

    - Title

    - Tags

    - Einleitungstext

    - Inhalt/Content wahlweise mit oder ohne HTML

  • Grundsätzlich ja, aber bei den Programmierkenntnissen hapert es wohl noch ;)

    $this kannst du nur innerhalb einer Klasse verwenden. Du hast hier aber keine Klasse, also kannst du nur normale Variablen verwenden, die mit $ anfangen, also .B. $categoryID. Außerdem solltest du kucken, dass du den Variablen dann auch für dich passende Werte gibst, da diese jetzt noch leer sind (da nicht definiert).

  • Grüße Dich,

    danke für die Antwort.

    Ich habe da noch ein paar Fragen.

    Wie ist denn das $this->timeObj->getTimestamp() format aufgebaut?

    Was habe ich denn hier für Mögichkeiten? $this->publicationStatus, sind das Zahlenwerte?

    Zahlenwert? $this->isMultilingual

    Wie muss ich dies angeben? empty($this->labelIDs) ? 0 : 1 bzw. wie muss $this->labelIDs ersetzt werden?

    Womit muss ich $this->objectAction ersetzen?

    Woher kommt das? Wofür ist dies gedacht? $this->additionalFields

    Kann das so stehen bleiben? $article->articleID

  • Ungetestet und stark vereinfacht:

  • Vielen Dank für deine Antwort.

    Folgender Fehler:

    Zitat


    Error Type:

    Error

     

    Error Message:

    Using $this when not in object context

    PHP
    $htmlInputProcessors[0] = (new \wcf\system\html\input\HtmlInputProcessor())->process($this->content[0], 'com.woltlab.wcf.article.content', 0);

    Wenn ich aus $this->content[0] das mache: $content[0]

    erhalte ich folgende Meldung:

  • Could not execute statement 'INSERT INTO wcf1_article
    (time,categoryID,publicationStatus,publicationDate,enableComments,userID,username,isMultilingual,hasLabels)
    VALUES (?,?,?,?,?,?,?,?,?)'

    Das Script:

Jetzt mitmachen!

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