Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #11  
Old 08-24-2016, 07:18 PM
noypiscripter's Avatar
noypiscripter noypiscripter is offline
 
Join Date: Jul 2013
Posts: 468
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have done something similar to this. I created an API wrapper in the frontend controller. You don't have to include any file at all.

Create a php file named apiwrapper.php in /includes/vb5/frontend/controller directory. The class name suffix has to match the filename.
PHP Code:
<?php
class vB5_Frontend_Controller_ApiWrapper extends vB5_Frontend_Controller
{
    public function 
__construct() {
        
parent::__construct();
    }   
 
    public function 
actionCreatePost() {
 
        
// validate ip address to restrict unauthorized calls

        // validate input data in $_POST
        
        // set user session to a user that has create post permission:
        // $this->setUserSession(1);

        // call content api to create the node passing all the required parameters:
        // $nodeid = Api_InterfaceAbstract::instance()->callApi('content_text', 'add', array($data, array())); // $data is an array containing title, parentid, rawtext, userid, etc.

        // return the nodeid generated as a JSON:
        // $result['nodeid'] = $nodeid;
        // $this->sendAsJson($result);
 
    
}
 
 
    protected function 
setUserSession($postUserId) {
 
        
$session vB::getCurrentSession();
        
$userid $session->get('userid');   
 
        if (
$userid != $postUserId) {
            
$newsession = new vB_Session_Cli(vB::getDbAssertor(), vB::getDatastore(), vB::getConfig(), $postUserId);
            
vB::setCurrentSession($newsession);
        }
 
    }
 
}
To call actionCreatePost() method, use CURL, jQuery (if forum is on same domain as the originating call) or any tool/library that supports HTTP transfer. The URL endpoint for the call is http://yourdomain.com/apiwrapper/createPost then you have to pass the parameters as POST data.
Reply With Quote
Благодарность от:
Replicant
  #12  
Old 08-26-2016, 01:41 PM
Necrophyte Necrophyte is offline
 
Join Date: Jul 2014
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Glenn, Thank you for the assist. This is great if you want to post as someone else. (I will definitely keep this, I'm sure I can use it). What I was trying to do is. Right after the member has been approved, and the save has completed, but before the welcome email has been sent. I needed it to send a post to a forum that is accessible to usergroup 2. Problem is. They are not usergroup 2 yet at that point, even though its saved. However. I was able to take a chunk of your code
Code:
            $newsession = new vB_Session_Cli(vB::getDbAssertor(), vB::getDatastore(), vB::getConfig(), $postUserId);
            vB::setCurrentSession($newsession);
put that before the api call. This updated their saved status and allowed them to make the post.
This way I have the postid, and I can use it in the welcome email to tell the user to watch the post for questions on their recruitment.
No code modified. I wouldn't have been able to do it without your section of code, or the idea to change user sessions. So thank you very much. You and Replicant are a great value to this community. I don't care what they say about you
Reply With Quote
  #13  
Old 08-26-2016, 03:36 PM
Replicant's Avatar
Replicant Replicant is offline
 
Join Date: Sep 2014
Location: Phoenix, Az. USA
Posts: 485
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Glenn has been my mentor from the beginning. His tips on CSS are what got me started. I'm not a coder, just more of a hacker and I have learned a ton of how to do things in vb5 from Glenn. His examples allowed me to understand what's going on in the back end more so than would have been possible on my own. Some of his posts, like the previous one are very illuminating.
Reply With Quote
Благодарность от:
noypiscripter
  #14  
Old 08-26-2016, 09:18 PM
noypiscripter's Avatar
noypiscripter noypiscripter is offline
 
Join Date: Jul 2013
Posts: 468
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Glad to help @Necrophyte.

@Replicant, I'm impressed that you learned to code when you are not a coder.
Reply With Quote
  #15  
Old 08-27-2016, 06:42 PM
Replicant's Avatar
Replicant Replicant is offline
 
Join Date: Sep 2014
Location: Phoenix, Az. USA
Posts: 485
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Glenn. I'm still learning and have a long way to go. If I had to depend on coding skills to eat, I'd be starving These little mod projects help a lot with understanding the quirks of PHP. I've done a ton of bash scripting over the last 20 years, but PHP is a whole different animal. At least with a background in bash, I'm able to read the code and figure out what it's doing most of the time. It's the syntax and the array handling that gets me confused sometimes. It's coming right along though.
Reply With Quote
  #16  
Old 08-28-2016, 03:52 PM
Necrophyte Necrophyte is offline
 
Join Date: Jul 2014
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have to agree. You both have taught me much. My eyes started to glaze over on some of the stuff you guys were talking about. I do Database management, with some php scripts here and there to modify data and manipulate the database here and there. But never to the extend vBulletin is.
I'm sure I'll have many more questions.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:28 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04367 seconds
  • Memory Usage 2,233KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (6)post_thanks_box
  • (2)post_thanks_box_bit
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete