Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
Programmatically Adding a Comment
lyle
New
Apologies if this is answered somewhere already but I've been searching and only got more confused.
I'd like to be able to add a comment to a certain discussion from a script on my server and I'm wondering what the best way to accomplish that would be. I'm guessing it might be more complicated that just inserting a row into the comments table. Can I write a php script that uses the vanilla framework to do this easily? What would that look like?
Thanks!
I'd like to be able to add a comment to a certain discussion from a script on my server and I'm wondering what the best way to accomplish that would be. I'm guessing it might be more complicated that just inserting a row into the comments table. Can I write a php script that uses the vanilla framework to do this easily? What would that look like?
Thanks!
0
This discussion has been closed.
Comments
<?php include("appg/settings.php"); include("appg/init_vanilla.php"); $Context->Session->UserID = 4; $DiscussionID = 312; // Load the selected user $UserManager = $Context->ObjectFactory->NewContextObject($Context, "UserManager"); $Context->Session->User = $UserManager->GetUserByID($Context->Session->UserID); // Ensure the user is allowed to view this page $Context->Session->Check($Context); // Create the discussion and comment objects $NewComment = $Context->ObjectFactory->NewContextObject($Context, 'Comment'); $Discussion = $Context->ObjectFactory->NewContextObject($Context, 'Discussion'); $cm = $Context->ObjectFactory->NewContextObject($Context, 'CommentManager'); $dm = $Context->ObjectFactory->NewContextObject($Context, 'DiscussionManager'); // Set up the new comment $NewComment->Clear(); $NewComment->DiscussionID = $DiscussionID; $NewComment->Body = time(); $NewComment->UserCommentCount = $Context->Session->User->CountComments; // Get the selected discussion $Discussion = $dm->GetDiscussionById($NewComment->DiscussionID); if ($Discussion->Closed && !$Context->Session->User->Permission('PERMISSION_CLOSE_DISCUSSIONS')) { $ResultComment = false; $Context->WarningCollector->Add($Context->GetDefinition('ErrPermissionInsufficient')); } else { $ResultComment = $cm->SaveComment($NewComment); } if ($ResultComment) { echo "Comment added successfully\n"; } else echo "Failed to save comment.\n"; ?>