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 use custom field at the member area (https://vborg.vbsupport.ru/showthread.php?t=238736)

LuisMontemayor 03-21-2010 02:46 AM

how to use custom field at the member area
 
Hi, Im doing the new layout of my site and I want to show some custom fields ($post['field5']) in the member area, I used these for the thread area (postbit_legacy):

PHP Code:

<vb:if condition="$post['field5']"><h1>{vb:raw post.field5}</h1></vb:if> <!--Country-->
<
vb:if condition="$post['field2']"><p>{vb:raw post.field2}</p></vb:if> <!--City-->
<
vb:if condition="$post['field7']"><h1>{vb:raw post.field7}</h1></vb:if> <!--Main Software--> 

but it won't work inside MEMBERINFO, is there a way for me to checkout what I should use for each template? or will I need to make a plugin just for this? Thanks in advance.

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

Solved, hope this will help to anyone.

I made a plugin with this info (inside the member_start hook):

PHP Code:

$otheruid $vbulletin->GPC['userid'];

$customfields $db->query_first_slave("SELECT field1 as minibio, field2 as city, field3 as interest, field4 as occupation, field5 as country, field6 as realname, field7 as mainsoftware, field8 as othersoftware  FROM vbforum.userfield where userid = $otheruid");

  
$real_name $customfields['realname'];
  
$occupation $customfields['occupation'];
  
$mini_bio $customfields['minibio'];
  
$mainsoftware $customfields['mainsoftware'];

  

$df_member = array(
        
'real_name' => $real_name,
        
'occupation' => $occupation,
        
'mini_bio' => $mini_bio,
        
'mainsoftware' => $mainsoftware,
    );


vB_Template::preRegister('MEMBERINFO',array('df_member' => $df_member)); 

and in the template MEMBERINFO I added this:

PHP Code:

<h1>{vb:raw df_member.real_name}</h1>
<
h4>{vb:raw df_member.occupation}</h4>
<
h4>{vb:raw df_member.mini_bio}</h4>
<
h4>{vb:raw df_member.mainsoftware}</h4

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

I optimized the code to this:

PHP Code:

$otheruid $vbulletin->GPC['userid'];
$df_member $db->query_first_slave("SELECT field1 as mini_bio, field2 as city, field3 as interest, field4 as occupation, field5 as country, field6 as real_name, field7 as mainsoftware, field8 as othersoftware  FROM vbforum.userfield where userid = $otheruid");
vB_Template::preRegister('MEMBERINFO',array('df_member' => $df_member)); 


LuisMontemayor 03-22-2010 07:13 PM

I updated the code for multiple selection custom fields, hope you can understands it.

PHP Code:

$otheruid $vbulletin->GPC['userid'];
$df_member $db->query_first_slave("SELECT field1 as mini_bio, field2 as city, field3 as interest, field4 as occupation, field5 as country, field6 as real_name, field7 as mainsoftware, field8 as othersoftware  FROM vbforum.userfield where userid = $otheruid");
vB_Template::preRegister('MEMBERINFO',array('df_member' => $df_member));


/* ###CUSTOM FIELD WITH ARRAY#### */
$customfield 8;   // Define the numer of the custom field
$userselection $df_member[othersoftware];
$output $db->query_first_slave("SELECT data FROM profilefield where profilefieldid=$customfield");      //Search for the data of the custom field
$output unserialize($output[data]);    // Put the data back into an array
$totalarray count($output);      // Counts the number of options from the custom field
$count 1;
 for (
$i 0$i <= $totalarray$i++) {  // Creates the array in the following way: 1,2,4,8,16,32,64, etc..
    
$values[] = $count
     
$count $count 2;
}

$contador = -1;
foreach (
$values as $value) {     // The teory of how this work is here: http://www.vbulletin.com/forum/showthread.php?108785-How-To-Add-A-Profile-Field-To-The-Postbit
    
$contador ++;
    if (
$value $userselection){
        
$seleccion .= $output[$contador] . ", ";   //Adds the name of the custom field and then adds a coma and a space
    
} else {
    }
}
$seleccion substr_replace($seleccion,"",-2); // removes the coma and the last space
vB_Template::preRegister('MEMBERINFO',array('df_member_othersoftware' => $seleccion)); 


Sarcoth 03-24-2010 02:56 PM

From my experience with the memberinfo stuff, you are going to need to use $userinfo instead of $post.

Also, I don't see you registering any of your variables so I'm not sure you'll get anywhere with that. I recommend reading over the Rending Templates article again and looking over the preregister part of it. I haven't done it before though, so I'm not exactly sure what to do on that.


All times are GMT. The time now is 04:23 PM.

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.02671 seconds
  • Memory Usage 1,755KB
  • 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
  • (5)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete