Ejemplo n.º 1
0
function bbconnect_scrub($callback, $data)
{
    if (is_array($data)) {
        $new = array();
        foreach ($data as $key => $val) {
            if (is_array($val)) {
                $new[$key] = bbconnect_scrub($callback, $val);
            } else {
                $new[$key] = call_user_func($callback, $val);
            }
        }
    } else {
        $new = call_user_func($callback, $data);
    }
    return $new;
}
Ejemplo n.º 2
0
/**
 * This function saves BB Connect Options data at init to catch taxonomic options.
 *
 * @since 1.0.2
 *
 * @param none
 *
 * @return var sets the global notification.
 */
function bbconnect_options_save()
{
    if (isset($_POST['_bbc_option'])) {
        // SECURITY CHECK
        check_admin_referer('bbconnect-nonce');
        // SANITIZE ALL INPUT
        bbconnect_scrub('bbconnect_sanitize', $_POST);
        // LET PLUGINS MANIPULATE THEIR OWN OPTIONS
        do_action('bbconnect_options_save_ext');
        global $notice, $bbconnect_flush;
        $notice = array();
        $bbconnect_flush = apply_filters('bbconnect_flush_permalinks', false, $_POST);
        foreach ($_POST['_bbc_option'] as $key => $value) {
            if (update_option($key, $value)) {
                $notice[] = $key;
            }
        }
    }
}
Ejemplo n.º 3
0
/**
 * Receives BBCONNECT-specific data and prepares it for WP updates. On update scenarios, BBCONNECT takes the lead.
 *
 * @since 1.0.2
 *
 * @param int $id Required. The ID of the target user.
 * @param arr $uvals Required. The passed data. Default is a $_POST array.
 *
 * @return int/arr The ID if insertion was successful, otherwise a WP_Error.
 */
function bbconnect_update_user_metadata($args = '')
{
    // SET THE DEFAULTS TO BE OVERRIDDEN AS DESIRED
    $defaults = array('user_id' => false, 'uvals' => false, 'source' => false, 'data_handler' => 'overwrite');
    // PARSE THE INCOMING ARGS
    $args = wp_parse_args($args, $defaults);
    // EXTRACT THE VARIABLES
    extract($args, EXTR_SKIP);
    if (empty($uvals) || empty($user_id)) {
        return false;
    }
    // APPLY AN ACTION IF CONDITIONS ARE PRESENT
    // IN ALL CASES EXCEPT NEW USERS, BBCONNECT LEADS
    if (false != $source) {
        do_action('bbconnect_trigger_user_metadata', $user_id, $uvals, $source);
    }
    // SANITIZE THE DATA
    $uvals = bbconnect_scrub('bbconnect_sanitize', $uvals);
    // PROCESS THE USER META / MERGE TAGS
    // IF LOGIC PREVENTS NASTY NOTICES IF THEY ACCIDENTALLY HIT 'EDIT'
    if (isset($uvals['bbconnect_user_meta'])) {
        // GO AHEAD AND PROCESS THE FULL SUBMISSION
        foreach ($uvals['bbconnect_user_meta'] as $key => $value) {
            $bbconnect_[$key] = bbconnect_get_option($key);
            if (empty($bbconnect_[$key])) {
                continue;
            }
            // IF THIS IS A SECTION, SKIP IT
            if ('section' == $bbconnect_[$key]['options']['field_type']) {
                continue;
            }
            if (is_array($value)) {
                // FOR MULTI-TEXT LOOP THROUGH TO MAKE SURE NULL VALUES ARE REMOVED FROM PROFILE EDITS
                if ('multitext' == $bbconnect_[$key]['options']['field_type']) {
                    $new_value = array();
                    foreach ($value as $subvalue) {
                        if (!empty($subvalue['value'])) {
                            $new_value[] = $subvalue;
                        }
                    }
                    $value = $new_value;
                }
                // FOR TAXONOMIES
                if ('taxonomy' == $bbconnect_[$key]['options']['field_type']) {
                    if (isset($uvals['bbconnect_user_taxonomy_options'])) {
                        $data_handler = $uvals['bbconnect_user_taxonomy_options'][$key];
                    }
                    if ('append' == $data_handler || 'append_no_overwrite' == $data_handler) {
                        $pre_array = get_user_meta($user_id, bbconnect_key($key, $bbconnect_[$key]['source']), true);
                        if (is_array($pre_array)) {
                            $new_array = array();
                            foreach ($value as $subvalue) {
                                if (!in_array($subvalue, $pre_array)) {
                                    $new_array[] = $subvalue;
                                }
                            }
                            $value = array_merge($pre_array, $new_array);
                            //update_user_meta( $user_id, bbconnect_key( $key, $bbconnect_{$key}['source'] ), $merged );
                        } else {
                            //update_user_meta( $user_id, bbconnect_key( $key, $bbconnect_{$key}['source'] ), $value );
                        }
                    } else {
                        if ('remove' == $data_handler) {
                            $pre_array = get_user_meta($user_id, bbconnect_key($key, $bbconnect_[$key]['source']), true);
                            if (is_array($pre_array)) {
                                $new_array = array();
                                foreach ($value as $subvalue) {
                                    $pre_key = array_search($subvalue, $pre_array);
                                    if (false === $pre_key) {
                                    } else {
                                        unset($pre_array[$pre_key]);
                                    }
                                }
                                $value = $pre_array;
                            }
                        }
                    }
                    $value = array_filter($value);
                }
            }
            if ('wpr' == $bbconnect_[$key]['source'] && 'url' == $key) {
                wp_update_user(array('ID' => $user_id, 'user_url' => $value));
            } else {
                if (false !== strpos($data_handler, 'no_overwrite')) {
                    ${$key} = get_user_meta($user_id, bbconnect_key($key, $bbconnect_[$key]['source']), true);
                    if ('' != ${$key}) {
                        continue;
                    }
                }
                if (empty($value)) {
                    delete_user_meta($user_id, bbconnect_key($key, $bbconnect_[$key]['source']));
                } else {
                    update_user_meta($user_id, bbconnect_key($key, $bbconnect_[$key]['source']), $value);
                }
            }
            /*} elseif ( 'bbconnect' != $bbconnect_{$key}['source'] ) {
            
            				// CHECK TO MAKE SURE WE'RE ALLOWING OVERWRITES
            				if ( isset( $_POST['no_overwrite'] ) ) {
            					${$key} = get_user_meta( $user_id, $key, true );
            					if ( '' != ${$key} )
            						continue;
            				}
            
            				if ( '' != $value || !empty( $value ) ) {
            					update_user_meta( $user_id, $key, $value );
            				} else {
            					delete_user_meta( $user_id, $key );
            				}
            			} elseif ( 'bbconnect' == $bbconnect_{$key}['source'] ) {
            
            				// CHECK TO MAKE SURE WE'RE ALLOWING OVERWRITES
            				if ( isset( $_POST['no_overwrite'] ) ) {
            					${$key} = get_user_meta( $user_id, 'bbconnect_'.$key, true );
            					if ( '' != ${$key} )
            						continue;
            				}
            
            				if ( '' != $value || !empty( $value ) ) {
            					update_user_meta( $user_id, 'bbconnect_'.$key, $value );
            				} else {
            					delete_user_meta( $user_id, 'bbconnect_'.$key );
            				}
            			}*/
        }
    }
    /*
    // PROCESS THE USER TAXONOMIES / INTEREST GROUPINGS
    if ( isset( $uvals['bbconnect_user_taxonomy'] ) ) {
    	foreach ( $uvals['bbconnect_user_taxonomy'] as $key => $value ) {
    
    		// IF THIS IS A GROUP ACTION, EVALUATE IF THIS IS AN OVERWRITE OR AN APPEND (DEFAULT)
    		if ( isset( $uvals['bbconnect_user_taxonomy_options'] ) ) {
    
    
    		} else {
    			if ( false !== array_search( 'falsetto', $value ) ) {
    				$f_key = array_search( 'falsetto', $value );
    				unset( $value[$f_key] );
    			}
    
    			// CHECK TO MAKE SURE WE'RE ALLOWING OVERWRITES
    			if ( isset( $_POST['no_overwrite'] ) ) {
    				${$key} = get_user_meta( $user_id, 'bbconnect_'.$key, true );
    				if ( '' != ${$key} )
    					continue;
    			}
    
    			if ( !empty( $value ) ) {
    				update_user_meta( $user_id, 'bbconnect_'.$key, $value );
    			} else {
    				delete_user_meta( $user_id, 'bbconnect_'.$key );
    			}
    		}
    	}
    }
    */
    // ALLOW PLUGINS TO PERFORM ANY ACTIONS BEFORE THE USER TABLE IS UPDATED
    do_action('bbconnect_update_user_metadata_ext', $user_id, $uvals);
}
Ejemplo n.º 4
0
function bbconnect_report_process()
{
    // RUN A SECURITY CHECK
    if (!wp_verify_nonce($_POST['bbconnect_report_nonce'], 'bbconnect-report-nonce')) {
        die('terribly sorry.');
    }
    // MAKE SURE WE HAVE A CLEAN START...
    $_POST = bbconnect_scrub('bbconnect_sanitize', $_POST);
    // UNWRAP THE VALUES
    if (isset($_POST['data'])) {
        parse_str($_POST['data'], $_POST);
    }
    // UNWRAP THE VALUES
    if (isset($_POST['userdata'])) {
        parse_str($_POST['userdata'], $_POST);
    }
    // UNWRAP THE VALUES
    if (isset($_POST['fdata'])) {
        parse_str($_POST['fdata'], $_POST);
    }
    // RUN THE SWITCH
    $post_keys = array_keys($_POST['action']);
    $pro_func = array_shift($post_keys);
    $pro_var = array_shift($_POST['action']);
    global $ret_res;
    $ret_res = $pro_func($_POST);
    if (false != $ret_res) {
        //echo '<div>'.memory_get_usage().'</div>';
        // REMEMBER THE USERS SEARCH
        global $current_user;
        $filter_query = $ret_res['post_vars'];
        update_option('_bbconnect_' . $current_user->ID . '_current', $filter_query);
        // DISPLAY THE RESULTS
        bbconnect_report_display($ret_res);
        //echo '<div>'.memory_get_usage().'</div>';
    }
    die;
}
Ejemplo n.º 5
0
/**
 * Process the submissions return the results
 *
 * @since 0.1.0
 */
function bbconnectpanels_submission($embed = false)
{
    // RUN A SECURITY CHECK
    if (is_user_logged_in()) {
        if (!check_ajax_referer('bbconnectpanels-ajax-nonce', 'bbconnectpanels_nonce', false)) {
            wp_clear_auth_cookie();
            die(__('very sorry. there seems to be an error. please refresh the page and try again.', 'bbconnect'));
        }
    }
    // UNWRAP THE VALUES
    if (isset($_POST['data'])) {
        parse_str($_POST['data'], $_POST);
    }
    // SANITIZE ALL INPUT DATA
    $_POST = bbconnect_scrub('bbconnect_sanitize', $_POST);
    // DO A SERIALIZED VALUE CHECK
    $rel = maybe_unserialize(urldecode($_POST['rel']));
    if (is_array($rel)) {
        $rel_array = $rel;
        $rel = $rel_array['rel'];
        $_POST = array_merge($_POST, $rel_array);
    } else {
        if (false !== strpos($rel, '&')) {
            $rel_pre = explode('&', $rel);
        } else {
            $rel_pre = array($rel);
        }
        // REL CAN BE DECLARED BY THE FORMS
        if (1 == count($rel_pre) && false === strpos($rel, '=')) {
            $rel_array = array('rel' => $rel);
        } else {
            $rel_array = array();
            foreach ($rel_pre as $key => $pair) {
                $pair = explode('=', $pair);
                $rel_array[$pair[0]] = $pair[1];
            }
        }
        // ALLOWED $_GETs
        $okget = bbconnectpanels_get_query_vars();
        foreach ($rel_array as $key => $val) {
            if (in_array($key, $okget)) {
                $_POST[$key] = $val;
            }
        }
    }
    // SANITIZE ALL INPUT DATA
    $_POST = bbconnect_scrub('bbconnect_sanitize', $_POST);
    // IF WE'VE SET A TEMPORARY RE-DIRECT, UNSET IT HERE
    bbconnectpanels_done_whereto();
    // RUN THE SWITCH
    switch ($_POST['rel']) {
        // SENDING A CONTACT REQUEST
        case 'contact':
            if (!empty($_POST['email'])) {
                // CONDITIONS FOR NAME
                $fname = '';
                $lname = '';
                if (isset($_POST['bbconnect_user_meta']['first_name'])) {
                    $fname = $_POST['bbconnect_user_meta']['first_name'];
                }
                if (isset($_POST['bbconnect_user_meta']['last_name'])) {
                    $lname = $_POST['bbconnect_user_meta']['last_name'];
                }
                $name = $fname . ' ' . $lname;
                // EMAIL
                $email = $_POST['email'];
                // USER TARGET
                if (isset($_POST['uid'])) {
                    $uid = $_POST['uid'];
                    unset($_POST['uid']);
                }
                // CODE
                $log_code = false;
                $contact_title = '';
                $form = false;
                if (isset($_POST['bbc_form'])) {
                    $log_code = $_POST['bbc_form'];
                    $bbc_titles = get_option('_bbconnect_user_forms');
                    $contact_title = $bbc_titles[$_POST['bbc_form']] . ': ';
                    $form = get_option('_bbconnect_form_' . $_POST['bbc_form']);
                    $form_notifications = true;
                    if (!empty($form['notify_enable']) && 'false' == $form['notify_enable']) {
                        $form_notifications = false;
                    }
                }
                // SUBJECT
                $subject = $contact_title . __('Submission', 'bbconnect');
                if (false != $form && isset($form['subject'])) {
                    $subject = $form['subject'];
                }
                if (isset($_POST['_bbc_post']['_bbc_form_subject'])) {
                    $subject = $_POST['_bbc_post']['_bbc_form_subject'];
                    unset($_POST['_bbc_post']['_bbc_form_subject']);
                }
                // MESSAGE
                $message = '';
                if (isset($_POST['_bbc_post']['_bbc_form_message'])) {
                    $message = $_POST['_bbc_post']['_bbc_form_message'];
                    unset($_POST['_bbc_post']['_bbc_form_message']);
                }
                // APPEND ADDITIONAL FIELDS TO THE MESSAGE
                if (isset($_POST['bbconnect_user_meta'])) {
                    foreach ($_POST['bbconnect_user_meta'] as $k => $v) {
                        $option = bbconnect_get_option($k);
                        $message .= "\r\n";
                        $message .= $option['name'] . ": " . stripslashes(maybe_serialize($v)) . "\r\n";
                    }
                }
                // CC
                $cc_me = 'false';
                if (isset($_POST['_bbc_post']['_bbc_form_cc'])) {
                    $cc_me = $_POST['_bbc_post']['_bbc_form_cc'];
                    unset($_POST['_bbc_post']['_bbc_form_cc']);
                }
                $sender = get_user_by('email', $email);
                // IF THEY DON'T EXIST, ADD THEM!
                // FIRST TIME COMMUNICATIONS ARE GOING TO BE LOGGED NO MATTER WHAT
                if (!$sender) {
                    // NEED TO DO A SECONDARY CHECK FOR ALTERNATE EMAILS
                    $user_id = bbconnect_insert_user(array('ivals' => $_POST, 'log_type' => 'contact_form', 'log_code' => $log_code, 'title' => $contact_title . $subject, 'content' => $message));
                    $sender = get_user_by('id', $user_id);
                    // IF THEY DO EXIST, AND ARE CONTACTING AN ADMIN, LOG IT!
                } else {
                    if (!isset($uid)) {
                        $postdata['post_title'] = $contact_title . $subject;
                        $postdata['post_content'] = $message;
                        $postdata['post_status'] = 'private';
                        $postdata['post_author'] = $sender->ID;
                        $postdata['post_type'] = 'bbc_log';
                        $post_id = wp_insert_post($postdata, true);
                        // UPDATE THE META
                        if (intval($post_id)) {
                            update_post_meta($post_id, '_bbc_log_type', 'contact_form');
                            update_post_meta($post_id, '_bbc_log_code', $log_code);
                        }
                    }
                }
                // PREP THE FORM FOR MAIL NOTIFICATIONS
                // SENDER INFORMATION
                // EMAIL COMES FROM $_POST['email']
                $_POST['name'] = $name;
                if (false != $form) {
                    if (!empty($form['notify_from'])) {
                        $_POST['email'] = $form['notify_from'];
                    }
                    if (!empty($form['notify_from_name'])) {
                        $_POST['name'] = $form['notify_from_name'];
                    }
                }
                // NEED AN OPTION FOR MAIL NOTIFICATIONS
                // IF THIS IS GOING TO ANOTHER SITE USER...
                $to_email = array();
                if (isset($uid)) {
                    $recipient = get_user_by('id', $uid);
                    $to_email[] = $recipient->user_email;
                    $form_notifications = true;
                } else {
                    if (false != $form) {
                        $to_email = explode(',', $form['notify']);
                        foreach ($to_email as $tek => $tev) {
                            $to_email[$tek] = trim($tev);
                        }
                    }
                }
                $to_email = apply_filters('bbconnectpanels_contact_form_recipients', $to_email, $sender, $log_code);
                // IF WE'RE EMAILING, DO IT NOW
                if (!empty($to_email)) {
                    $admin_msg = '';
                    $admin_msg .= sprintf(__('Origin: %1$s', 'bbconnect'), get_option('blogname')) . "\r\n";
                    if (!empty($contact_title)) {
                        $admin_msg .= sprintf(__('Form: %1$s', 'bbconnect'), $contact_title) . "\r\n";
                    }
                    $admin_msg .= sprintf(__('Sender: %1$s <%2$s>', 'bbconnect'), $name, $email) . "\r\n";
                    $admin_msg .= "\r\n";
                    $admin_msg .= $message;
                    // IF WE'RE MAILING, ADD THE FILTERS
                    add_filter('wp_mail_from', 'bbconnectpanels_get_from_email', 20);
                    add_filter('wp_mail_from_name', 'bbconnectpanels_get_from_name', 20);
                    // SEND THE MAIL
                    if (false != $form_notifications) {
                        wp_mail($to_email, $subject, $admin_msg);
                    }
                    // COPY THEM BUT NOT ON THE SAME EMAIL
                    if ('true' == $cc_me) {
                        $_POST['email'] = get_option('admin_email');
                        $_POST['name'] = get_option('blogname');
                        $user_msg = sprintf(__('You asked to be copied on the message below that you sent via the website: %1$s', 'bbconnect'), get_option('blogname')) . "\r\n";
                        $user_msg .= "\r\n";
                        $user_msg .= $message;
                        wp_mail($email, 'Re: ' . $subject, $user_msg);
                    }
                    remove_filter('wp_mail_from', 'bbconnectpanels_get_from_email', 20);
                    remove_filter('wp_mail_from_name', 'bbconnectpanels_get_from_name', 20);
                }
                // THANK YOU
                $thankyou = __('Thank you.', 'bbconnect');
                if (isset($_POST['bbc_form'])) {
                    $bbc_form = get_option('_bbconnect_form_' . $_POST['bbc_form']);
                    $thankyou = bbconnect_scrub('bbconnect_esc_html', $bbc_form['confirm']);
                }
                $signcount = 2 + round(str_word_count(strip_tags($thankyou)) / 4);
                // GIVE PREFERENCE TO THE USER'S PRIOR ACTION
                // LET PLUGINS MODIFY THE SUCCESS ACTION
                do_action('bbconnect_after_contact', $sender, $log_code);
                // SET A FILTER FOR REDIRECTION
                $wloc = apply_filters('bbconnect_contact_redirect', '', $sender, $log_code);
                // REFRESH THE BROWSER
                ?>
				<p id="tschuss"><?php 
                echo wpautop($thankyou);
                ?>
</p>
				<script type="text/javascript">
					setTimeout(function() {
						jQuery('#tschuss').fadeOut('slow');
						jQuery('#bbconnectpanel').removeClass();
						<?php 
                if ('true' != get_option('bbconnectpanels_embed')) {
                    ?>
								jQuery('#bbconnectpanel').slideToggle('fast');
						<?php 
                    if (!empty($wloc)) {
                        echo "window.location = '" . $wloc . "';";
                    }
                } else {
                    if (!empty($wloc)) {
                        echo "window.location.href = '" . $wloc . "';";
                    }
                }
                ?>
					},  <?php 
                echo $signcount * 1000;
                ?>
);
				</script>
				<?php 
                die;
            } else {
                // THE DEFAULT FIELDS
                $form_fields = bbconnect_form_api_fields();
                // USER-DEFINED REPLACEMENT
                if (isset($_POST['bbc_form'])) {
                    $contact_arr = get_option('_bbconnect_form_' . $_POST['bbc_form']);
                }
                // THE DEFAULT CONTACT FORM
                if (!isset($contact_arr) || empty($contact_arr)) {
                    $contact_arr = get_option('_bbconnect_form_contact_form');
                }
                // THE SAFETY CONTACT FORM
                if (!isset($contact_arr) || empty($contact_arr)) {
                    $contact_arr = array('column_1' => array('first_name', 'last_name', 'email'), 'column_2' => array('_bbc_form_subject', '_bbc_form_message', '_bbc_form_cc'));
                }
                // DOUBLE-CHECK THAT WE HAVE AN EMAIL AND A MESSAGE
                $c_email = false;
                $c_msg = false;
                foreach ($contact_arr as $ckey => $cval) {
                    if (is_array($cval)) {
                        if (in_array('email', $cval)) {
                            $c_email = true;
                        }
                        if (in_array('_bbc_form_message', $cval)) {
                            $c_msg = true;
                        }
                    }
                }
                // ALWAYS ENSURE EMAIL IS SET
                if (false == $c_email) {
                    array_push($contact_arr['column_1'], 'email');
                }
                //if ( false == $c_msg )
                //array_push( $contact_arr['column_2'], '_bbc_form_message' );
                if (isset($contact_arr['msg']) && !empty($contact_arr['msg'])) {
                    echo '<div id="form-msg">';
                    echo wpautop(stripslashes($contact_arr['msg']));
                    echo '</div>';
                }
                // LET'S SEE IF THEY WANT ONE OR TWO COLUMNS
                if (empty($contact_arr['column_2'])) {
                    $colone = ' class="column-holder full"';
                    $coltwo = false;
                } else {
                    $colone = ' id="column_1_holder"';
                    $coltwo = ' id="column_2_holder"';
                }
                ?>
				<form class="bbconnectpanels-form" enctype="multipart/form-data" action="" method="POST">
					<div<?php 
                echo $colone;
                ?>
>
						<ul>
						<?php 
                if (isset($contact_arr['column_1'])) {
                    foreach ($contact_arr['column_1'] as $key => $val) {
                        if (isset($form_fields[$val])) {
                            $meta = $form_fields[$val];
                            $args['type'] = 'post';
                        } else {
                            $meta = bbconnect_get_option($val);
                        }
                        $args['meta'] = $meta;
                        $args['action'] = 'register';
                        if (is_user_logged_in()) {
                            global $current_user;
                            $args['id'] = $current_user->ID;
                        }
                        bbconnect_get_field($args);
                    }
                }
                ?>
						</ul>
					</div>
					
					<?php 
                if (false != $coltwo) {
                    ?>
					<div<?php 
                    echo $coltwo;
                    ?>
>
						<ul>
						<?php 
                    if (isset($contact_arr['column_2'])) {
                        foreach ($contact_arr['column_2'] as $key => $val) {
                            if (isset($form_fields[$val])) {
                                $meta = $form_fields[$val];
                                $args['type'] = 'post';
                            } else {
                                $meta = bbconnect_get_option($val);
                            }
                            $args['meta'] = $meta;
                            $args['action'] = 'register';
                            if (is_user_logged_in()) {
                                global $current_user;
                                $args['id'] = $current_user->ID;
                            }
                            bbconnect_get_field($args);
                        }
                    }
                    ?>
						</ul>
					</div>
					<?php 
                }
                ?>
					<div class="continue">
						<input type="hidden" name="rel" value="contact" />
						<?php 
                if (isset($_POST['uid'])) {
                    echo '<input type="hidden" name="uid" value="' . $_POST['uid'] . '" />';
                }
                if (isset($_POST['bbc_form'])) {
                    echo '<input type="hidden" name="bbc_form" value="' . $_POST['bbc_form'] . '" />';
                }
                ?>
						<input type="submit" name="_bbconnect[submission]" value="<?php 
                _e('Submit', 'bbconnect');
                ?>
" class="button" />
						<?php 
                echo bbconnectpanels_build_panel_link(array('links' => apply_filters('bbconnect_contact_links', array())));
                ?>
					</div>
				</form>
				<?php 
            }
            break;
            // EXTEND THE PANEL SYSTEM
        // EXTEND THE PANEL SYSTEM
        default:
            do_action('bbconnectpanels_switch', $rel);
            break;
    }
    if ('true' == get_option('bbconnectpanels_embed')) {
        echo '<div id="close-bot"></div>';
    } else {
        ?>
	<div id="close-top"><?php 
        bbconnectpanels_panel_link('action=close');
        ?>
</div>
	<div id="close-bot"><?php 
        bbconnectpanels_panel_link('action=close');
        ?>
</div>
	<script type="text/javascript">
	</script>
	<?php 
    }
    if ('true' == get_option('bbconnectpanels_google_analytics')) {
        ?>
	<script type="text/javascript">
		// "_trackEvent" is the pageview event,
		_gaq.push(['_trackPageview', '/<?php 
        echo $rel;
        ?>
']);
	</script>
	<?php 
    }
    // ALL DONE!
    die;
}
Ejemplo n.º 6
0
function bbconnect_get_field($args = '')
{
    // SET THE DEFAULTS TO BE OVERRIDDEN AS DESIRED
    $defaults = array('meta' => false, 'id' => false, 'type' => 'user', 'action' => '', 'post_val' => false, 'bbconnect_cap' => '', 'required' => false, 'swap_name' => array(), 'swap_id' => false, 'help' => false, 'return' => false, 'readonly' => false, 'flag' => false);
    // PARSE THE INCOMING ARGS
    $args = wp_parse_args($args, $defaults);
    // EXTRACT THE VARIABLES
    extract($args, EXTR_SKIP);
    // EXIT GRACEFULLY IF NEED BE
    if (false == $meta) {
        return false;
    }
    // SET THE BASE AND WRAPPER VALUES
    $key = $meta['meta_key'];
    $wrap = true;
    $label = $meta['name'];
    $label_wrap = true;
    $lock = false;
    $pmv = '';
    $pmt = '';
    $public = $meta['options']['public'];
    $admin_only = false;
    $mayberequired = false;
    $asterix = false;
    // LET HELP HAVE AN OVERRIDE
    if (false == $help && !empty($meta['help'])) {
        $help = $meta['help'];
    }
    // LET READONLY HAVE AN OVERRIDE
    if (isset($meta['options']['readonly']) && false != $meta['options']['readonly']) {
        $readonly = true;
    }
    // SPECIAL CASE FOR CHECKBOX
    if ('checkbox' == $meta['options']['field_type']) {
        $label = false;
    }
    // SET THE FIELD ARRAY
    $field = array();
    // SPECIAL CASES FOR TITLES, SECTIONS AND GROUPS
    $reserved_types = array('title', 'section', 'group');
    // SPECIAL CASES FOR TITLES, SECTIONS AND GROUPS
    $reserved_source = array('email', 'user_login', 'display_name');
    // IF WE HAVE POST VALS, GO AHEAD AND SANITIZE IT, PROBABLY AGAIN
    if (false != $post_val) {
        $post_val = bbconnect_scrub('bbconnect_sanitize', $post_val);
    }
    // MODIFY VALUES ON CONTEXT/TYPE
    $field['type'] = $type;
    if ('option' === $type) {
        $field_pre_name = '_bbc_option';
        if ('textarea' == $meta['options']['field_type']) {
            $field['value'] = bbconnect_scrub('bbconnect_esc_html', get_option($key));
        } else {
            $field['value'] = bbconnect_scrub('bbconnect_esc_attr', get_option($key));
        }
        if (false != $post_val) {
            $field['value'] = $post_val;
        }
        $public = false;
    } else {
        if ('post' === $type) {
            $field_pre_name = '_bbc_post';
            if ('textarea' == $meta['options']['field_type']) {
                $field['value'] = bbconnect_scrub('bbconnect_esc_html', get_post_meta($id, $key, true));
            } else {
                $field['value'] = bbconnect_scrub('bbconnect_esc_attr', get_post_meta($id, $key, true));
            }
            if (false != $post_val) {
                $field['value'] = bbconnect_scrub('bbconnect_esc_attr', $post_val);
            }
            $public = false;
        } else {
            if ('search' === $type) {
                $field_pre_name = 'search';
                $field['value'] = $post_val;
                $public = false;
            } else {
                if ('user' === $type) {
                    $field_pre_name = 'bbconnect_user_meta';
                    if (false != $post_val) {
                        $field['value'] = $post_val;
                    } else {
                        if ('wpr' == $meta['source']) {
                            $field['value'] = get_userdata($id);
                        } else {
                            if ('wp' == $meta['source'] || 'user' == $meta['source']) {
                                $field['value'] = bbconnect_scrub('bbconnect_esc_attr', get_user_meta($id, $key, true));
                            } else {
                                if ('textarea' == $meta['options']['field_type']) {
                                    $field['value'] = bbconnect_scrub('bbconnect_esc_html', get_user_meta($id, 'bbconnect_' . $key, true));
                                } else {
                                    $field['value'] = bbconnect_scrub('bbconnect_esc_attr', get_user_meta($id, 'bbconnect_' . $key, true));
                                }
                            }
                        }
                    }
                    // ADDITIONAL PROCESSING FOR PUBLIC USER FIELDS
                    // BY DEFAULT, PUBLIC DATA IS SET TO FALSE AND HAS TO BE OVERRIDDEN BY AN ADMIN
                    $user_opt = bbconnect_scrub('esc_attr', get_user_meta($id, 'bbconnect_bbc_public', true));
                    if (false != $public) {
                        // SOMEONE HAS UPDATED THIS PROFILE AND SET A PREFERENCE
                        if (is_array($user_opt) && isset($user_opt[$key])) {
                            if ('true' != $user_opt[$key]) {
                                $pmt = 'off';
                                $pmv = 'false';
                            } else {
                                $pmt = 'on';
                                $pmv = 'true';
                            }
                            // IF A USER HAS NOT DECIDED YET ON THEIR PUBLIC STATUS...
                        } else {
                            if (!is_array($user_opt) || !isset($user_opt[$key])) {
                                // IF AN ADMIN HAS OPTED TO FORCE DISPLAY ON UNDECIDED USERS
                                $admin_opt = get_option('_bbconnect_public');
                                if ('true' != $admin_opt) {
                                    $pmt = 'off';
                                    $pmv = 'false';
                                } else {
                                    $pmt = 'on';
                                    $pmv = 'true';
                                }
                            }
                        }
                    }
                } else {
                    return false;
                }
            }
        }
    }
    $field['cid'] = $id;
    $field['display'] = '';
    $field_swap_name = array();
    $field_name = '[' . $key . ']';
    $field_pos_name = array();
    // MODIFY VALUES ON APPEND/CONTEXT
    // VIEW IS FOR PUBLIC-FACING DATA -- CURRENTLY ONLY CORRESPONDS TO USERS
    if ('-view' == $action || 'view' == $action) {
        // EXIT OUT IF AN ADMIN HAS NOT SPECIFIED THIS AS A PUBLIC FIELD
        if (empty($public) && !in_array($meta['options']['field_type'], $reserved_types)) {
            return false;
        }
        // FOR USERS -- EXIT OUT IF NOT A USER FIELD
        if (!isset($id)) {
            return false;
        }
        // IF THIS IS A CONTAINER, LET IT GO
        if (in_array($meta['options']['field_type'], $reserved_types)) {
            // IF A USER HAS DECIDED ON THEIR PUBLIC STATUS AND SAID NO
        } else {
            // FOR USERS -- EXIT OUT IF NOT A USER FIELD
            if (!isset($user_opt)) {
                return false;
            }
            // SOMEONE HAS UPDATED THIS PROFILE AND SET A PREFERENCE
            if (is_array($user_opt) && isset($user_opt[$key])) {
                if ('true' != $user_opt[$key]) {
                    return false;
                }
                // IF A USER HAS NOT DECIDED YET ON THEIR PUBLIC STATUS...
            } else {
                if (!is_array($user_opt) || !isset($user_opt[$key])) {
                    // IF AN ADMIN HAS OPTED TO FORCE DISPLAY ON UNDECIDED USERS
                    $admin_opt = get_option('_bbconnect_public');
                    if ('true' != $admin_opt || in_array($meta['options']['field_type'], $reserved_types)) {
                        return false;
                    }
                }
            }
        }
        $field['action'] = '-view';
        $label_wrap = false;
        if ('true' == get_option('bbconnectpanels_public_labels')) {
            $label = '<span class="bbconnectpanels-profile-label">' . $label . '</span>';
        } else {
            $label = false;
        }
        $help = false;
        $public = false;
        // A BIT WEIRD, BUT STILL, WE DON'T WANT TO SHOW THE TOGGLE
    } else {
        if ('-bulk-edit' == $action || 'bulk-edit' == $action) {
            // FOR PLUGINS LET'S REMOVE THIS
            if ('plugin' == $meta['options']['field_type']) {
                return false;
            }
            // SPECIAL CASE FOR CHECKBOX
            if ('checkbox' == $meta['options']['field_type']) {
                $label = $meta['name'];
            }
            // SPECIAL CASE FOR UNIQUE USER IDENTIFIERS
            if (in_array($meta['meta_key'], $reserved_source)) {
                return false;
            }
            $field['action'] = '-bulk-edit';
            $field['display'] = ' disabled="disabled"';
            $lock = true;
            $public = false;
        } else {
            if ('-search' == $action || 'search' == $action) {
                // FOR PLUGINS LET'S REMOVE THIS
                if ('plugin' == $meta['options']['field_type']) {
                    return false;
                }
                $field['action'] = '-search';
                $field_name = '';
                $field_pos_name = array('[query]');
                $wrap = false;
                $help = false;
                $label_wrap = false;
                $label = false;
            } else {
                if ('register' == $action) {
                    // FOR PLUGINS LET'S REMOVE THIS
                    if ('plugin' == $meta['options']['field_type']) {
                        return false;
                    }
                    $field['action'] = 'register';
                    $public = false;
                } else {
                    if ('-edit' == $action || 'edit' == $action) {
                        $field['action'] = '-edit';
                        if (false != $readonly) {
                            $field['action'] = '-view';
                        }
                        // FOR PLUGINS LET'S REMOVE THIS
                        if ('user' == $type && false != $meta['options']['admin'] && false == $meta['options']['user']) {
                            $admin_only = true;
                        }
                    } else {
                        if ('inline' == $action) {
                            $field['action'] = '-edit';
                            $label_wrap = false;
                            $label = false;
                            $help = false;
                            $public = false;
                            // A BIT WEIRD, BUT STILL, WE DON'T WANT TO SHOW THE TOGGLE
                        } else {
                            return false;
                        }
                    }
                }
            }
        }
    }
    // ALLOW FOR REDIRECTED PROCESSING OF FIELDS
    if (is_array($swap_name) && !empty($swap_name)) {
        foreach ($swap_name as $name) {
            $field_swap_name[] = '[' . $name . ']';
        }
    }
    $field['name'] = $field_pre_name . implode('', $field_swap_name) . $field_name . implode('', $field_pos_name);
    // ALLOW FOR REPLACEMENT IDS
    if (false != $swap_id) {
        $field['id'] = $swap_id;
        $field['title'] = $swap_id;
    } else {
        $field['id'] = $key;
        $field['title'] = $key;
    }
    $field['capabilities'] = $bbconnect_cap;
    if (false != $required || !empty($meta['options']['req'])) {
        if ('bbconnect' == $meta['source'] && false !== strpos($meta['meta_key'], 'address_state_')) {
            $required = ' semi-required';
            $asterix = '<span class="asterix-required" style="display:none;">*</span>';
        } else {
            $required = ' required';
            $asterix = '<span class="asterix-required">*</span>';
        }
    }
    if (false != $required && 'checkbox' == $meta['options']['field_type'] && false == $label) {
        $mayberequired = __('Required', 'bbconnect');
    }
    // ALLOW FOR ADDITIONAL CLASSES
    if (isset($meta['options']['class'])) {
        if (is_array($meta['options']['class'])) {
            $field['class'] = ' ' . implode(' ', $meta['options']['class']);
        } else {
            $field['class'] = ' ' . $meta['options']['class'];
        }
    } else {
        $field['class'] = '';
    }
    // SET THE WILDCARD IF APPLICABLE
    if (false != $flag) {
        $field['flag'] = $flag;
    }
    // OVERRIDE DISPALY DEFAULTS FOR RESERVES
    if (in_array($meta['options']['field_type'], $reserved_types)) {
        $label = false;
        $label_wrap = false;
        $lock = false;
        $help = false;
        $public = false;
    }
    if ($admin_only == true && current_user_can('manage_padlock_fields') || $admin_only == false) {
        if ($wrap) {
            echo '<li class="meta-item">';
        }
        if ($label_wrap) {
            echo '<span class="bbconnect-label' . $required . '">' . $mayberequired;
        }
        if ($lock) {
            echo '<a class="rui off" title="' . $key . $action . '">';
        }
        if ($label) {
            echo stripslashes($label);
        }
        if ($lock) {
            echo '</a>';
        }
        if ($label_wrap) {
            echo $asterix;
        }
        if ($help || $public || $admin_only) {
            if ($label) {
                echo '<br />';
            }
        }
        if ($help && 'checkbox' != $meta['options']['field_type']) {
            echo '<a class="help" title="' . $help . '">&nbsp;</a>';
        }
        if ($admin_only) {
            echo '<a class="icon-admin" title="' . __('Only visible to admins.', 'bbconnect') . '">&nbsp;</a>';
        }
        if ($public) {
            echo '<a class="pmt ' . $pmt . '" rel="' . __('Public or Private', 'bbconnect') . '" title="public_' . $key . '"><input type="hidden" id="public_' . $key . '"  name="' . $field_pre_name . '[bbc_public][' . $key . ']" value="' . $pmv . '" />&nbsp;</a>';
        }
        if ($label_wrap) {
            echo '</span>';
        }
        if ($label_wrap) {
            echo '<span class="bbconnect-field">';
        }
        // TEST FOR A DEFAULT VALUE
        if ($field["value"] == '' || $field["value"] == NULL) {
            $field["value"] = bbconnect_field_defaults($meta["meta_key"], $field["value"]);
        }
        bbconnect_field($meta, $field);
        if ($help && 'checkbox' == $meta['options']['field_type']) {
            echo '<a class="help" title="' . $help . '">&nbsp;</a>';
        }
        if ($label_wrap) {
            echo '</span>';
        }
        if ($wrap) {
            echo '</li>';
        }
    }
}
Ejemplo n.º 7
0
function bbconnect_show_form($args = null)
{
    // SET THE DEFAULTS TO BE OVERRIDDEN AS DESIRED
    $defaults = array('pid' => false, 'show_msg' => true, 'show_notify' => true, 'show_links' => true, 'column_1' => array(), 'column_2' => array());
    // PARSE THE INCOMING ARGS
    $args = wp_parse_args($args, $defaults);
    // EXTRACT THE VARIABLES
    extract($args, EXTR_SKIP);
    $option = '';
    $delete = __('Delete this field', 'bbconnect');
    $undo = __('Undo', 'bbconnect');
    if (false == $pid) {
        return false;
    }
    $option = '_bbconnect_form_' . $pid;
    $form = get_option($option);
    $forms = get_option('_bbconnect_user_forms');
    $form_name = $forms[$pid];
    ?>
	
	<div id="form-data">
	<?php 
    if (false != $show_msg) {
        ?>
		<div class="options-field">
			<h3><?php 
        _e('Messages', 'bbconnect');
        ?>
</h3>
			<p><?php 
        printf(__('Add a %1$sgreeting%2$s or instructions to the form.', 'bbconnect'), '<strong>', '</strong>');
        ?>
</p>
			<textarea style="height: 100px;" name="_bbc_option[<?php 
        echo $option;
        ?>
][msg]"><?php 
        if (isset($form['msg'])) {
            echo bbconnect_scrub('bbconnect_esc_html', $form['msg']);
        }
        ?>
</textarea>
			
			<p><?php 
        printf(__('Add a %1$sthank you%2$s or instructions to the form.', 'bbconnect'), '<strong>', '</strong>');
        ?>
</p>
			<textarea style="height: 100px;" name="_bbc_option[<?php 
        echo $option;
        ?>
][confirm]"><?php 
        if (isset($form['confirm'])) {
            echo bbconnect_scrub('bbconnect_esc_html', $form['confirm']);
        }
        ?>
</textarea>
		</div>
	<?php 
    }
    ?>
	
	<?php 
    if (false != $show_notify) {
        $fields = bbconnect_form_notify($form_name);
        echo '<div class="options-field">';
        echo '<h3>' . __('Notifications', 'bbconnect') . '</h3>';
        echo '<ul>';
        foreach ($fields as $field) {
            $args['meta'] = $field['meta'];
            $args['type'] = 'option';
            $args['action'] = 'edit';
            $args['swap_name'] = array($option);
            if (is_array($form) && isset($form[$field['meta']['meta_key']])) {
                $args['post_val'] = $form[$field['meta']['meta_key']];
            } else {
                $args['post_val'] = false;
            }
            bbconnect_get_field($args);
        }
        echo '</ul>';
        echo '</div>';
    }
    /*	
    	?>
    		<div class="options-field">
    			<h3><?php _e( 'Notifications', 'bbconnect' ); ?></h3>
    			<p><?php printf( __( 'Decide which email addresses should be %1$snotified%2$s after the form is submitted. Multiple emails should be separated by commas.', 'bbconnect' ), '<strong>', '</strong>' ); ?></p>
    			<p><input type="text" class="regular-text" name="_bbc_option[<?php echo $option; ?>][notify]" value="<?php if ( isset( $form['notify'] ) ) { echo bbconnect_scrub( 'bbconnect_esc_html', $form['notify'] ); } else { echo get_option( 'admin_email' ); } ?>" /></p>
    			
    			<p><?php printf( __( 'Set the default %1$ssubject%2$s', 'bbconnect' ), '<strong>', '</strong>.' ); ?></p>
    			<p><input type="text" class="regular-text" name="_bbc_option[<?php echo $option; ?>][subject]" value="<?php if ( isset( $form['subject'] ) ) { echo bbconnect_scrub( 'bbconnect_esc_html', $form['subject'] ); } else { printf( __( '%1$s Submission', 'bbconnect' ), $form_name ); } ?>" /></p>
    		</div>
    	<?php } */
    ?>
	
		<div class="options-field">
			<h3><?php 
    _e('Add fields', 'bbconnect');
    ?>
</h3>
			<?php 
    bbconnect_user_data_select(array('id' => 'form-field-select', 's_context' => 'form_api', 'address_unlock' => true));
    ?>
 
			<a class="button" id="add-form-field" rel="form-field-select"><?php 
    _e('+ Add Field', 'bbconnect');
    ?>
</a>
		</div>
		
		<div class="options-field">
			<div class="inside t-panel" style="display: block;">

			<?php 
    // IF IT'S A SYSTEM-GENERATED FORM
    if ('bbconnect' == $form['source'] || false !== strpos($pid, 'default')) {
        echo '<input type="hidden" name="_bbc_option[' . $option . '][source]" value="bbconnect" />';
    } else {
        echo '<input type="hidden" name="_bbc_option[' . $option . '][source]" value="user" /></div>';
    }
    // PULL THE SPECIAL FORM FIELDS
    $form_fields = bbconnect_form_api_fields();
    ?>
				<div id="column_1_holder">
					<ul id="column_1" title="<?php 
    echo $option;
    ?>
" class="forms-sortable connected-forms-sortable primary-list column">
					<?php 
    // LOOP THROUGH ALL OF THE FIELDS REGISTERED WITH THE SYSTEM
    // RETRIEVE THEIR VALUES FOR DISPLAY
    // IF IT'S A GROUP, MAKE A SUBLIST
    // WE'LL USE DRAG & DROP FOR SORTING
    if (isset($form['column_1']) && !empty($form['column_1'])) {
        $column_1 = $form['column_1'];
    }
    foreach ($column_1 as $key => $value) {
        if (isset($form_fields[$value])) {
            $val_title = esc_attr($form_fields[$value]['name']);
        } else {
            $val_arr = bbconnect_get_option($value);
            $val_title = esc_attr($val_arr['name']);
        }
        ?>
						<li>
							<div class="t-wrapper">
								<div class="t-title">
									<span><?php 
        echo $val_title;
        ?>
</span>
									<span class="right">
										<a class="delete" rel="<?php 
        echo $key;
        ?>
" title="<?php 
        echo $delete;
        ?>
">&nbsp;</a>
										<a class="undo" rel="<?php 
        echo $key;
        ?>
" title="<?php 
        echo $undo;
        ?>
">&nbsp;</a>
									</span>
									<input class="column-input" type="hidden" id="<?php 
        echo $key;
        ?>
" name="_bbc_option[<?php 
        echo $option;
        ?>
][column_1][]" value="<?php 
        echo $value;
        ?>
" />
								</div>
							</div>
						</li>
						<?php 
    }
    ?>
					</ul>
				</div>
				
				<div id="column_2_holder">
					<ul id="column_2" title="<?php 
    echo $option;
    ?>
" class="forms-sortable connected-forms-sortable primary-list column">
					<?php 
    if (isset($form['column_2']) && !empty($form['column_2'])) {
        $column_2 = $form['column_2'];
    }
    foreach ($column_2 as $key => $value) {
        if (isset($form_fields[$value])) {
            $val_title = esc_attr($form_fields[$value]['name']);
        } else {
            $val_arr = bbconnect_get_option($value);
            $val_title = esc_attr($val_arr['name']);
        }
        ?>
						<li>
							<div class="t-wrapper">
								<div class="t-title">
									<span><?php 
        echo $val_title;
        ?>
</span>
									<span class="right">
										<a class="delete" rel="<?php 
        echo $key;
        ?>
" title="<?php 
        echo $delete;
        ?>
">&nbsp;</a>
										<a class="undo" rel="<?php 
        echo $key;
        ?>
" title="<?php 
        echo undo;
        ?>
">&nbsp;</a>
									</span>
									<input class="column-input" type="hidden" id="<?php 
        echo $key;
        ?>
" name="_bbc_option[<?php 
        echo $option;
        ?>
][column_2][]" value="<?php 
        echo $value;
        ?>
" />
								</div>
							</div>
						</li>
						<?php 
    }
    ?>
					</ul>
				</div>
			</div>
		</div>
		
		<?php 
    if (false != $show_links) {
        ?>
			<div class="options-field">
				<h3><?php 
        _e('Display this form', 'bbconnect');
        ?>
</h3>
				<?php 
        echo '<p>' . sprintf(__('Use the link, shortcode or menu options below to link to this form. You can replace %1$s with your own text.', 'bbconnect'), '<strong>' . $form_name . '</strong>') . '</p>';
        echo '<p class="code-help"><strong>' . __('Embed Shortcode (embeds the form. make sure you have turned on form embedding on the panels tab)', 'bbconnect') . '</strong><br /><textarea readonly class="fin-btn">[bbconnectf id="' . $pid . '"]</textarea></p>';
        echo '<p class="code-help"><strong>' . __('Link Shortcode (generates a link)', 'bbconnect') . '</strong><br /><textarea readonly class="fin-btn">[ppf_link id="' . $pid . '" text="' . $form_name . '"]</textarea></p>';
        echo '<p class="code-help"><strong>' . __('Local Link', 'bbconnect') . '</strong><br /><textarea readonly class="fin-btn">' . htmlentities('<a class="bbconnectpanels-toggle" title="' . $pid . '" href="' . home_url() . '/bbconnect/?rel=contact&amp;bbc_form=' . $pid . '">') . $form_name . htmlentities('</a>') . '</textarea></p>';
        $bbconnectref = urlencode(serialize(array('rel' => 'contact', 'bbc_form' => $pid)));
        echo '<p class="code-help"><strong>' . __('Direct Link', 'bbconnect') . '</strong><br /><textarea readonly class="fin-btn">' . home_url() . '?bbconnectref=' . $bbconnectref . '</textarea></p>';
        bbconnect_add_to_nav_menu($form_name, $pid, '/bbconnect/?rel=contact&amp;bbc_form=' . $pid);
        ?>
		
			</div>
		<?php 
    }
    ?>
		
		<?php 
    // IF IT'S A SYSTEM-GENERATED FORM
    if (isset($form['source']) && 'bbconnect' != $form['source']) {
        if (false === strpos($pid, 'default')) {
            ?>
		<div class="options-field">
			<h3><?php 
            _e('Delete this form', 'bbconnect');
            ?>
</h3>
			<div class="tright inside"><a class="button" id="delete-form" rel="<?php 
            echo $pid;
            ?>
"><?php 
            _e('Delete This Form', 'bbconnect');
            ?>
</a></div>
		</div>
		<?php 
        }
    }
    ?>
			
		<?php 
    do_action('bbconnect_form_ext_msg', $pid);
    ?>
			
	</div>
		
	
	<script type="text/javascript">
		jQuery.noConflict();
		jQuery(document).ready(function(){
			jQuery('#wpfooter').hide();
			jQuery('#show-form').on('click', '.delete', function(){
				jQuery(this).closest('li').remove();
			});
			// SORTING FUNCTION FOR LISTS
			jQuery(function() {
				jQuery('.forms-sortable').sortable({
					connectWith: '.connected-forms-sortable', 
					appendTo: document.body, 
					placeholder: 'pp-ui-highlight', 
					forcePlaceholderSize: true, 
					forceHelperSize: true,  
					update: function(event, ui) { 
						var cid = jQuery(this).attr('id');
						var oid = jQuery(this).attr('title');
						var fid = ui.item.attr('id');
						ui.item.find('.column-input').attr('name','_bbc_option['+oid+']['+cid+'][]');
					}
				}).disableSelection();
			});
			jQuery('#add-form-field').click(function(){
				//var cref = jQuery(this).previous('select');
				var fid = jQuery('#show-form select').val();
				var fna = jQuery('#show-form select option:selected').text();
				jQuery('<li><div class="t-wrapper"><div class="t-title">'+fna+'<span></span><span class="right"><a class="delete" rel="'+fid+'" title="<?php 
    echo $delete;
    ?>
">&nbsp;</a><a class="undo" rel="'+fid+'" title="<?php 
    echo $undo;
    ?>
">&nbsp;</a></span><input class="column-input" type="hidden" id="'+fid+'" name="_bbc_option[<?php 
    echo $option;
    ?>
][column_1][]" value="'+fid+'" /></div></div></li>').appendTo('#column_1');
				return false;
			});
		});
	</script>
	<?php 
}