# profile-builder/1.1/classes/class.admin.php

User Profile Builder – Beautiful User Registration Forms, User Profiles &amp; User Role Editor, version 1.1. 161 lines.

- Page: https://pluginprobe.com/plugins/profile-builder/1.1/code/classes/class.admin.php
- Raw: https://pluginprobe.com/plugins/profile-builder/1.1/raw/classes/class.admin.php
- Modified: 2011-07-06T11:34:08+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/profile-builder/1.1/code/classes/class.admin.php#L10-L20`.

```php
<?php if (!defined('ProfileBuilderVersion')) exit('No direct script access allowed');
 /*
Original Plugin Name: OptionTree
Original Plugin URI: http://wp.envato.com
Original Author: Derek Herman
Original Author URI: http://valendesigns.com
*/

/**
 * Profile Builder Admin
 *
 */
 
class PB_Admin{
	private $version = NULL;

	function __construct(){
		$this->version = ProfileBuilderVersion;
	}
  
	/**
	* Initiate Plugin & setup main options
	*
	* @uses get_option()
	* @uses add_option()
	* @uses profile_builder_activate()
	* @uses wp_redirect()
	* @uses admin_url()
	*
	* @access public
	*
	*
	* @return bool
	*/
	function profile_builder_initialize(){
		// check for activation
		$check = get_option( 'profile_builder_activation' );

		// redirect on activation
		if ($check != "set") {   
			// add theme options
			add_option( 'profile_builder_activation', 'set');

			// load DB activation function if updating plugin
			$this->profile_builder_activate();

			// Redirect
			wp_redirect( admin_url().'users.php?page=ProfileBuilderOptionsAndSettings' );
		}
		return false;
	}
  
  
	/**
	* Plugin Activation
	*
	*
	*
	* @return void
	*/
  function profile_builder_activate(){
	global $wp_roles;
    
    // check for installed version
  	$installed_ver = get_option( 'profile_builder_version' );
    
    // New Version Update
    if ( $installed_ver != $this->version ){
      update_option( 'profile_builder_version', $this->version );
    } 
    else if ( !$installed_ver ) {
      add_option( 'profile_builder_version', $this->version );
    }
	
	
	$wppb_default_settings = array(  'username' => 'show', 
							  'firstname'=> 'show',
							  'lastname' => 'show',
							  'nickname' => 'show',
							  'dispname' => 'show',
							  'email'	 => 'show',
							  'website'  => 'show',
							  'aim' 	 => 'show',
							  'yahoo'    => 'show',
							  'jabber'	 => 'show',
							  'bio'		 => 'show',
							  'password' => 'show');
		add_option( 'wppb_default_settings', $wppb_default_settings );    //set all fields visible on first activation of the plugin
		add_option( 'wppb_default_style', 'yes');
		$all_roles = $wp_roles->roles;
		$editable_roles = apply_filters('editable_roles', $all_roles);

		$admintSettingsPresent = get_option('wppb_display_admin_settings','not_found');

		if ($admintSettingsPresent == 'not_found'){                    			 // if the field doesn't exists, then create it
			$rolesArray = array();
			foreach ( $editable_roles as $key => $data )
				$rolesArray = array( $key => 'show' ) + $rolesArray;
			$rolesArray = array_reverse($rolesArray,true);
			add_option( 'wppb_display_admin_settings', $rolesArray);
		}
	
  }
  
	/**
	* Plugin Deactivation delete options
	*
	* @uses delete_option()
	*
	* @access public
	*
	*
	* @return void
	*/
	function profile_builder_deactivate() {
		// remove activation check & version
		delete_option( 'profile_builder_activation' );
		delete_option( 'profile_builder_version' );
	}
  
	/**
	* Add Admin Menu Items & Test Actions
	*
	*
	* @return void
	*/
	function profile_builder_admin(){  
		// create menu item
		$profile_builder_options = add_submenu_page( 'users.php', 'Profile Builder', 'Profile Builder', 'delete_users', 'ProfileBuilderOptionsAndSettings', array( $this, 'profile_builder_options_page' ) );

		// add menu item
		add_action( "admin_print_styles-$profile_builder_options", array( $this, 'profile_builder_load' ) );
	}
  
	/**
	* Load Scripts & Styles
	*
	* @uses wp_enqueue_style()
	*
	*
	* @return void
	*/
	function profile_builder_load(){
		// enqueue styles
		wp_enqueue_style( 'profile-builder-style', wppb_plugin_url.'/assets/css/style.css', false, $this->version, 'screen');

		// enqueue scripts
		add_thickbox();	
		wp_enqueue_script( 'jquery-extra-profile-fields', wppb_plugin_url.'/assets/js/jquery.extra.fields.js', array('jquery','media-upload','thickbox','jquery-ui-core','jquery-ui-tabs', 'jquery-ui-sortable'), $this->version );
		
		// remove GD star rating conflicts
		wp_deregister_style( 'gdsr-jquery-ui-core' );
		wp_deregister_style( 'gdsr-jquery-ui-theme' );
	}
  
		function profile_builder_options_page() {
		// Grab Options Page
		include( wppb_plugin_dir.'/front-end/options.php' );
		}
		 
}
```
