Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-27-2011, 09:12 PM
sweeps78 sweeps78 is offline
 
Join Date: Sep 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Getting a message to post

I haven't written any PHP since I was in school about 8 years ago so I'm sure this is going to be a pretty n00b question.


I'm working on my first product and had a question about how to post messages. I got pretty far with the awesome articles here but I'm at a point where I'm lost to the extent of where I don't even know what terms I would use to search for an answer.


I have the following PHP file:

PHP Code:
<?php

error_reporting
(E_ALL & ~E_NOTICE);
// add for wysiwyg
define('GET_EDIT_TEMPLATES'true);
define('THIS_SCRIPT''trprojects_test');
define('CSRF_PROTECTION'true);

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('trprojects_test',);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
chdir ('/home/sandboxt/public_html');
require_once(
'./global.php');
require_once(
DIR '/includes/functions_editor.php');
require_once(
DIR '/includes/functions_bigthree.php');


// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################


//$editorid = construct_edit_toolbar('',1,'signature',1,1,($vbulletin->userinfo['userid']));
$editorid construct_edit_toolbar("test body text",0,0,1,1,0,'fe');

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle 'My Projects';

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater vB_Template::create('trprojects_test');
$templater->register_page_templates();
$templater->register('pagetitle'$pagetitle);
$templater->register('editorid'$editorid);
$templater->register('messagearea'$messagearea);
print_output($templater->render());

if (
$_POST['do'] == 'postreply')
{
   
$outputvar .= "test it";
}

and my template:

Code:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml"<vb:if condition="$vboptions['enablefacebookconnect']"> xmlns:fb="http://www.facebook.com/2008/fbml"</vb:if> dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}">
<head>
	{vb:raw headinclude}

	{vb:cssfile attachment.css}
	<script type="text/javascript" src="clientscript/vbulletin-editor.js?v={vb:raw vboptions.simpleversion}"></script>
    <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
{vb:raw headinclude_bottom}
</head>
<body>
{vb:raw header}

{vb:raw navbar}

    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>



<form class="vbform block" action="/projects/post.php?do=postreply" method="post" name="vbform" onsubmit="return vB_Editor['{vb:raw editorid}'].prepare_submit(0,0)">

	<h2 class="blockhead">{vb:rawphrase your_message}</h2>
	<div class="blockbody formcontrols">
		<div class="section">

			{vb:raw messagearea}

		</div>
	</div>
	<div class="blockfoot actionbuttons">
		<div class="group">
				<input type="hidden" name="s" value="{vb:raw session.sessionhash}" />
				<input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" />
				<input type="hidden" name="do" value="postreply" />
                                <input type="submit" class="button" name="sbutton" id="{vb:raw editorid}_save" value="submit it" accesskey="s" tabindex="1" />
				<input type="submit" class="button" name="preview" value="preview" accesskey="r" tabindex="1" />
		</div>
	</div>
</form>

{vb:raw footer}

</body>
</html>
My question is how do I get the text that is entered in the form's messagearea to display on a new page? I'll be eventually sending this message to the DB. As long as I know how to get the text to show up on a new page, I'm sure I can figure out the rest (I'm pretty well versed in other languages).

--------------- Added [DATE]1317163406[/DATE] at [TIME]1317163406[/TIME] ---------------

I meant how do I get the text to show up in a new vBulletin page?

An example would be when I click "Go Advanced" it takes me to newreply.php. Then when I enter text and click submit reply it takes me back to showthread.php.
Reply With Quote
  #2  
Old 09-27-2011, 10:06 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You would need to write some php to process the form and do something with the information. Take a look at newreply.php under do=postreply (around line 258). Notice how the variables are all passed there and then used for something new (look at the $newpost variable).
Reply With Quote
  #3  
Old 09-28-2011, 03:05 PM
sweeps78 sweeps78 is offline
 
Join Date: Sep 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

K, thanks Lynne and thanks for the awesome tutorial on creating a page! I'm digging into it now

Any personal recommendations on a PHP IDE?
Reply With Quote
  #4  
Old 09-28-2011, 03:34 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am on a Mac and I just use BBEdit when coding.
Reply With Quote
  #5  
Old 09-30-2011, 01:02 PM
sweeps78 sweeps78 is offline
 
Join Date: Sep 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I got a new page loading now but I'm having trouble getting the currently logged in user's ID.

I'm trying print_output($vbulletin->userinfo['userid']);, but nothing's getting returned. I even tried print_r($vbulletin->userinfo); to see what's in the array but still nothing I'd expect a Null reference error thrown if it was empty.
Reply With Quote
  #6  
Old 09-30-2011, 04:28 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You cannot do print_output. You need to put the information into a variable and then spit the variable out in the template after registering it for use in the template.
Reply With Quote
  #7  
Old 09-30-2011, 06:58 PM
sweeps78 sweeps78 is offline
 
Join Date: Sep 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

gotcha, thanks!

BTW - For anyone else that comes across this thread, this post helped greatly with understanding how to register variables and render templates)
Reply With Quote
  #8  
Old 10-03-2011, 05:34 PM
sweeps78 sweeps78 is offline
 
Join Date: Sep 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Lynne,

I thought I figured out how to load a new page but I guess not Is there any chance you could tell me what is the standard way/method of loading a new page in vBulletin? I see many different functions from the API manual that load new URLs but I haven't came across one that really made sense to use. All of them that I've found seem to be more for error/exception handling.

Going through the newreply template I see on line 23 the Form submit is loading newreply.php. However, when I am on newreply.php and click the submit button it takes me to showthread.php. Where inside newreply.php does showthread.php get loaded? I've looked in both "if ($_REQUEST['do'] == 'newreply')" sections but couldn't find anything that loaded a new page. Am I looking in the wrong place?
Reply With Quote
  #9  
Old 10-03-2011, 05:52 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I believe they use the print_standard_redirect function to do the redirect.
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 07:20 PM.


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.04246 seconds
  • Memory Usage 2,257KB
  • Queries Executed 11 (?)
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
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)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_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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete