MyBB.de Forum

Normale Version: topic to calendar
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
da in meinem forum sehr viele veranstaltungen in form eines threads gepostet werden (damit sich die leute darüber unterhalten können), wäre ein plugin, dass beim erstellen eines postings in einem bestimmten board automatisch dazu einen kalendereintrag macht, sehr hilfreich. zusätzlich würde man auch beim erstellen des threads eine datumsmaske brauchen, um den kalender sagen zu können, an welchem tag diese veranstaltung stattfindet.
Wäre es nicht anders herum einfacher und sinnvoller?
stimmt eigentlich. wäre es auch möglich, dass man das forum für neue threads sperrt und nur noch über den kalender gepostet wird?
Als Basis kann man diesen Code nehmen: https://www.mybb.de/forum/thread-20204.html
Naja an und für sich ist es ja egal ob man es aus dem Kalender oder vom Thread aus macht, solange man ein Plugin hat, das den "anderen Teil" erstellt.

Aber was anderes, gibts irgendwo nen Artikel über solche Sachen(Datahandler) oder muss man sich da selbst durch den Code wühlen?(Und noch eine Verständnissfrage: Da ich eigentlich in der vB Welt zuhause bin, kenne ich nur Datamanager, ist der Datahandler damit vergleichbar? Auf den 1. Blick wirkt es halt so)
PHP-Code:
require_once MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$posthandler->admin_override true// Optional, ich habe es lieber drin ^^

$uid $mybb->user[uid];
$username $mybb->user[username];
$fid 0;  // Forum in das der Thread gepostet werden soll
$message $db->escape_string($_POST[message]);
$subject "Formular von ".$username;

$new_thread = array(
                
"fid" => $fid,
                
"subject" => $subject,
                
"uid" => $uid,
                
"username" => $username,
                
"message" => $message,
                
"ipaddress" => get_ip(),
        );

$posthandler->set_data($new_thread);
$validate $posthandler->validate_thread();
if (
$validate)
{
        
$tinfo $posthandler->insert_thread(); 
Habe ein Problem:

Wenn ich folgendes unter den Hook calendar_do_addevent_end einfüge, klappt es wunderbar:
PHP-Code:
                ///ragtek
        
require_once MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$posthandler->admin_override true// Optional, ich habe es lieber drin ^^

$uid $mybb->user[uid];
$username $mybb->user[username];
$message $mybb->input['description'];
$subject $event['start_date']['day'] .' ' $event['name'];

$new_thread = array(
                
"fid" => 2,
                
"subject" => $subject,
                
"uid" => $uid,
                
"username" => $username,
                
"message" => $message,
                
"ipaddress" => get_ip(),
        );

$posthandler->set_data($new_thread);
$validate $posthandler->validate_thread();
if (
$validate)
{
        
$tinfo $posthandler->insert_thread();}
        
///ragtek 

Wenn ich hingegen den Code in ein Plugin haue, passiert nichts:
PHP-Code:
<?php
 
// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

$plugins->add_hook("calendar_do_addevent_end""createthread");

function 
ragtek_eventcalendar_info()
{
    
/**
     * Array of information about the plugin.
     * name: The name of the plugin
     * description: Description of what the plugin does
     * website: The website the plugin is maintained at (Optional)
     * author: The name of the author of the plugin
     * authorsite: The URL to the website of the author (Optional)
     * version: The version number of the plugin
     * guid: Unique ID issued by the MyBB Mods site for version checking
     * compatibility: A CSV list of MyBB versions supported. Ex, "121,123", "12*". Wildcards supported.
     */
    
return array(
        
"name"            => "ragtek_eventcalendar",
        
"description"    => "A sample plugin that prints hello world and prepends the content of each post to 'Hello world!'",
        
"website"        => "http://www.mybboard.net",
        
"author"        => "MyBB Group",
        
"authorsite"    => "http://www.mybboard.net",
        
"version"        => "1.0",
        
"guid"             => "",
        
"compatibility" => "*"
    
);
}

function 
createthread()
{
        
///daniel
        
require_once MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$posthandler->admin_override true// Optional, ich habe es lieber drin ^^

$uid $mybb->user[uid];
$username $mybb->user[username];
$message $mybb->input['description'];
$subject $event['start_date']['day'] .' ' $event['name'];

$new_thread = array(
                
"fid" => 2,
                
"subject" => $subject,
                
"uid" => $uid,
                
"username" => $username,
                
"message" => $message,
                
"ipaddress" => get_ip(),
        );

$posthandler->set_data($new_thread);
$validate $posthandler->validate_thread();
if (
$validate)
{
        
$tinfo $posthandler->insert_thread();}
        
///daniel
        
}
?>
Natürlich hab ich das Plugin aktiviertWink
Alle Variablen, die nicht selber im Hook definiert werden, mussen mit der global geholt werden: http://de.php.net/manual/de/language.var....scope.php
Autsch.
Ok hier ist es ja eine "Funktion" im Gegnsatz zum vB
Sodala, falls jemand auf der Suche danach ist:
https://www.mybb.de/forum/thread-20832.html