View Single Post
  #5  
Old 01-11-2011, 04:43 PM
richy96's Avatar
richy96 richy96 is offline
 
Join Date: Apr 2008
Location: England
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@kh99
Hi m8 - well it seems you were exactly correct in your first reply, this problem was not related to the scope of the $javafields[] array I created but in fact it was caused by me trying to output this array in HTML in a template (footer) that had already been evaluated before I declared the array!

So I now got it working like this:

1. in member.php at line 432 (immediately after vbulletin creates the blocklist array

// Get some data needed by member.js to format the members profile
$javafields = array(
'fullLocation' => findFullLocationFromPostcode($userinfo['field6'])
) ;


I can add some more fields to this array as needed later. findFullLocationFromPostcode is a self explanatory function I wrote myself.

2. In Template MEMBERLIST which I can see gets evaluated by member.php after I declared my $javafields array Near the start I added I added:

$stylevar[htmldoctype]
<html xmlns="http://www.w3.org/1999/xhtml" dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude

<script src="member.js"></script>
<div id='JUSERLOC' style='display:none;'>$javafields[fullLocation]</div>

$usercss
............
............


3. In HTML source of the profile page this generates

<script src="member.js"></script>
<div id='JUSERLOC' style='display:none;'>Newcastle-under-Lyme, Staffordshire</div>


4. And then in member.js (my jquery/javascript that reformats the displayed profile page)

At the moment the javascript uses AJAX to obtain the full location data for the user from their postcode (only the postcode is stored in the $userinfo[] array) like so:

//get postcode
var postcode = $('#J6 dd').text();
//alert(postcode);

$.ajax({
url: "PostCodeSearch.php?do=PCFULL&pc=" + postcode ,
success: function(data)
{
//append location to DD. '#about' is a div id and dd is the first <dd> after that in the HTML DOM
$('#aboutdd').append($(data).text());
},
async:false
});


Now I can do away with the inefficient AJAX above, and simply refer to the full location in jquery as

$('#aboutdd').append($(#JUSERLOC).text());



My site is as I have mentioned before an adult contacts (swingers) site

What these mods, and others, basically allow me to do is for example display on users profiles informations such as This Member is xx Miles from you (calculated from my postcodes data file which contain x and y co-ords of all UK postcodes in metres)

Also I can output a differently formatted profile page depending on memebr type (male, female, couple etc)

Here are a couple examples of how I reformat profile pages depending on member type. These are excerpts of a single female and a couple profile - all the reformatting is done client side in javascript, not by trying to rewrite the templates and adding god knows how many conditionals for each member type!

So I guess I am getting better with this vb stuff now so if anyone wants any help how to do similar mods (not that I suspect a lot of folks need them) maybe even I could help someone else for a change lol
Attached Images
File Type: jpg femprof.jpg (48.1 KB, 0 views)
File Type: jpg cplprof.jpg (66.3 KB, 0 views)
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01210 seconds
  • Memory Usage 1,795KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (2)postbit_attachment
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete