Laravel IPBoard API
, (*1)
This package includes accessor methods for all common IPBoard API calls:
- Members
- Forum Posts
- Forum Topics, (*2)
Installation
Require this package with composer:, (*3)
composer require alawrence/laravel-ipboard
After updating composer, add this package's ServiceProvider to the providers array in config/app.php, (*4)
< Laravel 5.4:
ServiceProvider:, (*5)
Alawrence\Ipboard\ServiceProvider::class,
Facade:, (*6)
'Ipboard' => Alawrence\Ipboard\Facade::class,
In order to set the required variables for your instance of IPBoard, you must first publish the configuration files:, (*7)
php artisan vendor:publish
Usage
To utilise any of the API endpoints, refer to the list of available calls., (*8)
core/members
$ipboard = new IPBoard();
$recentlyJoined = $ipboard->getMembersByPage("date", "desc");
$allMembers = $ipboard->getMembersAll();
$singleMember = $ipboard->getMemberById(2011);
$newMember = $ipboard->createMember("Test Api User", "test-user@gmail.com", "this_is_My_password!"); // Will be added to default group.
$anotherMember = $ipboard->createMember("Test Api User 2", "test-user-2@gmail.com", "this_is_not_secret", 24); // Will be added to group 24.
$updateMember = $ipboard->updateMember(2011, ["name" => "This Is THe New Name", "password" => "The new password" => "email" => "im_sleeping@gmail.com"]);
$ipboard->deleteMemberById(2011);
forums/posts
$ipboard = new IPBoard();
$recentPosts = $ipboard->getForumPostsByPage(["sortBy" => "date", "sortDir" => "desc"]); // Refer to IPBoard API reference for more search criteria.
$allPosts = $ipboard->getForumPostsAll(); // I would think carefully before doing this.
$singlePost = $ipboard->getForumPostById(12); // Get post ID 12.
$newPost = $ipboard->createForumPost(5, 2011, "
This is my HTML post., (*9)
"); // Topic 5, author 2011. Refer to IPBoard API for more data you can provide.
$newGuestPost = $ipboard->createForumPost(5, 0, "
This is a guest post., (*10)
", ["author_name" => "My User's Guest Name"]); // Topic 5, author 0 with specified name. Refer to IPBoard API for more data you can provide.
$updatedPost = $ipboard->updateForumPost(567, ["post" => "
This content has been removed., (*11)
"]); // Update post 567. Refer to IPBoard API for more data you can provide.
$ipboard->deleteForumPostById(567);
forums/topics
$ipboard = new IPBoard();
$recentTopics = $ipboard->getForumTopicsByPage(["sortBy" => "date", "sortDir" => "desc"]); // Refer to IPBoard API reference for more search criteria.
$allTopics = $ipboard->getForumTopicsAll(); // I would think carefully before doing this.
$singleTopic = $ipboard->getForumTopicById(53); // Get topic ID 53;
$topicPosts = $ipboard->getForumTopicPosts(53, ["sortDir" => "desc"], 2); // Get all 2nd page of posts for a topic ID 53, sorted descending
$newTopic = $ipboard->createForumTopic(2, 2011, "My New Post Title",
This is my HTML post., (*12)
"); // Forum 2, author 2011. Refer to IPBoard API for more data you can provide.
$newGuestTopic = $ipboard->createForumTopic(2, 0, "My guest title",
This is a guest post., (*13)
", ["author_name" => "My User's Guest Name"]); // Forum 2, author 0 with specified name. Refer to IPBoard API for more data you can provide.
$updateTopic = $ipboard->updateForumTopic(56, ["title" => "Removed title", "post" => "
This content has been removed., (*14)
"]); // Update topic 56. Refer to IPBoard API for more data you can provide.
$ipboard->deleteForumTopicById(567);
Contribution
I appreciate there are elements of the API that haven't been implemented, as my license doesn't contain them. If you wish to submit a PR I'll gladly accept., (*15)