Пример #1
0
 public static function get_linked_options($values, $field, $entry_id = false)
 {
     global $user_ID, $wpdb;
     $metas = array();
     $selected_field = FrmField::getOne($values['form_select']);
     if (!$selected_field) {
         return array();
     }
     $linked_posts = isset($selected_field->field_options['post_field']) && $selected_field->field_options['post_field'] && $selected_field->field_options['post_field'] != '';
     $post_ids = array();
     if (is_numeric($values['hide_field']) && empty($values['hide_opt'])) {
         if (isset($_POST) && isset($_POST['item_meta'])) {
             $observed_field_val = isset($_POST['item_meta'][$values['hide_field']]) ? $_POST['item_meta'][$values['hide_field']] : '';
         } else {
             if ($entry_id) {
                 $observed_field_val = FrmEntryMeta::get_entry_meta_by_field($entry_id, $values['hide_field']);
             } else {
                 $observed_field_val = '';
             }
         }
         $observed_field_val = maybe_unserialize($observed_field_val);
         $metas = array();
         FrmProEntryMetaHelper::meta_through_join($values['hide_field'], $selected_field, $observed_field_val, false, $metas);
     } else {
         if ($values['restrict'] && $user_ID) {
             $entry_user = $user_ID;
             if ($entry_id && FrmAppHelper::is_admin()) {
                 $entry_user = FrmDb::get_var('frm_items', array('id' => $entry_id), 'user_id');
                 if (!$entry_user || empty($entry_user)) {
                     $entry_user = $user_ID;
                 }
             }
             if (isset($selected_field->form_id)) {
                 $linked_where = array('form_id' => $selected_field->form_id, 'user_id' => $entry_user);
                 if ($linked_posts) {
                     $post_ids = FrmDb::get_results('frm_items', $linked_where, 'id, post_id');
                 } else {
                     $entry_ids = FrmDb::get_col($wpdb->prefix . 'frm_items', $linked_where, 'id');
                 }
                 unset($linked_where);
             }
             if (isset($entry_ids) && !empty($entry_ids)) {
                 $metas = FrmEntryMeta::getAll(array('it.item_id' => $entry_ids, 'field_id' => (int) $values['form_select']), ' ORDER BY meta_value', '');
             }
         } else {
             $limit = '';
             if (FrmAppHelper::is_admin_page('formidable')) {
                 $limit = 500;
             }
             $metas = FrmDb::get_results('frm_item_metas', array('field_id' => $values['form_select']), 'item_id, meta_value', array('order_by' => 'meta_value', 'limit' => $limit));
             $post_ids = FrmDb::get_results('frm_items', array('form_id' => $selected_field->form_id), 'id, post_id', array('limit' => $limit));
         }
     }
     if ($linked_posts && !empty($post_ids)) {
         foreach ($post_ids as $entry) {
             $meta_value = FrmProEntryMetaHelper::get_post_value($entry->post_id, $selected_field->field_options['post_field'], $selected_field->field_options['custom_field'], array('type' => $selected_field->type, 'form_id' => $selected_field->form_id, 'field' => $selected_field));
             $metas[] = array('meta_value' => $meta_value, 'item_id' => $entry->id);
         }
     }
     $options = array();
     foreach ($metas as $meta) {
         $meta = (array) $meta;
         if ($meta['meta_value'] == '') {
             continue;
         }
         if ($selected_field->type == 'image') {
             $options[$meta['item_id']] = $meta['meta_value'];
         } else {
             $options[$meta['item_id']] = FrmEntriesHelper::display_value($meta['meta_value'], $selected_field, array('type' => $selected_field->type, 'show_icon' => true, 'show_filename' => false));
         }
         unset($meta);
     }
     $options = apply_filters('frm_data_sort', $options, array('metas' => $metas, 'field' => $selected_field));
     unset($metas);
     if (self::include_blank_option($options, $field)) {
         $options = array('' => '') + (array) $options;
     }
     return stripslashes_deep($options);
 }
Пример #2
0
        ?>
">
        <?php 
        if (in_array('id', $atts['fields'])) {
            ?>
            <td><?php 
            echo (int) $entry->id;
            ?>
</dh>
        <?php 
        }
        foreach ($atts['form_cols'] as $col) {
            ?>
            <td valign="top">
                <?php 
            echo FrmEntriesHelper::display_value(isset($entry->metas[$col->id]) ? $entry->metas[$col->id] : false, $col, array('type' => $col->type, 'post_id' => $entry->post_id, 'entry_id' => $entry->id));
            ?>
            </td>
<?php 
        }
        if ($atts['edit_link']) {
            ?>
			<td><?php 
            if (FrmProEntriesHelper::user_can_edit($entry, $atts['form'])) {
                ?>
<a href="<?php 
                echo esc_url(add_query_arg(array('frm_action' => 'edit', 'entry' => $entry->id), $atts['permalink']) . $atts['anchor']);
                ?>
"><?php 
                echo $atts['edit_link'];
                ?>
 public static function get_field_value_shortcode($sc_atts)
 {
     $atts = shortcode_atts(array('entry' => false, 'field_id' => false, 'user_id' => false, 'ip' => false, 'show' => '', 'format' => '', 'return_array' => false, 'default' => ''), $sc_atts);
     // Include all user-defined atts as well
     $atts = (array) $atts + (array) $sc_atts;
     // For reverse compatibility
     if (isset($atts['entry_id']) && !$atts['entry']) {
         $atts['entry'] = $atts['entry_id'];
     }
     if (!$atts['field_id']) {
         return __('You are missing options in your shortcode. field_id is required.', 'formidable');
     }
     $field = FrmField::getOne($atts['field_id']);
     if (!$field) {
         return $atts['default'];
     }
     $entry = self::get_frm_field_value_entry($field, $atts);
     if (!$entry) {
         return $atts['default'];
     }
     $value = FrmProEntryMetaHelper::get_post_or_meta_value($entry, $field, $atts);
     $atts['type'] = $field->type;
     $atts['post_id'] = $entry->post_id;
     $atts['entry_id'] = $entry->id;
     if (!isset($atts['show_filename'])) {
         $atts['show_filename'] = false;
     }
     if ($field->type == 'file' && !isset($atts['html'])) {
         // default to show the image instead of the url
         $atts['html'] = 1;
     }
     if (!empty($atts['format']) || isset($atts['show']) && !empty($atts['show'])) {
         $value = FrmFieldsHelper::get_display_value($value, $field, $atts);
     } else {
         $value = FrmEntriesHelper::display_value($value, $field, $atts);
     }
     return $value;
 }
Пример #4
0
 /**
  * Get the options for a dependent Dynamic field
  *
  * @since 2.0.16
  * @param array $args
  * @param array $field
  */
 private static function get_dependent_dynamic_field_options($args, &$field)
 {
     $linked_field = FrmField::getOne($args['linked_field_id']);
     $field['options'] = array();
     $metas = array();
     FrmProEntryMetaHelper::meta_through_join($args['trigger_field_id'], $linked_field, $args['entry_id'], $args['field_data'], $metas);
     $metas = stripslashes_deep($metas);
     if (FrmProFieldsHelper::include_blank_option($metas, $args['field_data'])) {
         $field['options'][''] = '';
     }
     foreach ($metas as $meta) {
         $field['options'][$meta->item_id] = FrmEntriesHelper::display_value($meta->meta_value, $linked_field, array('type' => $linked_field->type, 'show_icon' => true, 'show_filename' => false));
         unset($meta);
     }
     // change the form_select value so the filter doesn't override the values
     $args['field_data']->field_options['form_select'] = 'filtered_' . $args['field_data']->field_options['form_select'];
     $field = apply_filters('frm_setup_new_fields_vars', $field, $args['field_data']);
     // Sort the options
     $field['options'] = apply_filters('frm_data_sort', $field['options'], array('metas' => $metas, 'field' => $args['linked_field_id']));
 }
Пример #5
0
 private static function add_field_values_to_csv(&$row)
 {
     foreach (self::$fields as $col) {
         $field_value = isset(self::$entry->metas[$col->id]) ? self::$entry->metas[$col->id] : false;
         $field_value = maybe_unserialize($field_value);
         $field_value = apply_filters('frm_csv_value', $field_value, array('field' => $col, 'entry' => self::$entry, 'separator' => self::$separator));
         if (isset($col->field_options['separate_value']) && $col->field_options['separate_value']) {
             $sep_value = FrmEntriesHelper::display_value($field_value, $col, array('type' => $col->type, 'post_id' => self::$entry->post_id, 'show_icon' => false, 'entry_id' => self::$entry->id, 'sep' => self::$separator, 'embedded_field_id' => isset(self::$entry->embedded_fields) && isset(self::$entry->embedded_fields[self::$entry->id]) ? 'form' . self::$entry->embedded_fields[self::$entry->id] : 0));
             $row[$col->id . '_label'] = $sep_value;
             unset($sep_value);
         }
         $row[$col->id] = $field_value;
         unset($col, $field_value);
     }
 }
Пример #6
0
 public static function display_value($value, $field, $atts = array())
 {
     _deprecated_function(__FUNCTION__, '2.0', 'FrmEntriesHelper::display_value');
     return FrmEntriesHelper::display_value($value, $field, $atts);
 }
Пример #7
0
 private static function add_field_values_to_csv(&$row)
 {
     foreach (self::$fields as $col) {
         $field_value = isset(self::$entry->metas[$col->id]) ? self::$entry->metas[$col->id] : false;
         // Post values need to be retrieved differently
         if (self::$entry->post_id && ($col->type == 'tag' || isset($col->field_options['post_field']) && $col->field_options['post_field'])) {
             $field_value = FrmProEntryMetaHelper::get_post_value(self::$entry->post_id, $col->field_options['post_field'], $col->field_options['custom_field'], array('truncate' => $col->field_options['post_field'] == 'post_category' ? true : false, 'form_id' => self::$entry->form_id, 'field' => $col, 'type' => $col->type, 'exclude_cat' => isset($col->field_options['exclude_cat']) ? $col->field_options['exclude_cat'] : 0, 'sep' => self::$separator));
         }
         if (in_array($col->type, array('user_id', 'file', 'date', 'data'))) {
             $field_value = FrmProFieldsHelper::get_export_val($field_value, $col, self::$entry);
         } else {
             if (isset($col->field_options['separate_value']) && $col->field_options['separate_value']) {
                 $sep_value = FrmEntriesHelper::display_value($field_value, $col, array('type' => $col->type, 'post_id' => self::$entry->post_id, 'show_icon' => false, 'entry_id' => self::$entry->id, 'sep' => self::$separator, 'embedded_field_id' => isset(self::$entry->embedded_fields) && isset(self::$entry->embedded_fields[$entry->id]) ? 'form' . self::$entry->embedded_fields[self::$entry->id] : 0));
                 $row[$col->id . '_label'] = $sep_value;
                 unset($sep_value);
             }
             $field_value = maybe_unserialize($field_value);
             $field_value = apply_filters('frm_csv_value', $field_value, array('field' => $col));
         }
         $row[$col->id] = $field_value;
         unset($col, $field_value);
     }
 }