Odd assign_block_vars problem

Discuss the development of future releases of phpBB (phpBB 3.x minor releases) and MODing/Coding related questions.
Post Reply
comkid
New member
New member
Posts: 18
Joined: 28 Jun 2009, 11:32

Odd assign_block_vars problem

Post by comkid »

This is my memberlist_logins.html:

Code: Select all

<!-- INCLUDE overall_header.html -->

<h2 class="solo">{PAGE_TITLE}</h2>

<div class="forumbg">
   <div class="inner"><span class="corners-top"><span></span></span>

   <table class="table1" cellspacing="1">
   <thead>
   <tr>
      <th>Username</th>
      <th>IP</th>
      <th>Time</th>
      <th>Browser Agent</th>
      <th>Successful Login</th>
   </tr>
   </thead>
   <tbody>
   <tr class="bg1">
      <!-- PHP -->
            echo "<td>{$template->_rootref['loginrow']['USERNAME_FULL']}</td>";
      <!-- ENDPHP -->
      <td>{loginrow.IP}</td>
      <td>{loginrow.TIME}</td>
      <td>{loginrow.BROWSER}</td>
      <td>{loginrow.SUCCESSFUL}</td>
   </tr>
   </tbody>
   </table>

   <span class="corners-bottom"><span></span></span></div>
</div>



<hr />

<!-- INCLUDE overall_footer.html -->


This is memberlist.php:

Code: Select all

case&nbsp;'logins':
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$page_title&nbsp;=&nbsp;'Logins';
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$template_html&nbsp;=&nbsp;'memberlist_logins.html';
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($user_id&nbsp;==&nbsp;0)
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;=&nbsp;'SELECT&nbsp;user_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;'
&nbsp;.&nbsp;USERS_TABLE&nbsp;.&nbsp;'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;username&nbsp;=&nbsp;'
&nbsp;.&nbsp;$username;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;$db->sql_query($sql);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row&nbsp;=&nbsp;$db->sql_fetchrow($result);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$db->sql_freeresult($result);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$user_id&nbsp;=&nbsp;$row['user_id'];
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql_array&nbsp;=&nbsp;array(
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'SELECT'&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;'u.*,&nbsp;l.*',
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'FROM'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;array(
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USERS_TABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;'u',
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'LEFT_JOIN'&nbsp;=>&nbsp;array(
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'FROM'&nbsp;&nbsp;=>&nbsp;array(LOG_TABLE&nbsp;=>&nbsp;'l'),
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ON'&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;'l.user_id&nbsp;=&nbsp;'&nbsp;.&nbsp;$user_id,
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WHERE'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;'u.user_id&nbsp;=&nbsp;'&nbsp;.&nbsp;$user_id&nbsp;.&nbsp;'&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;log_type&nbsp;=&nbsp;4'
,
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ORDER_BY'&nbsp;&nbsp;=>&nbsp;'l.log_time'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;=&nbsp;$db->sql_build_query('SELECT',&nbsp;$sql_array);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;$db->sql_query($sql);
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;($row&nbsp;=&nbsp;$db->sql_fetchrow($result))
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$template->assign_block_vars('loginrow',&nbsp;array(
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'USERNAME_FULL'&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;get_username_string('full',&nbsp;$row['user_id'],&nbsp;$row['username'],&nbsp;$row['user_colour']),
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'IP'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;$row['log_ip'],
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'TIME'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;$user->format_date($row['log_time']),
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'BROWSER'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;$row['log_browser'],
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'SUCCESSFUL'&nbsp;&nbsp;&nbsp;&nbsp;=>&nbsp;($row['log_successful']&nbsp;==&nbsp;1)&nbsp;?&nbsp;'Yes'&nbsp;:&nbsp;'No',
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;));
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$db->sql_freeresult($result);
&
nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;Â
igorw
Past Contributor
Past Contributor
Posts: 1967
Joined: 01 Jun 2006, 20:48
Real name: Igor

Re: Odd assign_block_vars problem

Post by igorw »

And why exactly are you using <!-- PHP --> tags? Use normal template variables.
imkingdavid
Supporter
Supporter
Posts: 32
Joined: 12 Aug 2009, 16:16
Real name: David
Contact:

Re: Odd assign_block_vars problem

Post by imkingdavid »

Why not just do this:
<!-- INCLUDE overall_header.html -->

<h2 class="solo">{PAGE_TITLE}</h2>

<div class="forumbg">
<div class="inner"><span class="corners-top"><span></span></span>

<table class="table1" cellspacing="1">
<thead>
<tr>
<th>Username</th>
<th>IP</th>
<th>Time</th>
<th>Browser Agent</th>
<th>Successful Login</th>
</tr>
</thead>
<tbody>
<!-- IF .loginrow -->
<!-- BEGIN loginrow -->
<tr class="bg1">
<td>{loginrow.USERNAME_FULL}</td>
<td>{loginrow.IP}</td>
<td>{loginrow.TIME}</td>
<td>{loginrow.BROWSER}</td>
<td>{loginrow.SUCCESSFUL}</td>
</tr>
<!-- END loginrow -->
<!-- ELSE -->
<tr class="bg1">
<td colspan="5">{L_NO_ROWS}</td>
</tr>
<!-- ENDIF -->
</tbody>
</table>

<span class="corners-bottom"><span></span></span></div>
</div>



<hr />

<!-- INCLUDE overall_footer.html -->
phpBB.com Development Team Member | View My MODs | View My Website
Please do NOT contact for support via PM or email.
User avatar
Thoul
New member
New member
Posts: 14
Joined: 23 May 2007, 22:21
Location: USA
Contact:

Re: Odd assign_block_vars problem

Post by Thoul »

I agree you should just do it the usual way, but here's the reason your approach didn't work. Template files are parsed inside a function of the template class. Inside the scope of that function, $template isn't set. To do it the way you were trying, instead of $template->_rootref, you'd have to use $this->_rootref.
Post Reply