vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   how to make a full PHP and Mysql enabled page (https://vborg.vbsupport.ru/showthread.php?t=242633)

Lynne 05-18-2010 02:00 PM

I've seen the link. I have seen no template code posted from you. You cannot use echo statements if you want to put text inside a vbulletin like page.

borbole 05-18-2010 02:01 PM

@danishravian, as adviced above, post here the whole codes that make up your test.php file and your custom template. So we can have a clear and full look.

danishravian 05-18-2010 02:09 PM

I made a template by name TEST using this:
HTML Code:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
    <td class="tcat">Title</td>
</tr>
<tr>
    <td class="alt1">Text</td>
</tr>
</table>

$footer
</body>
</html>

Then i made a TEST.php page which contains
PHP Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // change this depending on your filename

// ################### 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(
    
'TEST',
);

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

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
include "connect.php";
$query "select * from plants";
$result mysql_query($query);
$row mysql_fetch_array($result);
 
 
$templater->register('query'$query);
$templater->register('result'$result);
$templater->register('row'$row);

 
if(
mysql_num_rows($result) > 0)
{
     while(
$row mysql_fetch_array($result))
     { 

        echo 
"data found";

    }

}

else

    echo 
"No Record With These Parameters";

}
// #######################################################################

$navbits construct_navbits(array('' => $vbulletin->options['TEST'])); 
$navbar render_navbar_template($navbits); 
// ###### YOUR CUSTOM CODE GOES HERE ##### 
$pagetitle $vbulletin->options['TEST']; 
// ###### NOW YOUR TEMPLATE IS BEING RENDERED ###### 
$templater vB_Template::create('TEST'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$vbulletin->options['TEST']); 
print_output($templater->render()); 

?>

Problem is same that loop is displaying data outside the template as in this link

http://www.haveelskere.dk/test.php

borbole 05-18-2010 02:22 PM

Quote:

Originally Posted by danishravian (Post 2039273)
I made a template by name TEST using this:
HTML Code:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
    <td class="tcat">Title</td>
</tr>
<tr>
    <td class="alt1">Text</td>
</tr>
</table>

$footer
</body>
</html>

Then i made a TEST.php page which contains
PHP Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // change this depending on your filename

// ################### 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(
    
'TEST',
);

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

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
include "connect.php";
$query "select * from plants";
$result mysql_query($query);
$row mysql_fetch_array($result);
 
 
$templater->register('query'$query);
$templater->register('result'$result);
$templater->register('row'$row);

 
if(
mysql_num_rows($result) > 0)
{
     while(
$row mysql_fetch_array($result))
     { 

        echo 
"data found";

    }

}

else

    echo 
"No Record With These Parameters";

}
// #######################################################################

$navbits construct_navbits(array('' => $vbulletin->options['TEST'])); 
$navbar render_navbar_template($navbits); 
// ###### YOUR CUSTOM CODE GOES HERE ##### 
$pagetitle $vbulletin->options['TEST']; 
// ###### NOW YOUR TEMPLATE IS BEING RENDERED ###### 
$templater vB_Template::create('TEST'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$vbulletin->options['TEST']); 
print_output($templater->render()); 

?>

Problem is same that loop is displaying data outside the template as in this link

http://www.haveelskere.dk/test.php



Your template is all wrong. Try to create a correct one for vb 4x by using the example at this tutorial.

https://vborg.vbsupport.ru/showthread.php?t=228112

danishravian 05-18-2010 03:05 PM

I did all (updated my work), but still same problem :(

http://www.haveelskere.dk/test.php

cellarius 05-18-2010 03:41 PM

You need to take the time and try to understand what happens in the code.

1. You can not use echo, as Lynne already told you. That's what makes the results show up on top of the pages. You need to save the output of the loop into a variable, and that variable needs to be registered for use in your template. Replace echo with
PHP Code:

$output 
// or, since we're in a loop,
$output .= 

2. Get your php code in order. There is a good cause for the comment "Your custom code goes here". Why don't you put your custom code there, but somewhere above? That's all messy!

3. There's no sense in wildly registering variables like $query, $row and $result in the middle of nowhere. Those three variables are only used in your php code, so there is no need to register them. Registering variables is for passing variables from the php code to the template. This happens under the comment "Now your template is being rendered." Add a line like this

PHP Code:

$templater->register('output'$output); 

where some other variables are being registered already and call it in the template using
HTML Code:

{vb:raw output}

danishravian 05-19-2010 11:46 AM

PHP Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT''test');
define('CSRF_PROTECTION'true);  
// change this depending on your filename

// ################### 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('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 ('/path/to/your/forums');
require_once('./global.php');

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

$navbits construct_navbits(array('' => 'Test Page'));
$navbar render_navbar_template($navbits);
$code "<div style='font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: bold;
    padding-left:30px;' >Sun flower</div>
<div style='width:106px;
height:109px;
margin-left:20px;
float:left;'><img src='images/flower_03.png' style='float:left' /></div>
<div style='height:150px;
width:338px;
float:left;'><div style='font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 19px;
    font-weight: normal;
    padding-left:6px;'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vulputate, nibh eget ehiculaolestie, augue mi eleifend eros, fermentuaculis agna diam sed mi. Fusce euismodtortor at Fusce euismodtortor at</div> </div>
<div><div style='height:150px;
width:109px;
float:left;'><img src='images/Untitled-1.png' /><br />PlantsBlooms<br />Size<br />Light</div></div>
<div style='float:left;'>
4.5/5<br />
May - June<br />
May - June<br />
May - June<br /></div>
</div>



<div style='width:687;
height:142px;
padding-top:13px;
border:ridge;
border-width:2px;
border-color:cddee9;
margin-top:10px;'>"
;

include 
"connect.php";
$result  $db->query_read("SELECT * from plants");
$resultset $db->fetch_array($result);

while (
$userdata $db->fetch_array($result))
{
// nun stehen die Daten in $userdata zur Verf?gung
echo $userdata['id'];
}

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

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

$templater vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
$templater->register('code'$code);
print_output($templater->render());

?>


i have registered my variable $code in template and its working OK.
if i use this code to display data, it displays it outside the template :(
but i have to display all records from database.
how it can be done?? any clue:confused:

PHP Code:

$result  vB::$vbulletin->db->query_read("SELECT * from plants");
$resultset vB::$vbulletin->db->fetch_array($result);

while (
$userdata vB::$vbulletin->db->fetch_array($result))
{
// nun stehen die Daten in $userdata zur Verf?gung
echo $userdata['id'];


First I was using this code to get and dislpay data. But it was dislplaying error message that "VB class not found"

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

cellarius thnxxxxx a lottttttt a got some Idea:)
you are sooo goood :)

cellarius 05-19-2010 01:04 PM

For everyone else interested: The problem most likely was that there still was an echo statement in the php code.

Glad you figured it out :)


All times are GMT. The time now is 12:39 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.01842 seconds
  • Memory Usage 1,826KB
  • 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
  • (3)bbcode_html_printable
  • (6)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete