Esempio n. 1
0
 function get_max($field)
 {
     _deprecated_function(__FUNCTION__, '1.07.05', 'FrmProEntryMetaHelper::get_max');
     return FrmProEntryMetaHelper::get_max($field);
 }
Esempio n. 2
0
 /**
  * @since 2.0.8
  */
 private static function do_auto_id_shortcode($args)
 {
     $last_entry = FrmProEntryMetaHelper::get_max($args['field']);
     if (!$last_entry && isset($args['shortcode_atts']['start'])) {
         $new_value = absint($args['shortcode_atts']['start']);
     } else {
         $new_value = absint($last_entry) + 1;
     }
     return $new_value;
 }
Esempio n. 3
0
 public static function get_default_value($value, $field, $dynamic_default = true, $return_array = false)
 {
     if (is_array(maybe_unserialize($value))) {
         return $value;
     }
     if ($field and $dynamic_default) {
         $field->field_options = maybe_unserialize($field->field_options);
         if (isset($field->field_options['dyn_default_value']) and !empty($field->field_options['dyn_default_value'])) {
             $prev_val = $value;
             $value = $field->field_options['dyn_default_value'];
         }
     }
     preg_match_all("/\\[(date|time|email|login|display_name|first_name|last_name|user_meta|user_id|post_meta|post_id|post_title|post_author_email|ip|server|auto_id|siteurl|sitename|get|get-(.?))\\b(.*?)(?:(\\/))?\\]/s", $value, $matches, PREG_PATTERN_ORDER);
     if (!isset($matches[0])) {
         return do_shortcode($value);
     }
     foreach ($matches[0] as $match_key => $val) {
         switch ($val) {
             case '[date]':
                 global $frmpro_settings;
                 $new_value = date_i18n($frmpro_settings->date_format, strtotime(current_time('mysql')));
                 break;
             case '[time]':
                 $new_value = date('H:i:s', strtotime(current_time('mysql')));
                 break;
             case '[email]':
                 global $current_user;
                 $new_value = isset($current_user->user_email) ? $current_user->user_email : '';
                 break;
             case '[login]':
                 global $current_user;
                 $new_value = isset($current_user->user_login) ? $current_user->user_login : '';
                 break;
             case '[display_name]':
                 global $current_user;
                 $new_value = isset($current_user->display_name) ? $current_user->display_name : '';
                 break;
             case '[first_name]':
                 global $current_user;
                 $new_value = isset($current_user->user_firstname) ? $current_user->user_firstname : '';
                 break;
             case '[last_name]':
                 global $current_user;
                 $new_value = isset($current_user->user_lastname) ? $current_user->user_lastname : '';
                 break;
             case '[post_id]':
                 global $post;
                 if ($post) {
                     $new_value = $post->ID;
                 }
                 break;
             case '[post_title]':
                 global $post;
                 if ($post) {
                     $new_value = $post->post_title;
                 }
                 break;
             case '[post_author_email]':
                 $new_value = get_the_author_meta('user_email');
                 break;
             case '[user_id]':
                 $user_ID = get_current_user_id();
                 $new_value = $user_ID ? $user_ID : '';
                 break;
             case '[ip]':
                 $new_value = $_SERVER['REMOTE_ADDR'];
                 break;
             case '[siteurl]':
                 $new_value = FrmAppHelper::site_url();
                 break;
             case '[frmurl]':
                 $new_value = FrmAppHelper::plugin_url();
                 break;
             case '[sitename]':
                 $new_value = get_option('blogname');
                 break;
             default:
                 $atts = shortcode_parse_atts(stripslashes($matches[3][$match_key]));
                 if (isset($atts['return_array'])) {
                     $return_array = $atts['return_array'];
                 }
                 $shortcode = $matches[1][$match_key];
                 if (preg_match("/\\[get-(.?)\\b(.*?)?\\]/s", $val)) {
                     $param = str_replace('[get-', '', $val);
                     if (preg_match("/\\[/s", $param)) {
                         $val .= ']';
                     } else {
                         $param = trim($param, ']');
                     }
                     //only if is doesn't create an imbalanced []
                     $new_value = FrmAppHelper::get_param($param);
                     if (is_array($new_value) and !$return_array) {
                         $new_value = implode(', ', $new_value);
                     }
                 } else {
                     switch ($shortcode) {
                         case 'get':
                             $new_value = '';
                             if (isset($atts['param'])) {
                                 if (strpos($atts['param'], '[')) {
                                     $atts['param'] = str_replace('[', '[', $atts['param']);
                                     $atts['param'] = str_replace(']', ']', $atts['param']);
                                 }
                                 $new_value = FrmAppHelper::get_param($atts['param'], false);
                                 if (!$new_value) {
                                     global $wp_query;
                                     if (isset($wp_query->query_vars[$atts['param']])) {
                                         $new_value = $wp_query->query_vars[$atts['param']];
                                     }
                                 }
                                 if (!$new_value and isset($atts['default'])) {
                                     $new_value = $atts['default'];
                                 } else {
                                     if (!$new_value and isset($prev_val)) {
                                         $new_value = $prev_val;
                                     }
                                 }
                             }
                             if (is_array($new_value) and !$return_array) {
                                 $new_value = implode(', ', $new_value);
                             }
                             break;
                         case 'auto_id':
                             $last_entry = FrmProEntryMetaHelper::get_max($field);
                             if (!$last_entry and isset($atts['start'])) {
                                 $new_value = (int) $atts['start'];
                             }
                             if (!isset($new_value)) {
                                 $new_value = $last_entry + 1;
                             }
                             break;
                         case 'user_meta':
                             if (isset($atts['key'])) {
                                 global $current_user;
                                 $new_value = isset($current_user->{$atts['key']}) ? $current_user->{$atts['key']} : '';
                                 if (is_array($new_value)) {
                                     $new_value = implode(', ', $new_value);
                                 }
                             }
                             break;
                         case 'post_meta':
                             if (isset($atts['key'])) {
                                 global $post;
                                 if ($post) {
                                     if (isset($post->{$atts['key']})) {
                                         $post_meta = $post->{$atts['key']};
                                     } else {
                                         $post_meta = get_post_meta($post->ID, $atts['key'], true);
                                     }
                                     if ($post_meta) {
                                         $new_value = $post_meta;
                                     }
                                 }
                             }
                             break;
                         case 'server':
                             if (isset($atts['param'])) {
                                 $new_value = isset($_SERVER[$atts['param']]) ? $_SERVER[$atts['param']] : '';
                             }
                             break;
                         default:
                             //check for posted item_meta
                             if (is_numeric($shortcode) and isset($_REQUEST) and isset($_REQUEST['item_meta'])) {
                                 $new_value = FrmAppHelper::get_param('item_meta[' . $shortcode . ']', false, 'post');
                                 if (!$new_value and isset($atts['default'])) {
                                     $new_value = $atts['default'];
                                 }
                                 if (is_array($new_value) and !$return_array) {
                                     $new_value = implode(', ', $new_value);
                                 }
                             } else {
                                 //don't replace this if it's a shortcode that still needs to be processed
                                 $new_value = $val;
                             }
                             break;
                     }
                 }
         }
         if (!isset($new_value)) {
             $new_value = '';
         }
         if (is_array($new_value)) {
             if (count($new_value) === 1) {
                 $new_value = reset($new_value);
             }
             $value = $new_value;
         } else {
             $value = str_replace($val, $new_value, $value);
         }
         unset($new_value);
     }
     unset($matches);
     preg_match_all("/\\[(\\d*)\\b(.*?)(?:(\\/))?\\]/s", $value, $matches, PREG_PATTERN_ORDER);
     if (isset($matches[0])) {
         foreach ($matches[0] as $match_key => $val) {
             $shortcode = $matches[1][$match_key];
             if (is_numeric($shortcode) and isset($_REQUEST) and isset($_REQUEST['item_meta'])) {
                 $new_value = FrmAppHelper::get_param('item_meta[' . $shortcode . ']', false, 'post');
                 if (!$new_value and isset($atts['default'])) {
                     $new_value = $atts['default'];
                 }
                 if (is_array($new_value) and !$return_array) {
                     $new_value = implode(', ', $new_value);
                 }
                 if (is_array($new_value)) {
                     $value = $new_value;
                 } else {
                     $value = str_replace($val, $new_value, $value);
                 }
             }
         }
     }
     global $frm_vars;
     $frm_vars['skip_shortcode'] = true;
     $value = do_shortcode($value);
     //If checkbox, multi-select dropdown, or checkbox data from entries field and default value has a comma
     if ($return_array && $field && ($field->type == 'data' && $field->field_options['data_type'] == 'checkbox' || $field->type == 'checkbox' || $field->type == 'select' && $field->field_options['multiple'] == 1) && !is_array($value) && strpos($value, ',') !== false) {
         //If the default value does not match any options OR if data from entries field (never would have commas in values), explode to array
         if ($field->type == 'data' || !in_array($value, $field->options)) {
             $value = explode(',', $value);
         }
     }
     $frm_vars['skip_shortcode'] = false;
     return $value;
 }