View Single Post
  #6  
Old 01-11-2021, 04:40 PM
shka shka is offline
 
Join Date: Mar 2016
Posts: 79
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ich schreibe es mal auf deutsch, da geht das fl?ssiger. Wie bereits erw?hnt besteht ein Event in vB5 nicht nur aus einem Eintrag in den Event-Table, sondern aus einem Topic in einem Forumschannel, einem ersten Post in diesem Topic sowie eben jenem Eintrag im Event-Table.

Wie delicjous bereits schrieb - am Sinnvollsten ist ein vB-interne L?sung
Modul, welches die gleichen Frontendcontroller anbietet, die vB auch verwendet bei der Erstellung, Bearbeitung und L?schung von Events
- erstellen/bearbeiten : POST auf /forum/create-content/event (mit unt ohne mitgelieferte nodeid)
- delete : POST auf /forum/ajax/api/node/deleteNodes
Nur f?r ?bersicht der Events m?sste man schauen, ob vB da schon was im Frontend bietet (/forum/ajax/render/widget_calendar__events ist etwas unhandlich)

Falls du aber unbedingt ?ber die Api gehen willst, dann so.
- Script muss auf deinen vB-Server, aber au?erhalb vom vB-Verzeichnis,
- Zeile 5 vbpath muss angepasst werden
- Zeile 7-11 ?bernimmt die Sitzung des aktuell am vB angemeldeten Users und Initialisiert vB und die Api im Allgemeinen
- Zeile 13-23 aktueller User - auf diesen Infos musst du deine Berechtigung zum Ausf?hren des Scriptes aufbauen
- Zeile 38-47 deine Daten zum Event, Zeile 39 muss angepasst werden
- Zeile 51 dient zur Kontrolle, ob du deine EventApi bekommen hast
- Zeile 54 sollte dir die NodeId zum neu eingetragenen Event ausgeben.

PHP Code:
<?php

try {
    
// Path to your vBulletin installation
    
$vbpath '/var/www/html/forum';

    
// Start script
    
define('CSRF_PROTECTION'false);
    require_once(
$vbpath '/includes/vb5/autoloader.php');
    
vB5_Autoloader::register($vbpath);
    
vB5_Frontend_Application::init('config.php');

    
// Check current logged in user or group for rights to run this script
    
$userAPI vB_Api::instance("user");
    
$userinfo $userAPI->fetchCurrentUserinfo();
    
var_dump($userinfo['userid']);
    
var_dump($userinfo['username']);
    
var_dump($userinfo['usergroupid']);
    
var_dump($userinfo['membergroupids']);
    
var_dump($userinfo['displaygroupid']);
    
    
// No rights should die
    //die();

    /*
    $data = array(
        'parentid' => $forumChannelId,
        'title' => $title,
        'rawtext' => $text,
        'location' => $location,
        'eventstartdate' => $eventStartDate,
        'eventenddate' => $eventEndDate,
        'allday' => false
    );
    */


    
$data = array(
        
'parentid' => '21'//Channel for events
        
'title' => 'New Test Event',
        
'rawtext' => 'Test Event Description',
        
'location' => '',
        
'eventstartdate' => '1610755200'//01/16/2021 @ 12:00am (UTC)
        
'eventenddate' => '1610784000'//01/16/2021 @ 8:00am (UTC)
        
'allday' => false
    
);
    
$options = array();
 
    
$eventApivB_Api_Content_Event::getContentApi(vB_Types::instance()->getContentTypeID('vBForum_Event'));
    
//Now you should get a dump of event api
    //var_dump($eventApi);

    
$result $eventApi->add($data$options);
    
var_dump($result);
} catch (
vB_Exception_Database $e) {
    echo 
"An exception: " $e->getMessage() . "\n";
} catch (
Exception $e) {
    echo 
"An exception: " $e->getMessage() . "\n";
}
Reply With Quote
Благодарность от:
delicjous
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03846 seconds
  • Memory Usage 1,803KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_box_bit
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete