richy96
01-10-2011, 05:58 PM
HI
I've read some similar posts to this but can't seem to find an answer that works for me
What I am doing is passing some additional user data to the browser, so javascript can use it to re-format the display of members profiles
Currently I have some AJAX doing this (modification done by another programmer) but I am trying to do away with the inneficient AJAX stuff by passing all the data I need in trhe first place
What I have is some code like this in the footer template
$ad_location[ad_footer_start]
<div id='JUID' style='display:none;'>$bbuserinfo[userid]</div>
<div id='JUSERNAME' style='display:none;'>$bbuserinfo[username]</div>
<div id='JUSERPC' style='display:none;'>$bbuserinfo[field6]</div>
This works fine and I have a file member.js which uses this 'hidden data' and that works hunky-dory
I am now trying to pass some additional data that is not available in 'normal' vbulletin arrays
So I have in member.php
$Javafields = array( 'fullLocation' => findFullLocationFromPostcode($userinfo['field6']));
and in the footer template
$ad_location[ad_footer_start]
<div id='JUID' style='display:none;'>$bbuserinfo[userid]</div>
<div id='JUSERNAME' style='display:none;'>$bbuserinfo[username]</div>
<div id='JUSERPC' style='display:none;'>$bbuserinfo[field6]</div>
<div id='JUSERLOC' style='display:none;'>$Javafields[fullLocation]</div>
I know that $Javafields[fullLocation] contains the desired information in member.php as I am using FirePHP to debug and I can clearly see it is there - but by the time it gets to the footer template the data must be null as it is not output in the HTML
So I thought.... this is to do with scope of the array I am declaring
Next I did a bit of reading on here and tried this:
$vbulletin->javafields = array(
'fullLocation' => findFullLocationFromPostcode($userinfo['field6'])
);
using FirePHP again I can see $vbulletin->javafields['fullLocation'] contains the desired data
in the footer template I tried
<div id='JUSERLOC' style='display:none;'>$vbulletin->javafields[fullLocation]</div>
which produces the text [fullLocation] in the generated HTML
and also
<div id='JUSERLOC' style='display:none;'>$vbulletin->javafields['fullLocation']</div>
which produces the text ['fullLocation'] in the generated HTML
getting frustrated now I tried adding a declaring a new field to the $bbuserinfo array in member.php like this
$bbuserinfo['fullLocation'] = findFullLocationFromPostcode($userinfo['field6']);
in member.php
and in the footer template
<div id='JUSERLOC' style='display:none;'>$bbuserinfo[fullLocation]</div>
which gives nothing in the HTML
and finally <div id='JUSERLOC' style='display:none;'>$bbuserinfo['fullLocation']</div>
which gives a sytax error when tryng to save teh template
So..... here is the question : how do I declare an array in member.php that I can access from the footer template? :confused:
cheers
Rich
I've read some similar posts to this but can't seem to find an answer that works for me
What I am doing is passing some additional user data to the browser, so javascript can use it to re-format the display of members profiles
Currently I have some AJAX doing this (modification done by another programmer) but I am trying to do away with the inneficient AJAX stuff by passing all the data I need in trhe first place
What I have is some code like this in the footer template
$ad_location[ad_footer_start]
<div id='JUID' style='display:none;'>$bbuserinfo[userid]</div>
<div id='JUSERNAME' style='display:none;'>$bbuserinfo[username]</div>
<div id='JUSERPC' style='display:none;'>$bbuserinfo[field6]</div>
This works fine and I have a file member.js which uses this 'hidden data' and that works hunky-dory
I am now trying to pass some additional data that is not available in 'normal' vbulletin arrays
So I have in member.php
$Javafields = array( 'fullLocation' => findFullLocationFromPostcode($userinfo['field6']));
and in the footer template
$ad_location[ad_footer_start]
<div id='JUID' style='display:none;'>$bbuserinfo[userid]</div>
<div id='JUSERNAME' style='display:none;'>$bbuserinfo[username]</div>
<div id='JUSERPC' style='display:none;'>$bbuserinfo[field6]</div>
<div id='JUSERLOC' style='display:none;'>$Javafields[fullLocation]</div>
I know that $Javafields[fullLocation] contains the desired information in member.php as I am using FirePHP to debug and I can clearly see it is there - but by the time it gets to the footer template the data must be null as it is not output in the HTML
So I thought.... this is to do with scope of the array I am declaring
Next I did a bit of reading on here and tried this:
$vbulletin->javafields = array(
'fullLocation' => findFullLocationFromPostcode($userinfo['field6'])
);
using FirePHP again I can see $vbulletin->javafields['fullLocation'] contains the desired data
in the footer template I tried
<div id='JUSERLOC' style='display:none;'>$vbulletin->javafields[fullLocation]</div>
which produces the text [fullLocation] in the generated HTML
and also
<div id='JUSERLOC' style='display:none;'>$vbulletin->javafields['fullLocation']</div>
which produces the text ['fullLocation'] in the generated HTML
getting frustrated now I tried adding a declaring a new field to the $bbuserinfo array in member.php like this
$bbuserinfo['fullLocation'] = findFullLocationFromPostcode($userinfo['field6']);
in member.php
and in the footer template
<div id='JUSERLOC' style='display:none;'>$bbuserinfo[fullLocation]</div>
which gives nothing in the HTML
and finally <div id='JUSERLOC' style='display:none;'>$bbuserinfo['fullLocation']</div>
which gives a sytax error when tryng to save teh template
So..... here is the question : how do I declare an array in member.php that I can access from the footer template? :confused:
cheers
Rich