vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Getting a message to post (https://vborg.vbsupport.ru/showthread.php?t=271011)

sweeps78 09-27-2011 09:12 PM

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.

Lynne 09-27-2011 10:06 PM

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).

sweeps78 09-28-2011 03:05 PM

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? :)

Lynne 09-28-2011 03:34 PM

I am on a Mac and I just use BBEdit when coding.

sweeps78 09-30-2011 01:02 PM

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.

Lynne 09-30-2011 04:28 PM

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.

sweeps78 09-30-2011 06:58 PM

gotcha, thanks!

BTW - For anyone else that comes across this thread, this post helped greatly with understanding how to register variables and render templates)

sweeps78 10-03-2011 05:34 PM

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?

Lynne 10-03-2011 05:52 PM

I believe they use the print_standard_redirect function to do the redirect.


All times are GMT. The time now is 11:49 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.01083 seconds
  • Memory Usage 1,759KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete