Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-02-2004, 11:58 AM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Making use of the User Profile field Multiple Checkboxes

Ok, I set up a user profile field with multiple check boxes so I could group several display toggles together. I figured it would be stored as an array..

Well, it's not. It's binary.

I haven't dealt with binary conversions since I had a C=64. Specifically I need to extract a single bit and the evaluate it as true(1) or false (0)

I see a decbin function that will return the number as a binary string. The problem then is how to convert the string into an array??

::scratches head::
Reply With Quote
  #2  
Old 11-02-2004, 12:15 PM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nevermind - found a function on www.php.net that handled the problem.
Reply With Quote
  #3  
Old 11-02-2004, 12:15 PM
Colin F's Avatar
Colin F Colin F is offline
 
Join Date: Jul 2004
Location: Switzerland
Posts: 1,551
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Michael Morris
Nevermind - found a function on www.php.net that handled the problem.
share it with everyone else
Reply With Quote
  #4  
Old 11-02-2004, 09:23 PM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok

PHP Code:
if ($bbuserinfo['field12'])
    {
    
// Explode the variable to it's component checkboxes.
    
$binstring strrev(str_pad(decbin ($bbuserinfo['field12']),31,"0",STR_PAD_LEFT));
    
$bitarray explode(":",chunk_split($binstring1":"));
    
// Now check the array
    
if ($bitarray['0']) // Show Thread Previews
        
{
        
$show['preview'] = false;
        }
    if (
$bitarray['1']) // Post Icons switch
        
{
        
$show['posticons'] = false;
        }
    if (
$bitarray['2']) // Forum Icons Switch
        
{
        
$show['forumicon'] = false;
        }
    if (
$bitarray['3']) // New Threads in Bold
        
{
        
$show['new_bold'] = true;
        }
    if (
$bitarray['4']) // Show Signatures only once / thread
        
{
        
$show['sigsonlyonce'] = true;
        }
    if (
$bitarray['5']) // Show Big User Names
        
{
        
$show['bigusernames'] = true;
        }
    if (
$bitarray['6']) // Show Display options at top
        
{
        
$show['displaytop'] = true;
        }
    unset(
$bitarray,$binstring);            
    } 
To get it to work on you're own board you need to change the field refered at the start to the one appropriate to your board. It is STRONGLY recommended that you reassign the fields to $show variables because they are outputted in the order they are displayed. If you change that order you'll have to change this script - making direct linking of $bitarray to your templates ill advised (and to get it to work anyway you'll need to delete the unset statement);

This script will handle up to 32 checkboxes.

EDIT: This can be plugged into you PHPINCLUDE_START template.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:27 AM.


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.05286 seconds
  • Memory Usage 2,203KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete