/**
  *
  * @TODO document
  *
  */
 function save_profile_admin($user_ID)
 {
     if (!isset($this->tabs) || empty($this->tabs)) {
         return;
     }
     // Loop through tabs
     foreach ($this->tabs as $tab => $t) {
         // Loop through tab options
         foreach ($t->options as $oid => $o) {
             // Note: If the value is null, then test to see if the option is already set to something
             // create and overwrite the option to null in that case (i.e. it is being set to empty)
             if (isset($o['selectvalues']) && pagelines_is_multi_option($oid, $o)) {
                 foreach ($o['selectvalues'] as $sid => $s) {
                     $option_value = isset($_POST[$sid]) ? $_POST[$sid] : null;
                     if (!empty($option_value) || pl_um($sid, $user_ID)) {
                         update_post_meta($user_ID, $sid, $option_value);
                     }
                 }
             } else {
                 $option_value = isset($_POST[$oid]) ? $_POST[$oid] : null;
                 if (!empty($option_value) || pl_um($oid, $user_ID)) {
                     update_user_meta($user_ID, $oid, $option_value);
                 }
             }
         }
     }
 }
/**
 * This function registers the default values for pagelines theme settings
 */
function pagelines_settings_defaults()
{
    $default_options = array();
    foreach (get_option_array(true) as $menuitem => $options) {
        foreach ($options as $oid => $o) {
            if (isset($o['type']) && 'layout' == $o['type']) {
                $dlayout = new PageLinesLayout();
                $default_options['layout'] = $dlayout->default_layout_setup();
            } elseif (pagelines_is_multi_option($oid, $o)) {
                foreach ($o['selectvalues'] as $multi_optionid => $multi_o) {
                    if (isset($multi_o['default'])) {
                        $default_options[$multi_optionid] = $multi_o['default'];
                    }
                }
            } else {
                if (!VPRO && isset($o['version_set_default']) && $o['version_set_default'] == 'pro') {
                    $default_options[$oid] = null;
                } elseif (!VPRO && isset($o['default_free'])) {
                    $default_options[$oid] = $o['default_free'];
                } elseif (isset($o['default'])) {
                    $default_options[$oid] = $o['default'];
                }
            }
        }
    }
    return apply_filters('pagelines_settings_defaults', $default_options);
}
 /**
  * Save Meta Options
  *
  * Use tabs array to save options...
  * Need to identify if the option is being set to empty or has never been set
  * *Section Control* gets its own saving schema
  */
 function save_meta_options($postID)
 {
     // Make sure we are saving on the correct post type...
     // Current post type is passed in $_POST
     $current_post_type = isset($_POST['post_type']) ? $_POST['post_type'] : false;
     $post_type_save = in_array($current_post_type, $this->settings['posttype']) ? true : false;
     if ((isset($_POST['update']) || isset($_POST['save']) || isset($_POST['publish'])) && $post_type_save) {
         $page_template = isset($_POST['page_template']) ? $_POST['page_template'] : null;
         $save_template = $this->get_save_template_type($_POST['post_type'], $page_template);
         $template_type = new PageLinesTemplate($save_template);
         $template_type->load_section_optionator();
         // Loop through tabs
         foreach ($this->tabs as $tab => $t) {
             // Loop through tab options
             foreach ($t->options as $oid => $o) {
                 if ($oid == 'section_control') {
                     $this->save_sc($postID);
                 } elseif ($oid == 'page_background_image') {
                     $this->save_bg($oid, $postID);
                 } elseif ($o['type'] == 'text_content' || $o['type'] == 'text_content_reverse') {
                     $option_value = isset($_POST[$oid]) ? $_POST[$oid] : null;
                     plupop($oid, $option_value);
                     plupop($oid, $option_value, array('setting' => PAGELINES_SPECIAL));
                 } elseif ($o['type'] == 'check' && (bool) pldefault($oid)) {
                     $reverse = $oid . "_reverse";
                     $option_value = isset($_POST[$reverse]) ? $_POST[$reverse] : null;
                     if (!empty($option_value) || get_post_meta($postID, $reverse)) {
                         update_post_meta($postID, $reverse, $option_value);
                     }
                 } else {
                     // Note: If the value is null, then test to see if the option is already set to something
                     // create and overwrite the option to null in that case (i.e. it is being set to empty)
                     if (isset($o['selectvalues']) && pagelines_is_multi_option($oid, $o)) {
                         foreach ($o['selectvalues'] as $sid => $s) {
                             $option_value = isset($_POST[$sid]) ? $_POST[$sid] : null;
                             if (!empty($option_value) || get_post_meta($postID, $sid)) {
                                 update_post_meta($postID, $sid, $option_value);
                             }
                         }
                     } else {
                         $option_value = isset($_POST[$oid]) ? $_POST[$oid] : null;
                         if (!empty($option_value) || get_post_meta($postID, $oid)) {
                             update_post_meta($postID, $oid, $option_value);
                         }
                     }
                 }
             }
         }
     }
 }