Ankündigung

Einklappen
Keine Ankündigung bisher.

Thema automatisch erstellen

Einklappen
X
Einklappen
Momentan aktive Benutzer in diesem Thema: 1 (0 Benutzer und 1 Gäste)
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Thema automatisch erstellen

    In meinem Forum wird jedes Jahr gewichtelt. Wir erstellen uns dazu gegenseitig sog. Render (Bilder), die mit der tollen aber kostenlosen 3D Software Blender erstellt worden sind.

    Die Organisation ist aufwendig: Ankündigung schreiben, Benutzer per PN oder Mail einladen, diese verwalten, auslosen, mehrfach an die Abgabe erinnern, Render zustellen, Bescherungsthema schreiben. Das habe ich schon im letzten Jahr teilweise automatisiert, um mir die Arbeit zu sparen.

    Dieses und alle weiteren Jahre aber, will ich das Wichteln vollautmatisch ablaufen lassen. Also habe ich mich tiefer in vBulletin eingearbeitet. Man findet durchaus brauchbare Skripte in den bekannten Foren. Hier aber noch nicht. Darum stelle ich an dieser Stelle mein finales Skript für die automatische Ankündigung zur Verfügung, welches ich dann auch für das Bescherungsthema verwenden kann.

    Code:
    <?php define('CSRF_PROTECTION', false);
    
    $vbpath = ''; // <- Pfad zur Scriptbasis
    require_once($vbpath.'/includes/vb5/autoloader.php');
    vB5_Autoloader::register($vbpath);
    vB5_Frontend_Application::init('config.php');
    
    $api = Api_InterfaceAbstract::instance();
    $loginInfo = $api->callApi('user', 'login', array('Benutzername', 'Benutzerpasswort'));
    
    if (empty($loginInfo['errors']))
    {
        vB5_Auth::setLoginCookies($loginInfo, '', true);
    
        $data = array(
            'hvinput'  => '',
            'title'  => "Titel",
            'rawtext' => "<h4>Überschrift</h4><p>Content<br />weiterer Content</p><script txpe="text/javascript>.....",
            'parentid' => 20,
            'channelid' => 20,
            'nl2br' => false,
            'htmlstate' => 'on',
            'disable_bbcode' => true,
            'tags' => 'tag1,tag2,tag3'
        );
    
        $options = array(
            'skipDupCheck' => true
        );
    
        $nodeId = $api->callApi('content_text', 'add', array($data, $options));    
    }
    
    ?>
    Mithilfe eines externen Cronjobs rufe ich das Skript am entsprechenden Tag per cURL auf und logge damit einen Benutzer ein. Dieser Benutzer ist dann der Ersteller des Themas. Da innnerhalb beider Themen JavaScript verwendet wird, müssen die Themen als HTML angelegt werden. Dafür ist im Array folgende Variable gesetzt:

    'htmlstate' => 'on'

    Da mein Text bereits vorformatiert und Tags (<br>) für Zeilenumbrüche enthält, teile ich auch das der API mit:

    'nl2br' => false

    Außerdem verwende ich JavaScript innerhalb der Themen und will nicht, dass HTML-Tags durch BBcode-Tags ersetzt werden und das Javascript erhalten bleibt. Dafür setze ich:

    'disable_bbcode' => true

    Die Variablen parentid und channelid geben das Forum (Knoten-ID) an, in dem das Thema angelegt werden soll. Ich bin nicht sicher, ob parentid unbedingt angegeben werden muss. Aber wenn man es angibt, sollte man dort dasselbe angeben, wie in der Variable channelid. Sonst funtioniert es nicht.
    Zuletzt geändert von Hero; 07.11.2018, 17:23.
    https://blendpolis.de

    #2
    Hallo Hero,

    Danke für das Skript. Ist das Thema eine Frage? Da Du es im Forum Probleme und Fragen erstellt hast?

    Die ParentId benötigt man nur bei einer Antwort auf ein Thema, wobei das Thema dann die ParentId ist und man keinen title mehr benötigt. Man kann das ganze auch über einen vB Cron laufen lassen und benötig dann kein curl, config etc mehr. Benutzer kann dann auch im Array Data übergeben werden und muss nicht mehr angemeldet werden.
    It`s nice to be important but it`s more important to be nice!

    Kommentar


      Themenstarter
      #3
      Nein. Ich habe bloß kein anderes Forum gefunden, wo ich das hätte aufmachen können. Wir hatten hier ja schon dieses Thema, welches sich auch mit Programmierung befasst.
      https://blendpolis.de

      Kommentar

      Lädt...
      X