vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Making use of the User Profile field Multiple Checkboxes (https://vborg.vbsupport.ru/showthread.php?t=71277)

Michael Morris 11-02-2004 11:58 AM

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::

Michael Morris 11-02-2004 12:15 PM

Nevermind - found a function on www.php.net that handled the problem.

Colin F 11-02-2004 12:15 PM

Quote:

Originally Posted by Michael Morris
Nevermind - found a function on www.php.net that handled the problem.

share it with everyone else ;)

Michael Morris 11-02-2004 09:23 PM

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.


All times are GMT. The time now is 04:46 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.01070 seconds
  • Memory Usage 1,733KB
  • 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
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)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