The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
Hi,
I am modifying the USERCP area to include list of data retrieved from the database. I have a MySQL query that does a loop to return a record set and results in several rows of data being displayed on the web page. This code is located in the usercp.php file. The problem that I am having is that the results always end up at the very top of the page above the <!-- BEGIN TEMPLATE: USERCP_SHELL-->. I want the results to be displayed in the area below the navigation bar running along the top and control panel menu on the left. I have tried modifying the templates but I get errors when inserting the php code. Any ideas how to do this? Thanks in advance. |
#2
|
||||
|
||||
![]()
You'll have to add the php code to the php file and have it call a template in the loop, which saves (.=) the data in a variable.
Then, call the variable in the template. |
#3
|
||||
|
||||
![]()
The only templates that accept the PHP code are PHPINCLUDE_START and PHPINCLUDE_END. Put you're code in PHPINCLUDE_START and nest it in this conditional to insure it only executes for the usercp page.
PHP Code:
|
#4
|
|||
|
|||
![]() Quote:
|
#5
|
|||
|
|||
![]() Quote:
Thanks for the repsonse. I have been working on your idea and have had some success. I have created a new template and cleaned up the code a little. I am able to get one row of data to be returned but it doesn't seem to be looping thru the record set here is my code in the .php file below: Code:
if ($_REQUEST['do'] == '') { $tripsresult = $DB_site->query(" Select * from custom_trips WHERE userid = $bbuserinfo[userid] "); // Display the text of each trip echo'<table border=1 width="100%"> <tr> <td>Edit</td> <td>Delete</td> <td>Name</td> <td>Origination</td> <td>Destination</td> <td>Departure</td> <td>Return</td> <td>Planning</td> <td>Details</td> </tr>'; while ($row = mysql_fetch_array($tripsresult)) { $tripid = $row['tripid']; $tripname = $row['tripname']; $destination = $row['destination1']; $origination = $row['origination']; $datedepart = $row['datedepart']; $datereturn = $row['datereturn']; $planning = $row['planning']; $tripdetails = $row['tripdetails']; echo '<tr>'; echo '<td>Edit Here</td>'; echo '<td>'; echo '<form action=./trip_planner_functions.php>'; echo '<input type="hidden" name="do" value="deletetripreport">'; echo '<input type="hidden" name="whatnow" value="deletetripreport">'; echo '<input type="hidden" name="tripid" value=' . $tripid .'>'; echo '<input type="submit" value="Delete">'; echo '</form>'; echo '</td>'; echo '<td>' . $tripname .'</td>'; echo '<td>' . $origination .'</td>'; echo '<td>' . $destination .'</td>'; echo '<td>' . $datedepart .'</td>'; echo '<td>' . $datereturn .'</td>'; echo '<td>' . $planning .'</td>'; echo '<td>' . $tripdetails .'</td>'; echo '</tr>'; } echo '</table>'; eval('$tripsshowme .= "' . fetch_template('LIST_TRIPS') . '";'); } Here is my LIST_TRIPS template: Code:
$tripsshowme <table border=1 width="100%"> <tr> <td>Edit LT</td> <td>Delete</td> <td>Name</td> <td>Origination</td> <td>Destination</td> <td>Departure</td> <td>Return</td> <td>Planning</td> <td>Details</td> </tr> <tr> <td>edit on LIST_TRIPS</td> <td> <form action=./trip_planner_functions.php> <input type="hidden" name="do" value="deletetripreport"> <input type="hidden" name="whatnow" value="deletetripreport"> <input type="hidden" name="tripid" value=$tripid > <input type="submit" value="Delete"> </form> </td> <td>$tripname</td> <td>$origination</td> <td>$destination</td> <td>$datedepart</td> <td>$datereturn</td> <td>$planning</td> <td>$tripdetails</td> </tr> </table> Any ideas on what I am doing wrong. I can get the complete record set to be display with all the rows as long as I run the code in the .php file but I return only one row of data when I am using the templates. Any help would be much appreciated. |
#6
|
||||
|
||||
![]()
well... instead of calling echo, you'll have to make another template and output everything to a var, using that template. that might look something like this:
eval('$tripsshowbits .= "' . fetch_template('LIST_TRIPS_bit') . '";'); in the loop. then, use the $tripsshowbits variable to call the data. |
#7
|
|||
|
|||
![]() Quote:
What do you mean exactly by output everything to a var? As you can tell I am new to VB and have limited experience with PHP. How would I get all the variables($tripname $origination $destination $datedepart $datereturn $planning $tripdetails, etc.) from my query into $tripsshowbits? |
#8
|
||||
|
||||
![]()
You'll have the vars in the template.
Just write something like <table><tr><td>$datereturn</td></tr></table> and it'll output the value of $datereturn where you specified it. Then, when you do the eval() thing, it'll fetch the template, replace all those vars as above and output the data (template, with vars replaced) to the new var you specify $foo = fetch_template(); ) you can then echo $foo again, which will output the whole template... Sorry, I don't have time to explain right now, I'll try to get back to you this evening or tomorrow ![]() |
#9
|
|||
|
|||
![]()
Thanks Colin I was able to get it to work based upon your comments
|
#10
|
||||
|
||||
![]()
great
![]() Glad to have helped. |
![]() |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|