Example #1
0
 function form($form_action, $args = array())
 {
     global $wpdb;
     extract($args);
     $post_types = FrmProAppHelper::get_custom_post_types();
     if (!$post_types) {
         return;
     }
     $post_type = FrmProFormsHelper::post_type($args['values']['id']);
     $taxonomies = get_object_taxonomies($post_type);
     $action_control = $this;
     $echo = true;
     $form_id = $form->id;
     $display = false;
     $displays = array();
     $display_ids = FrmDb::get_col($wpdb->postmeta, array('meta_key' => 'frm_form_id', 'meta_value' => $form_id), 'post_ID');
     if ($display_ids) {
         $query_args = array('pm.meta_key' => 'frm_show_count', 'post_type' => 'frm_display', 'pm.meta_value' => array('dynamic', 'calendar', 'one'), 'p.post_status' => array('publish', 'private'), 'p.ID' => $display_ids);
         $displays = FrmDb::get_results($wpdb->posts . ' p LEFT JOIN ' . $wpdb->postmeta . ' pm ON (p.ID = pm.post_ID)', $query_args, 'p.ID, p.post_title', array('order_by' => 'p.post_title ASC'));
         if (isset($form_action->post_content['display_id'])) {
             // get view from settings
             if (is_numeric($form_action->post_content['display_id'])) {
                 $display = FrmProDisplay::getOne($form_action->post_content['display_id'], false, true);
             }
         } else {
             if (!is_numeric($form_action->post_content['post_content']) && !empty($display_ids)) {
                 // get auto view
                 $display = FrmProDisplay::get_form_custom_display($form_id);
                 if ($display) {
                     $display = FrmProDisplaysHelper::setup_edit_vars($display, true);
                 }
             }
         }
     }
     // Get array of all custom fields
     $custom_fields = array();
     if (isset($form_action->post_content['post_custom_fields'])) {
         foreach ($form_action->post_content['post_custom_fields'] as $custom_field_opts) {
             if (isset($custom_field_opts['meta_name'])) {
                 $custom_fields[] = $custom_field_opts['meta_name'];
             }
             unset($custom_field_opts);
         }
     }
     unset($display_ids);
     include dirname(__FILE__) . '/post_options.php';
 }
Example #2
0
 public static function getAll($where, $order_by = '', $limit = '', $meta = false, $inc_form = true)
 {
     global $wpdb;
     $limit = FrmAppHelper::esc_limit($limit);
     $cache_key = maybe_serialize($where) . $order_by . $limit . $inc_form;
     $entries = wp_cache_get($cache_key, 'frm_entry');
     if (false === $entries) {
         $fields = 'it.id, it.item_key, it.name, it.ip, it.form_id, it.post_id, it.user_id, it.parent_item_id, it.updated_by, it.created_at, it.updated_at, it.is_draft';
         $table = $wpdb->prefix . 'frm_items it ';
         if ($inc_form) {
             $fields = 'it.*, fr.name as form_name,fr.form_key as form_key';
             $table .= 'LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_forms fr ON it.form_id=fr.id ';
         }
         if (preg_match('/ meta_([0-9]+)/', $order_by, $order_matches)) {
             // sort by a requested field
             $field_id = (int) $order_matches[1];
             $fields .= ', (SELECT meta_value FROM ' . $wpdb->prefix . 'frm_item_metas WHERE field_id = ' . $field_id . ' AND item_id = it.id) as meta_' . $field_id;
             unset($order_matches, $field_id);
         }
         // prepare the query
         $query = 'SELECT ' . $fields . ' FROM ' . $table . FrmAppHelper::prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
         $entries = $wpdb->get_results($query, OBJECT_K);
         unset($query);
         if (!FrmAppHelper::prevent_caching()) {
             wp_cache_set($cache_key, $entries, 'frm_entry', 300);
         }
     }
     if (!$meta || !$entries) {
         return stripslashes_deep($entries);
     }
     unset($meta);
     if (!is_array($where) && preg_match('/^it\\.form_id=\\d+$/', $where)) {
         $where = array('it.form_id' => substr($where, 11));
     }
     $meta_where = array('field_id !' => 0);
     if ($limit == '' && is_array($where) && count($where) == 1 && isset($where['it.form_id'])) {
         $meta_where['fi.form_id'] = $where['it.form_id'];
     } else {
         $meta_where['item_id'] = array_keys($entries);
     }
     $metas = FrmDb::get_results($wpdb->prefix . 'frm_item_metas it LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON (it.field_id = fi.id)', $meta_where, 'item_id, meta_value, field_id, field_key, form_id');
     unset($meta_where);
     if (!$metas) {
         return stripslashes_deep($entries);
     }
     foreach ($metas as $m_key => $meta_val) {
         if (!isset($entries[$meta_val->item_id])) {
             continue;
         }
         if (!isset($entries[$meta_val->item_id]->metas)) {
             $entries[$meta_val->item_id]->metas = array();
         }
         $entries[$meta_val->item_id]->metas[$meta_val->field_id] = maybe_unserialize($meta_val->meta_value);
         unset($m_key, $meta_val);
     }
     if (!FrmAppHelper::prevent_caching()) {
         foreach ($entries as $entry) {
             wp_cache_set($entry->id, $entry, 'frm_entry');
             unset($entry);
         }
     }
     return stripslashes_deep($entries);
 }
Example #3
0
    private function migrate_to_6()
    {
        global $wpdb;
        $no_save = array_merge(FrmField::no_save_fields(), array('form', 'hidden', 'user_id'));
        $fields = FrmDb::get_results($this->fields, array('type NOT' => $no_save), 'id, field_options');
        $default_html = <<<DEFAULT_HTML
<div id="frm_field_[id]_container" class="form-field [required_class] [error_class]">
    <label class="frm_pos_[label_position]">[field_name]
        <span class="frm_required">[required_label]</span>
    </label>
    [input]
    [if description]<div class="frm_description">[description]</div>[/if description]
</div>
DEFAULT_HTML;
        $old_default_html = <<<DEFAULT_HTML
<div id="frm_field_[id]_container" class="form-field [required_class] [error_class]">
    <label class="frm_pos_[label_position]">[field_name]
        <span class="frm_required">[required_label]</span>
    </label>
    [input]
    [if description]<p class="frm_description">[description]</p>[/if description]
</div>
DEFAULT_HTML;
        $new_default_html = FrmFieldsHelper::get_default_html('text');
        foreach ($fields as $field) {
            $field->field_options = maybe_unserialize($field->field_options);
            if (!FrmField::is_option_empty($field, 'custom_html') || $field->field_options['custom_html'] == $default_html || $field->field_options['custom_html'] == $old_default_html) {
                $field->field_options['custom_html'] = $new_default_html;
                $wpdb->update($this->fields, array('field_options' => maybe_serialize($field->field_options)), array('id' => $field->id));
            }
            unset($field);
        }
        unset($default_html, $old_default_html, $fields);
    }
 /**
  * @covers FrmProFieldsHelper::move_entries_to_parent_form
  */
 function _check_if_child_entries_moved($args)
 {
     global $wpdb;
     // First check if old frm_items are gone from child form
     $items = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "frm_items WHERE form_id=" . $args['form_id']);
     $this->assertEmpty($items, 'Rows in wp_frm_items were not deleted when switching from repeating to non-repeating.');
     // Check if frm_item_metas were moved to parent entries
     $new_child_metas = FrmDb::get_results($wpdb->prefix . 'frm_item_metas m LEFT JOIN ' . $wpdb->prefix . 'frm_items i ON i.id=m.item_id', array('field_id' => $args['children']), 'i.form_id', array('order_by' => 'i.created_at ASC'));
     $this->assertNotEmpty($new_child_metas, 'No entries to check (when switching divider to non-repeatable).');
     foreach ($new_child_metas as $item_meta) {
         $this->assertEquals($args['parent_form_id'], $item_meta->form_id, 'Child entries are not moved to parent form when a divider is switched from repeating to non-repeating.');
     }
     // Make sure frm_item_metas for repeating section are cleaned up
     $rep_meta_values = $wpdb->get_col("SELECT meta_value FROM " . $wpdb->prefix . "frm_item_metas WHERE field_id=" . $args['field_id']);
     $this->assertEmpty($rep_meta_values, 'frm_item_metas for repeating section were not deleted when switching to non-repeatable.');
     self::_check_if_child_form_deleted($args['form_id']);
 }
 function _check_if_extra_child_metas_deleted($args)
 {
     global $wpdb;
     // Get number of entries in parent form
     $parent_entries = FrmDb::get_results($wpdb->prefix . 'frm_items', array('form_id' => $args['parent_form_id']), 'id');
     $entries_for_one_field = FrmDb::get_results($wpdb->prefix . 'frm_item_metas', array('field_id' => reset($args['children'])), 'item_id');
     $this->assertEquals(count($parent_entries), count($entries_for_one_field), 'Child item_metas were not deleted when switching a repeating section to non-repeating. Only the item_metas for the first row of each repeating section should be saved.');
 }
 public static function get_field_stats($id, $type = 'total', $user_id = false, $value = false, $round = 100, $limit = '', $atts = array(), $drafts = false)
 {
     global $wpdb, $frm_post_ids;
     $field = FrmField::getOne($id);
     if (!$field) {
         return 0;
     }
     $id = $field->id;
     if (isset($atts['thousands_sep']) && $atts['thousands_sep']) {
         $thousands_sep = $atts['thousands_sep'];
         unset($atts['thousands_sep']);
         $round = $round == 100 ? 2 : $round;
     }
     $where = array();
     if ($value) {
         $slash_val = strpos($value, '\\') === false ? addslashes($value) : $value;
         if (FrmField::is_field_with_multiple_values($field)) {
             $where[] = array('or' => 1, 'meta_value like' => $value, 'meta_value like ' => $slash_val);
             //add extra slashes to match values that are escaped in the database
         } else {
             //$where_value = $wpdb->prepare(" meta_value = %s", addcslashes( $slash_val, '_%' ) );
             $where[] = array('or' => 1, 'meta_value' => $value, 'meta_value ' => addcslashes($slash_val, '_%'));
         }
         unset($slash_val);
     }
     //if(!$frm_post_ids)
     $frm_post_ids = array();
     $post_ids = array();
     if (isset($frm_post_ids[$id])) {
         $form_posts = $frm_post_ids[$id];
     } else {
         $where_post = array('form_id' => $field->form_id, 'post_id >' => 1);
         if ($drafts != 'both') {
             $where_post['is_draft'] = $drafts;
         }
         if ($user_id) {
             $where_post['user_id'] = $user_id;
         }
         $form_posts = FrmDb::get_results('frm_items', $where_post, 'id,post_id');
         $frm_post_ids[$id] = $form_posts;
     }
     foreach ((array) $form_posts as $form_post) {
         $post_ids[$form_post->id] = $form_post->post_id;
     }
     if ($value) {
         $atts[$id] = $value;
     }
     if (!empty($atts)) {
         $entry_ids = array();
         if (isset($atts['entry_id']) && $atts['entry_id'] && is_numeric($atts['entry_id'])) {
             $entry_ids[] = $atts['entry_id'];
         }
         $after_where = false;
         foreach ($atts as $orig_f => $val) {
             // Accommodate for times when users are in Visual tab
             $val = str_replace(array('&gt;', '&lt;'), array('>', '<'), $val);
             // If first character is a quote, but the last character is not a quote
             if (strpos($val, '"') === 0 && substr($val, -1) != '"' || strpos($val, "'") === 0 && substr($val, -1) != "'") {
                 //parse atts back together if they were broken at spaces
                 $next_val = array('char' => substr($val, 0, 1), 'val' => $val);
                 continue;
                 // If we don't have a previous value that needs to be parsed back together
             } else {
                 if (!isset($next_val)) {
                     $temp = FrmAppHelper::replace_quotes($val);
                     foreach (array('"', "'") as $q) {
                         // Check if <" or >" exists in string and string does not end with ".
                         if (substr($temp, -1) != $q && (strpos($temp, '<' . $q) || strpos($temp, '>' . $q))) {
                             $next_val = array('char' => $q, 'val' => $val);
                             $cont = true;
                         }
                         unset($q);
                     }
                     unset($temp);
                     if (isset($cont)) {
                         unset($cont);
                         continue;
                     }
                 }
             }
             // If we have a previous value saved that needs to be parsed back together (due to WordPress pullling it apart)
             if (isset($next_val)) {
                 if (substr(FrmAppHelper::replace_quotes($val), -1) == $next_val['char']) {
                     $val = $next_val['val'] . ' ' . $val;
                     unset($next_val);
                 } else {
                     $next_val['val'] .= ' ' . $val;
                     continue;
                 }
             }
             $entry_ids = self::get_field_matches(compact('entry_ids', 'orig_f', 'val', 'id', 'atts', 'field', 'form_posts', 'after_where', 'drafts'));
             $after_where = true;
         }
         if (empty($entry_ids)) {
             if ($type == 'star') {
                 $stat = '';
                 ob_start();
                 include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-fields/star_disabled.php';
                 $contents = ob_get_contents();
                 ob_end_clean();
                 return $contents;
             } else {
                 return 0;
             }
         }
         foreach ($post_ids as $entry_id => $post_id) {
             if (!in_array($entry_id, $entry_ids)) {
                 unset($post_ids[$entry_id]);
             }
         }
         $where['it.item_id'] = $entry_ids;
     }
     $join = '';
     if (is_numeric($id)) {
         $where['field_id'] = $id;
     } else {
         $join .= ' LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON it.field_id=fi.id';
         $where['fi.field_key'] = $id;
     }
     if ($user_id) {
         $where['en.user_id'] = $user_id;
     }
     $join .= ' LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_items en ON en.id=it.item_id';
     if ($drafts != 'both') {
         $where['en.is_draft'] = $drafts;
     }
     $field_metas = FrmDb::get_col($wpdb->prefix . 'frm_item_metas it ' . $join, $where, 'meta_value', array('order_by' => 'it.created_at DESC', 'limit' => $limit));
     if (!empty($post_ids)) {
         if (FrmField::is_option_true($field, 'post_field')) {
             if ($field->field_options['post_field'] == 'post_custom') {
                 //get custom post field value
                 $post_values = FrmDb::get_col($wpdb->postmeta, array('meta_key' => $field->field_options['custom_field'], 'post_id' => $post_ids), 'meta_value');
             } else {
                 if ($field->field_options['post_field'] == 'post_category') {
                     $post_query = array('tt.taxonomy' => $field->field_options['taxonomy'], 'tr.object_id' => $post_ids);
                     if ($value) {
                         $post_query[] = array('or' => 1, 't.term_id' => $value, 't.slug' => $value, 't.name' => $value);
                     }
                     $post_values = FrmDb::get_col($wpdb->terms . ' AS t INNER JOIN ' . $wpdb->term_taxonomy . ' AS tt ON tt.term_id = t.term_id INNER JOIN ' . $wpdb->term_relationships . ' AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id', $post_query, 'tr.object_id');
                     $post_values = array_unique($post_values);
                 } else {
                     $post_values = FrmDb::get_results($wpdb->posts, array('ID' => $post_ids), $field->field_options['post_field']);
                 }
             }
             $field_metas = array_merge($post_values, $field_metas);
         }
     }
     if ($type != 'star') {
         unset($field);
     }
     if (empty($field_metas)) {
         if ($type == 'star') {
             $stat = '';
             ob_start();
             include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-fields/star_disabled.php';
             $contents = ob_get_contents();
             ob_end_clean();
             return $contents;
         } else {
             return 0;
         }
     }
     $count = count($field_metas);
     $total = array_sum($field_metas);
     switch ($type) {
         case 'average':
         case 'mean':
         case 'star':
             $stat = $total / $count;
             break;
         case 'median':
             rsort($field_metas);
             $n = ceil($count / 2);
             // Middle of the array
             if ($count % 2) {
                 $stat = $field_metas[$n - 1];
                 // If number is odd
             } else {
                 $n2 = floor($count / 2);
                 // Other middle of the array
                 $stat = ($field_metas[$n - 1] + $field_metas[$n2 - 1]) / 2;
             }
             $stat = maybe_unserialize($stat);
             if (is_array($stat)) {
                 $stat = 0;
             }
             break;
         case 'deviation':
             $mean = $total / $count;
             $stat = 0.0;
             foreach ($field_metas as $i) {
                 $stat += pow($i - $mean, 2);
             }
             if ($count > 1) {
                 $stat /= $count - 1;
                 $stat = sqrt($stat);
             } else {
                 $stat = 0;
             }
             break;
         case 'minimum':
             $stat = min($field_metas);
             break;
         case 'maximum':
             $stat = max($field_metas);
             break;
         case 'count':
             $stat = $count;
             break;
         case 'unique':
             $stat = array_unique($field_metas);
             $stat = count($stat);
             break;
         case 'total':
         default:
             $stat = $total;
     }
     $stat = round($stat, $round);
     if ($type == 'star') {
         ob_start();
         include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-fields/star_disabled.php';
         $contents = ob_get_contents();
         ob_end_clean();
         return $contents;
     }
     if ($round && $round < 5 || isset($thousands_sep)) {
         $thousands_sep = isset($thousands_sep) ? $thousands_sep : ',';
         $stat = number_format($stat, $round, '.', $thousands_sep);
     }
     return $stat;
 }
Example #7
0
        ?>
</editable>
		<options><?php 
        echo FrmXMLHelper::prepare_form_options_for_export($form->options);
        ?>
</options>
		<status><?php 
        echo FrmXMLHelper::cdata($form->status);
        ?>
</status>
        <parent_form_id><?php 
        echo $form->parent_form_id;
        ?>
</parent_form_id>
<?php 
        $fields = FrmDb::get_results($wpdb->prefix . 'frm_fields', array('form_id' => $form->id), '*', array('order_by' => 'field_order'));
        foreach ($fields as $field) {
            ?>
		<field>
		    <id><?php 
            echo $field->id;
            ?>
</id>
            <field_key><?php 
            echo FrmXMLHelper::cdata($field->field_key);
            ?>
</field_key>
            <name><?php 
            echo FrmXMLHelper::cdata($field->name);
            ?>
</name>
 public static function create_entry_from_post_box($post_type, $post = false)
 {
     if (!$post || !isset($post->ID) || $post_type == 'attachment' || $post_type == 'link') {
         return;
     }
     global $wpdb, $frm_vars;
     //don't show the meta box if there is already an entry for this post
     $post_entry = FrmDb::get_var($wpdb->prefix . 'frm_items', array('post_id' => $post->ID));
     if ($post_entry) {
         return;
     }
     //don't show meta box if no forms are set up to create this post type
     $actions = FrmFormAction::get_action_for_form(0, 'wppost');
     if (!$actions) {
         return;
     }
     $form_ids = array();
     foreach ($actions as $action) {
         if ($action->post_content['post_type'] == $post_type && $action->menu_order) {
             $form_ids[] = $action->menu_order;
         }
     }
     if (empty($form_ids)) {
         return;
     }
     $forms = FrmDb::get_results('frm_forms', array('id' => $form_ids), 'id, name');
     $frm_vars['post_forms'] = $forms;
     if (current_user_can('frm_create_entries')) {
         add_meta_box('frm_create_entry', __('Create Entry in Form', 'formidable'), 'FrmProEntriesController::render_meta_box_content', null, 'side');
     }
 }
Example #9
0
 /**
  * @return int count of forms
  */
 public static function &get_count()
 {
     global $wpdb;
     $cache_key = 'frm_form_counts';
     $counts = wp_cache_get($cache_key, 'counts');
     if (false !== $counts) {
         return $counts;
     }
     $results = (array) FrmDb::get_results('frm_forms', array('or' => 1, 'parent_form_id' => null, 'parent_form_id <' => 0), 'status, is_template');
     $statuses = array('published', 'draft', 'template', 'trash');
     $counts = array_fill_keys($statuses, 0);
     foreach ($results as $row) {
         if ('trash' != $row->status) {
             if ($row->is_template) {
                 $counts['template']++;
             } else {
                 $counts['published']++;
             }
         } else {
             $counts['trash']++;
         }
         if ('draft' == $row->status) {
             $counts['draft']++;
         }
         unset($row);
     }
     $counts = (object) $counts;
     wp_cache_set($cache_key, $counts, 'counts');
     return $counts;
 }
Example #10
0
</is_draft>
		<user_id><?php 
        echo FrmXMLHelper::cdata(FrmProFieldsHelper::get_display_name($entry->user_id, 'user_login'));
        ?>
</user_id>
		<updated_by><?php 
        echo FrmXMLHelper::cdata(FrmProFieldsHelper::get_display_name($entry->updated_by, 'user_login'));
        ?>
</updated_by>
		<parent_item_id><?php 
        echo absint($entry->parent_item_id);
        ?>
</parent_item_id>

<?php 
        $metas = FrmDb::get_results($wpdb->prefix . 'frm_item_metas', array('item_id' => $entry->id), 'meta_value, field_id');
        foreach ($metas as $meta) {
            ?>
		<item_meta>
			<field_id><?php 
            echo absint($meta->field_id);
            ?>
</field_id>
		    <meta_value><?php 
            if (isset($fields[$meta->field_id])) {
                $meta->meta_value = FrmProFieldsHelper::get_export_val($meta->meta_value, $fields[$meta->field_id]);
            }
            echo FrmXMLHelper::cdata($meta->meta_value);
            unset($meta);
            ?>
</meta_value>
Example #11
0
 /**
  * Migrate displays table into wp_posts
  */
 private static function migrate_to_16()
 {
     global $wpdb;
     $display_posts = array();
     if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}frm_display'")) {
         //only migrate if table exists
         $dis = FrmDb::get_results('frm_display');
     } else {
         $dis = array();
     }
     foreach ($dis as $d) {
         $post = array('post_title' => $d->name, 'post_content' => $d->content, 'post_date' => $d->created_at, 'post_excerpt' => $d->description, 'post_name' => $d->display_key, 'post_status' => 'publish', 'post_type' => 'frm_display');
         $post_ID = wp_insert_post($post);
         unset($post);
         update_post_meta($post_ID, 'frm_old_id', $d->id);
         if (!isset($d->show_count) || empty($d->show_count)) {
             $d->show_count = 'none';
         }
         foreach (array('dyncontent', 'param', 'form_id', 'post_id', 'entry_id', 'param', 'type', 'show_count', 'insert_loc') as $f) {
             update_post_meta($post_ID, 'frm_' . $f, $d->{$f});
             unset($f);
         }
         $d->options = maybe_unserialize($d->options);
         update_post_meta($post_ID, 'frm_options', $d->options);
         if (isset($d->options['insert_loc']) && $d->options['insert_loc'] != 'none' && is_numeric($d->options['post_id']) && !isset($display_posts[$d->options['post_id']])) {
             $display_posts[$d->options['post_id']] = $post_ID;
         }
         unset($d, $post_ID);
     }
     unset($dis);
     //get all post_ids from frm_entries
     $entry_posts = FrmDb::get_results($wpdb->prefix . 'frm_items', array('post_id >' => 1), 'id, post_id, form_id');
     $form_display = array();
     foreach ($entry_posts as $ep) {
         if (isset($form_display[$ep->form_id])) {
             $display_posts[$ep->post_id] = $form_display[$ep->form_id];
         } else {
             $d = FrmProDisplay::get_auto_custom_display(array('post_id' => $ep->post_id, 'form_id' => $ep->form_id, 'entry_id' => $ep->id));
             $display_posts[$ep->post_id] = $form_display[$ep->form_id] = $d ? $d->ID : 0;
             unset($d);
         }
         unset($ep);
     }
     unset($form_display);
     foreach ($display_posts as $post_ID => $d) {
         if ($d) {
             update_post_meta($post_ID, 'frm_display_id', $d);
         }
         unset($d, $post_ID);
     }
     unset($display_posts);
 }
Example #12
0
 public static function get_entry_meta_info($entry_id)
 {
     return FrmDb::get_results('frm_item_metas', array('item_id' => $entry_id));
 }
 static function get_daily_entries($form, $opts = array(), $type = 'DATE')
 {
     global $wpdb;
     $options = array();
     if (isset($opts['colors'])) {
         $options['colors'] = explode(',', $opts['colors']);
     }
     if (isset($opts['bg_color'])) {
         $options['backgroundColor'] = $opts['bg_color'];
     }
     $type = strtoupper($type);
     $end_timestamp = time();
     //Chart for Entries Submitted
     if ($type == 'HOUR') {
         $start_timestamp = strtotime('-48 hours');
         $title = __('Hourly Entries', 'formidable');
     } else {
         if ($type == 'MONTH') {
             $start_timestamp = strtotime('-1 year');
             $end_timestamp = strtotime('+1 month');
             $title = __('Monthly Entries', 'formidable');
         } else {
             if ($type == 'YEAR') {
                 $start_timestamp = strtotime('-10 years');
                 $title = __('Yearly Entries', 'formidable');
             } else {
                 $start_timestamp = strtotime('-1 month');
                 $title = __('Daily Entries', 'formidable');
             }
         }
     }
     $query = array('form_id' => $form->id, 'is_draft' => 0);
     $args = array();
     if ($type == 'HOUR') {
         $field = 'created_at';
         $query['created_at >'] = date('Y-m-d H', $start_timestamp) . ':00:00';
     } else {
         $field = 'DATE(created_at)';
         $query['created_at >'] = date('Y-m-d', $start_timestamp) . ' 00:00:00';
         $args['group_by'] = $type . '(created_at)';
     }
     $entries_array = FrmDb::get_results('frm_items', $query, $field . ' as endate, COUNT(*) as encount', $args);
     $temp_array = $counts_array = $dates_array = array();
     // Refactor Array for use later on
     foreach ($entries_array as $e) {
         $e_key = $e->endate;
         if ($type == 'HOUR') {
             $e_key = date('Y-m-d H', strtotime($e->endate)) . ':00:00';
         } else {
             if ($type == 'MONTH') {
                 $e_key = date('Y-m', strtotime($e->endate)) . '-01';
             } else {
                 if ($type == 'YEAR') {
                     $e_key = date('Y', strtotime($e->endate)) . '-01-01';
                 }
             }
         }
         $temp_array[$e_key] = $e->encount;
     }
     // Get the dates array
     if ($type == 'HOUR') {
         for ($e = $start_timestamp; $e <= $end_timestamp; $e += 60 * 60) {
             if (!in_array(date('Y-m-d H', $e) . ':00:00', $dates_array)) {
                 $dates_array[] = date('Y-m-d H', $e) . ':00:00';
             }
         }
         $date_format = get_option('time_format');
     } else {
         if ($type == 'MONTH') {
             for ($e = $start_timestamp; $e <= $end_timestamp; $e += 60 * 60 * 24 * 25) {
                 if (!in_array(date('Y-m', $e) . '-01', $dates_array)) {
                     $dates_array[] = date('Y-m', $e) . '-01';
                 }
             }
             $date_format = 'F Y';
         } else {
             if ($type == 'YEAR') {
                 for ($e = $start_timestamp; $e <= $end_timestamp; $e += 60 * 60 * 24 * 364) {
                     if (!in_array(date('Y', $e) . '-01-01', $dates_array)) {
                         $dates_array[] = date('Y', $e) . '-01-01';
                     }
                 }
                 $date_format = 'Y';
             } else {
                 for ($e = $start_timestamp; $e <= $end_timestamp; $e += 60 * 60 * 24) {
                     $dates_array[] = date('Y-m-d', $e);
                 }
                 $date_format = get_option('date_format');
             }
         }
     }
     if (empty($dates_array)) {
         return;
     }
     // Make sure counts array is in order and includes zero click days
     foreach ($dates_array as $date_str) {
         if (isset($temp_array[$date_str])) {
             $counts_array[$date_str] = $temp_array[$date_str];
         } else {
             $counts_array[$date_str] = 0;
         }
     }
     $rows = array();
     $max = 3;
     foreach ($counts_array as $date => $count) {
         $rows[] = array(date_i18n($date_format, strtotime($date)), (int) $count);
         if ((int) $count > $max) {
             $max = $count + 1;
         }
         unset($date, $count);
     }
     $options['title'] = $title;
     $options['legend'] = 'none';
     $cols = array('xaxis' => array('type' => 'string'), __('Count', 'formidable') => array('type' => 'number'));
     $options['vAxis'] = array('maxValue' => $max, 'minValue' => 0);
     $options['hAxis'] = array('slantedText' => true, 'slantedTextAngle' => 20);
     $height = 400;
     $width = '100%';
     $options['height'] = $height;
     $options['width'] = $width;
     $graph = self::convert_to_google($rows, $cols, $options, 'line');
     $html = '<div id="chart_' . $graph['graph_id'] . '" style="height:' . $height . ';width:' . $width . '"></div>';
     return $html;
 }
Example #14
0
        ?>
</post_password>
		<is_sticky><?php 
        echo esc_html($is_sticky);
        ?>
</is_sticky>
<?php 
        if ($post->post_type == 'attachment') {
            ?>
		<attachment_url><?php 
            echo wp_get_attachment_url($post->ID);
            ?>
</attachment_url>
<?php 
        }
        $postmeta = FrmDb::get_results($wpdb->postmeta, array('post_id' => $post->ID));
        foreach ($postmeta as $meta) {
            if (apply_filters('wxr_export_skip_postmeta', false, $meta->meta_key, $meta)) {
                continue;
            }
            ?>
		<postmeta>
			<meta_key><?php 
            echo esc_html($meta->meta_key);
            ?>
</meta_key>
			<meta_value><?php 
            echo FrmXMLHelper::cdata($meta->meta_value);
            ?>
</meta_value>
		</postmeta>
Example #15
0
 function widget($args, $instance)
 {
     global $wpdb;
     $display = FrmProDisplay::getOne($instance['display_id'], false, true);
     $title = apply_filters('widget_title', empty($instance['title']) && $display ? $display->post_title : $instance['title']);
     $limit = empty($instance['limit']) ? ' LIMIT 100' : " LIMIT {$instance['limit']}";
     $post_id = !$display || empty($display->frm_post_id) ? $instance['post_id'] : $display->frm_post_id;
     $page_url = get_permalink($post_id);
     $order_by = '';
     $cat_field = false;
     if ($display && is_numeric($display->frm_form_id) && !empty($display->frm_form_id)) {
         //Set up order for Entries List Widget
         if (isset($display->frm_order_by) && !empty($display->frm_order_by)) {
             //Get only the first order field and order
             $order_field = reset($display->frm_order_by);
             $order = reset($display->frm_order);
             FrmAppHelper::esc_order_by($order);
             if ($order_field == 'rand') {
                 //If random is set, set the order to random
                 $order_by = ' RAND()';
             } else {
                 if (is_numeric($order_field)) {
                     //If ordering by a field
                     //Get all post IDs for this form
                     $posts = FrmDb::get_results($wpdb->prefix . 'frm_items', array('form_id' => $display->frm_form_id, 'post_id >' => 1, 'is_draft' => 0), 'id, post_id');
                     $linked_posts = array();
                     foreach ($posts as $post_meta) {
                         $linked_posts[$post_meta->post_id] = $post_meta->id;
                     }
                     //Get all field information
                     $o_field = FrmField::getOne($order_field);
                     $query = 'SELECT m.id FROM ' . $wpdb->prefix . 'frm_items m INNER JOIN ';
                     $where = array();
                     //create query with ordered values
                     //if field is some type of post field
                     if (isset($o_field->field_options['post_field']) && $o_field->field_options['post_field']) {
                         if ($o_field->field_options['post_field'] == 'post_custom' && !empty($linked_posts)) {
                             //if field is custom field
                             $where['pm.post_id'] = array_keys($linked_posts);
                             FrmDb::get_where_clause_and_values($where);
                             array_unshift($where['values'], $o_field->field_options['custom_field']);
                             $query .= $wpdb->postmeta . ' pm ON pm.post_id=m.post_id AND pm.meta_key=%s ' . $where['where'] . ' ORDER BY CASE when pm.meta_value IS NULL THEN 1 ELSE 0 END, pm.meta_value ' . $order;
                         } else {
                             if ($o_field->field_options['post_field'] != 'post_category' && !empty($linked_posts)) {
                                 //if field is a non-category post field
                                 $where['p.ID'] = array_keys($linked_posts);
                                 FrmDb::get_where_clause_and_values($where);
                                 $query .= $wpdb->posts . ' p ON p.ID=m.post_id ' . $where['where'] . ' ORDER BY CASE p.' . sanitize_title($o_field->field_options['post_field']) . ' WHEN "" THEN 1 ELSE 0 END, p.' . sanitize_title($o_field->field_options['post_field']) . ' ' . $order;
                             }
                         }
                     } else {
                         //if field is a normal, non-post field
                         $where['em.field_id'] = $o_field->id;
                         FrmDb::get_where_clause_and_values($where);
                         $query .= $wpdb->prefix . 'frm_item_metas em ON em.item_id=m.id ' . $where['where'] . ' ORDER BY CASE when em.meta_value IS NULL THEN 1 ELSE 0 END, em.meta_value' . ($o_field->type == 'number' ? ' +0 ' : '') . ' ' . $order;
                     }
                     //Get ordered values
                     if (!empty($where)) {
                         $metas = $wpdb->get_results($wpdb->prepare($query, $where['values']));
                     } else {
                         $metas = false;
                     }
                     unset($query, $where);
                     if (!empty($metas)) {
                         $order_by_array = array();
                         foreach ($metas as $meta) {
                             $order_by_array[] = $wpdb->prepare('it.id=%d DESC', $meta->id);
                         }
                         $order_by = implode(', ', $order_by_array);
                         unset($order_by_array);
                     } else {
                         $order_by .= 'it.created_at ' . $order;
                     }
                     unset($metas);
                 } else {
                     if (!empty($order_field)) {
                         //If ordering by created_at or updated_at
                         $order_by = 'it.' . sanitize_title($order_field) . ' ' . $order;
                     }
                 }
             }
             if (!empty($order_by)) {
                 $order_by = ' ORDER BY ' . $order_by;
             }
         }
         if (isset($instance['cat_list']) && (int) $instance['cat_list'] == 1 && is_numeric($instance['cat_id'])) {
             if ($cat_field = FrmField::getOne($instance['cat_id'])) {
                 $categories = maybe_unserialize($cat_field->options);
             }
         }
     }
     echo $args['before_widget'];
     if ($title) {
         echo $args['before_title'] . $title . $args['after_title'];
     }
     echo '<ul id="frm_entry_list' . ($display ? $display->frm_form_id : '') . '">' . "\n";
     //if Listing entries by category
     if (isset($instance['cat_list']) && (int) $instance['cat_list'] == 1 && isset($categories) && is_array($categories)) {
         foreach ($categories as $cat_order => $cat) {
             if ($cat == '') {
                 continue;
             }
             echo '<li>';
             if (isset($instance['cat_name']) && (int) $instance['cat_name'] == 1 && $cat_field) {
                 echo '<a href="' . esc_url(add_query_arg(array('frm_cat' => $cat_field->field_key, 'frm_cat_id' => $cat_order), $page_url)) . '">';
             }
             echo $cat;
             if (isset($instance['cat_count']) && (int) $instance['cat_count'] == 1) {
                 echo ' (' . FrmProFieldsHelper::get_field_stats($instance['cat_id'], 'count', false, $cat) . ')';
             }
             if (isset($instance['cat_name']) && (int) $instance['cat_name'] == 1) {
                 echo '</a>';
             } else {
                 $entry_ids = FrmEntryMeta::getEntryIds(array('meta_value like' => $cat, 'fi.id' => $instance['cat_id']));
                 $items = false;
                 if ($entry_ids) {
                     $items = FrmEntry::getAll(array('it.id' => $entry_ids, 'it.form_id' => (int) $display->frm_form_id), $order_by, $limit);
                 }
                 if ($items) {
                     echo '<ul>';
                     foreach ($items as $item) {
                         $url_id = $display->frm_type == 'id' ? $item->id : $item->item_key;
                         $current = FrmAppHelper::simple_get($display->frm_param) == $url_id ? ' class="current_page"' : '';
                         if ($item->post_id) {
                             $entry_link = get_permalink($item->post_id);
                         } else {
                             $entry_link = add_query_arg(array($display->frm_param => $url_id), $page_url);
                         }
                         echo '<li' . $current . '><a href="' . esc_url($entry_link) . '">' . FrmAppHelper::kses($item->name) . '</a></li>' . "\n";
                     }
                     echo '</ul>';
                 }
             }
             echo '</li>';
         }
     } else {
         // if not listing entries by category
         if ($display) {
             $items = FrmEntry::getAll(array('it.form_id' => $display->frm_form_id, 'is_draft' => '0'), $order_by, $limit);
         } else {
             $items = array();
         }
         foreach ($items as $item) {
             $url_id = $display->frm_type == 'id' ? $item->id : $item->item_key;
             $current = FrmAppHelper::simple_get($display->frm_param) == $url_id ? ' class="current_page"' : '';
             echo '<li' . $current . '><a href="' . esc_url(add_query_arg(array($display->frm_param => $url_id), $page_url)) . '">' . FrmAppHelper::kses($item->name) . '</a></li>' . "\n";
         }
     }
     echo "</ul>\n";
     echo $args['after_widget'];
 }
 public static function get_display_data($display, $content = '', $entry_id = false, $extra_atts = array())
 {
     if (post_password_required($display)) {
         return get_the_password_form($display);
     }
     add_action('frm_load_view_hooks', 'FrmProDisplaysController::trigger_load_view_hooks');
     FrmAppHelper::trigger_hook_load('view', $display);
     global $frm_vars, $post;
     $frm_vars['forms_loaded'][] = true;
     if (!isset($display->frm_empty_msg)) {
         $display = FrmProDisplaysHelper::setup_edit_vars($display, false);
     }
     if (!isset($display->frm_form_id) || empty($display->frm_form_id)) {
         return $content;
     }
     //for backwards compatability
     $display->id = $display->frm_old_id;
     $display->display_key = $display->post_name;
     $defaults = array('filter' => false, 'user_id' => '', 'limit' => '', 'page_size' => '', 'order_by' => '', 'order' => '', 'drafts' => false, 'auto_id' => '');
     $extra_atts = wp_parse_args($extra_atts, $defaults);
     extract($extra_atts);
     //if (FrmProAppHelper::rewriting_on() && $frmpro_settings->permalinks )
     //    self::parse_pretty_entry_url();
     if ($display->frm_show_count == 'one' && is_numeric($display->frm_entry_id) && $display->frm_entry_id > 0 && !$entry_id) {
         $entry_id = $display->frm_entry_id;
     }
     $entry = false;
     $show = 'all';
     // Don't filter with $entry_ids by default because the query gets too long.
     // Only filter with $entry_ids when showing one entry
     $use_ids = false;
     global $wpdb;
     $where = array('it.form_id' => $display->frm_form_id);
     if (in_array($display->frm_show_count, array('dynamic', 'calendar', 'one'))) {
         $one_param = FrmAppHelper::simple_get('entry', 'sanitize_title', $extra_atts['auto_id']);
         $get_param = FrmAppHelper::simple_get($display->frm_param, 'sanitize_title', $display->frm_show_count == 'one' ? $one_param : $extra_atts['auto_id']);
         unset($one_param);
         if ($get_param) {
             if (($display->frm_type == 'id' || $display->frm_show_count == 'one') && is_numeric($get_param)) {
                 $where['it.id'] = $get_param;
             } else {
                 $where['it.item_key'] = $get_param;
             }
             $entry = FrmEntry::getAll($where, '', 1, 0);
             if ($entry) {
                 $entry = reset($entry);
             }
             if ($entry && $entry->post_id) {
                 //redirect to single post page if this entry is a post
                 if (in_the_loop() && $display->frm_show_count != 'one' && !is_single($entry->post_id) && $post->ID != $entry->post_id) {
                     $this_post = get_post($entry->post_id);
                     if (in_array($this_post->post_status, array('publish', 'private'))) {
                         die(FrmAppHelper::js_redirect(get_permalink($entry->post_id)));
                     }
                 }
             }
         }
         unset($get_param);
     }
     if ($entry && in_array($display->frm_show_count, array('dynamic', 'calendar'))) {
         $new_content = $display->frm_dyncontent;
         $show = 'one';
     } else {
         $new_content = $display->post_content;
     }
     $show = $display->frm_show_count == 'one' ? 'one' : $show;
     $shortcodes = FrmProDisplaysHelper::get_shortcodes($new_content, $display->frm_form_id);
     //don't let page size and limit override single entry displays
     if ($display->frm_show_count == 'one') {
         $display->frm_page_size = $display->frm_limit = '';
     }
     //don't keep current content if post type is frm_display
     if ($post && $post->post_type == self::$post_type) {
         $display->frm_insert_loc = '';
     }
     $pagination = '';
     $form_query = array('form_id' => $display->frm_form_id, 'post_id >' => 1);
     if ($extra_atts['drafts'] != 'both') {
         $is_draft = empty($extra_atts['drafts']) ? 0 : 1;
         $form_query['is_draft'] = $is_draft;
     } else {
         $is_draft = 'both';
     }
     if ($entry && $entry->form_id == $display->frm_form_id) {
         $form_query['id'] = $entry->id;
     }
     $form_posts = FrmDb::get_results('frm_items', $form_query, 'id, post_id');
     unset($form_query);
     $getting_entries = !$entry || !$post || empty($extra_atts['auto_id']);
     $check_filter_opts = !empty($display->frm_where) && $getting_entries;
     if ($entry && $entry->form_id == $display->frm_form_id) {
         $entry_ids = array($entry->id);
         // Filter by this entry ID to make query faster
         $use_ids = true;
     } else {
         if ($check_filter_opts || isset($_GET['frm_search'])) {
             //Only get $entry_ids if filters are set or if frm_search parameter is set
             $entry_query = array('form_id' => $display->frm_form_id);
             if ($extra_atts['drafts'] != 'both') {
                 $entry_query['is_draft'] = $is_draft;
             }
             $entry_ids = FrmDb::get_col('frm_items', $entry_query);
             unset($entry_query);
         }
     }
     $empty_msg = isset($display->frm_empty_msg) && !empty($display->frm_empty_msg) ? '<div class="frm_no_entries">' . FrmProFieldsHelper::get_default_value($display->frm_empty_msg, false) . '</div>' : '';
     if (isset($message)) {
         // if an entry was deleted above, show a message
         $empty_msg = $message . $empty_msg;
     }
     $after_where = false;
     $user_id = $extra_atts['user_id'];
     if (!empty($user_id)) {
         $user_id = FrmAppHelper::get_user_id_param($user_id);
         $uid_used = false;
     }
     self::add_group_by_filter($display, $getting_entries);
     unset($getting_entries);
     if ($check_filter_opts) {
         $display->frm_where = apply_filters('frm_custom_where_opt', $display->frm_where, array('display' => $display, 'entry' => $entry));
         $continue = false;
         foreach ($display->frm_where as $where_key => $where_opt) {
             $where_val = isset($display->frm_where_val[$where_key]) ? $display->frm_where_val[$where_key] : '';
             if (preg_match("/\\[(get|get-(.?))\\b(.*?)(?:(\\/))?\\]/s", $where_val)) {
                 $where_val = FrmProFieldsHelper::get_default_value($where_val, false, true, true);
                 //if this param doesn't exist, then don't include it
                 if ($where_val == '') {
                     if (!$after_where) {
                         $continue = true;
                     }
                     continue;
                 }
             } else {
                 $where_val = FrmProFieldsHelper::get_default_value($where_val, false, true, true);
             }
             $continue = false;
             if ($where_val == 'current_user') {
                 if ($user_id && is_numeric($user_id)) {
                     $where_val = $user_id;
                     $uid_used = true;
                 } else {
                     $where_val = get_current_user_id();
                 }
             } else {
                 if (!is_array($where_val)) {
                     $where_val = do_shortcode($where_val);
                 }
             }
             if (in_array($where_opt, array('id', 'item_key', 'post_id')) && !is_array($where_val) && strpos($where_val, ',')) {
                 $where_val = explode(',', $where_val);
                 $where_val = array_filter($where_val);
             }
             if (is_array($where_val) && !empty($where_val)) {
                 if (strpos($display->frm_where_is[$where_key], '!') === false && strpos($display->frm_where_is[$where_key], 'not') === false) {
                     $display->frm_where_is[$where_key] = ' in ';
                 } else {
                     $display->frm_where_is[$where_key] = 'not in';
                 }
             }
             if (is_numeric($where_opt)) {
                 $filter_opts = apply_filters('frm_display_filter_opt', array('where_opt' => $where_opt, 'where_is' => $display->frm_where_is[$where_key], 'where_val' => $where_val, 'form_id' => $display->frm_form_id, 'form_posts' => $form_posts, 'after_where' => $after_where, 'display' => $display, 'drafts' => $is_draft, 'use_ids' => $use_ids));
                 $entry_ids = FrmProAppHelper::filter_where($entry_ids, $filter_opts);
                 unset($filter_opts);
                 $after_where = true;
                 $continue = false;
                 if (empty($entry_ids)) {
                     break;
                 }
             } else {
                 if (in_array($where_opt, array('created_at', 'updated_at'))) {
                     if ($where_val == 'NOW') {
                         $where_val = current_time('mysql', 1);
                     }
                     if (strpos($display->frm_where_is[$where_key], 'LIKE') === false) {
                         $where_val = date('Y-m-d H:i:s', strtotime($where_val));
                         // If using less than or equal to, set the time to the end of the day
                         if ($display->frm_where_is[$where_key] == '<=') {
                             $where_val = str_replace('00:00:00', '23:59:59', $where_val);
                         }
                         // Convert date to GMT since that is the format in the DB
                         $where_val = get_gmt_from_date($where_val);
                     }
                     $where['it.' . sanitize_title($where_opt) . FrmDb::append_where_is($display->frm_where_is[$where_key])] = $where_val;
                     $continue = true;
                 } else {
                     if (in_array($where_opt, array('id', 'item_key', 'post_id', 'ip'))) {
                         $where['it.' . sanitize_title($where_opt) . FrmDb::append_where_is($display->frm_where_is[$where_key])] = $where_val;
                         // Update entry IDs if the entry ID filter is set to "equal to"
                         if ($where_opt == 'id' && in_array($display->frm_where_is[$where_key], array('=', ' in '))) {
                             $entry_ids = $where_val;
                         }
                         $continue = true;
                     }
                 }
             }
         }
         if (!$continue && empty($entry_ids)) {
             if ($display->frm_insert_loc == 'after') {
                 $content .= $empty_msg;
             } else {
                 if ($display->frm_insert_loc == 'before') {
                     $content = $empty_msg . $content;
                 } else {
                     if ($filter) {
                         $empty_msg = apply_filters('the_content', $empty_msg);
                     }
                     if ($post && $post->post_type == self::$post_type && in_the_loop()) {
                         $content = '';
                     }
                     $content .= $empty_msg;
                 }
             }
             return $content;
         }
     }
     if ($user_id && is_numeric($user_id) && !$uid_used) {
         $where['it.user_id'] = $user_id;
     }
     $s = FrmAppHelper::get_param('frm_search', false, 'get', 'sanitize_text_field');
     if ($s) {
         $new_ids = FrmProEntriesHelper::get_search_ids($s, $display->frm_form_id, array('is_draft' => $extra_atts['drafts']));
         if ($after_where && isset($entry_ids) && !empty($entry_ids)) {
             $entry_ids = array_intersect($new_ids, $entry_ids);
         } else {
             $entry_ids = $new_ids;
         }
         if (empty($entry_ids)) {
             if ($post->post_type == self::$post_type && in_the_loop()) {
                 $content = '';
             }
             return $content . ' ' . $empty_msg;
         }
     }
     if (isset($entry_ids) && !empty($entry_ids)) {
         $where['it.id'] = $entry_ids;
     }
     self::maybe_add_entry_query($entry_id, $where);
     if ($extra_atts['drafts'] != 'both') {
         $where['is_draft'] = $is_draft;
     }
     unset($is_draft);
     if ($show == 'one') {
         $limit = ' LIMIT 1';
     } else {
         self::maybe_add_cat_query($where);
     }
     if (!empty($limit) && is_numeric($limit)) {
         $display->frm_limit = (int) $limit;
     }
     if (is_numeric($display->frm_limit)) {
         $num_limit = (int) $display->frm_limit;
         $limit = ' LIMIT ' . $display->frm_limit;
     }
     if (!empty($order_by)) {
         $display->frm_order_by = explode(',', $order_by);
     }
     if (!empty($order)) {
         $display->frm_order = explode(',', $order);
         if (!isset($display->frm_order_by[0])) {
             $display->frm_order_by = FrmProAppHelper::reset_keys($display->frm_order_by);
         }
     }
     unset($order);
     if (!empty($page_size) && is_numeric($page_size)) {
         $display->frm_page_size = (int) $page_size;
     }
     // if limit is lower than page size, ignore the page size
     if (isset($num_limit) && $display->frm_page_size > $num_limit) {
         $display->frm_page_size = '';
     }
     $display_page_query = array('order_by_array' => $display->frm_order_by, 'order_array' => $display->frm_order, 'posts' => $form_posts, 'display' => $display);
     if (isset($display->frm_page_size) && is_numeric($display->frm_page_size)) {
         $page_param = $_GET && isset($_GET['frm-page-' . $display->ID]) ? 'frm-page-' . $display->ID : 'frm-page';
         $current_page = FrmAppHelper::simple_get($page_param, 'absint', 1);
         $record_count = FrmEntry::getRecordCount($where);
         if (isset($num_limit) && $record_count > (int) $num_limit) {
             $record_count = (int) $num_limit;
         }
         $page_count = FrmEntry::getPageCount($display->frm_page_size, $record_count);
         $entry_ids = FrmProEntry::get_view_page($current_page, $display->frm_page_size, $where, $display_page_query);
         $page_last_record = FrmAppHelper::get_last_record_num($record_count, $current_page, $display->frm_page_size);
         $page_first_record = FrmAppHelper::get_first_record_num($record_count, $current_page, $display->frm_page_size);
         if ($page_count > 1) {
             $page_param = 'frm-page-' . $display->ID;
             $pagination = FrmAppHelper::get_file_contents(FrmAppHelper::plugin_path() . '/pro/classes/views/displays/pagination.php', compact('current_page', 'record_count', 'page_count', 'page_last_record', 'page_first_record', 'page_param'));
         }
     } else {
         $display_page_query['limit'] = $limit;
         //Get all entries
         $entry_ids = FrmProEntry::get_view_results($where, $display_page_query);
     }
     $total_count = count($entry_ids);
     $sc_atts = array();
     if (isset($record_count)) {
         $sc_atts['record_count'] = $record_count;
     } else {
         $sc_atts['record_count'] = $total_count;
     }
     $display_content = '';
     if (isset($message)) {
         // if an entry was deleted above, show a message
         $display_content .= $message;
     }
     if ($show == 'all') {
         $display_content .= isset($display->frm_before_content) ? $display->frm_before_content : '';
     }
     add_filter('frm_before_display_content', 'FrmProDisplaysController::calendar_header', 10, 3);
     add_filter('frm_before_display_content', 'FrmProDisplaysController::filter_after_content', 10, 4);
     $display_content = apply_filters('frm_before_display_content', $display_content, $display, $show, array('total_count' => $total_count, 'record_count' => $sc_atts['record_count'], 'entry_ids' => $entry_ids));
     add_filter('frm_display_entries_content', 'FrmProDisplaysController::build_calendar', 10, 5);
     $filtered_content = apply_filters('frm_display_entries_content', $new_content, $entry_ids, $shortcodes, $display, $show, $sc_atts);
     if ($filtered_content != $new_content) {
         $display_content .= $filtered_content;
     } else {
         $odd = 'odd';
         $count = 0;
         if (!empty($entry_ids)) {
             $loop_entry_ids = $entry_ids;
             while ($next_set = array_splice($loop_entry_ids, 0, 30)) {
                 $entries = FrmEntry::getAll(array('id' => $next_set), ' ORDER BY FIELD(it.id,' . implode(',', $next_set) . ')', '', true, false);
                 foreach ($entries as $entry) {
                     $count++;
                     //TODO: use the count with conditionals
                     $display_content .= apply_filters('frm_display_entry_content', $new_content, $entry, $shortcodes, $display, $show, $odd, array('count' => $count, 'total_count' => $total_count, 'record_count' => $sc_atts['record_count'], 'pagination' => $pagination, 'entry_ids' => $entry_ids));
                     $odd = $odd == 'odd' ? 'even' : 'odd';
                     unset($entry);
                 }
                 unset($entries);
             }
             unset($loop_entry_ids, $count);
         } else {
             if ($post && $post->post_type == self::$post_type && in_the_loop()) {
                 $display_content = '';
             }
             if (!isset($message) || FrmAppHelper::get_param('frm_action', '', 'get', 'sanitize_title') != 'destroy') {
                 $display_content .= $empty_msg;
             }
         }
     }
     if (isset($message)) {
         unset($message);
     }
     if ($show == 'all' && isset($display->frm_after_content)) {
         add_filter('frm_after_content', 'FrmProDisplaysController::filter_after_content', 10, 4);
         $display_content .= apply_filters('frm_after_content', $display->frm_after_content, $display, $show, array('total_count' => $total_count, 'record_count' => $sc_atts['record_count'], 'entry_ids' => $entry_ids));
     }
     if (!isset($sc_atts)) {
         $sc_atts = array('record_count' => 0);
     }
     if (!isset($total_count)) {
         $total_count = 0;
     }
     $pagination = self::calendar_footer($pagination, $display, $show);
     $display_content .= apply_filters('frm_after_display_content', $pagination, $display, $show, array('total_count' => $total_count, 'record_count' => $sc_atts['record_count'], 'entry_ids' => $entry_ids));
     unset($sc_atts);
     $display_content = FrmProFieldsHelper::get_default_value($display_content, false, true, false);
     if ($display->frm_insert_loc == 'after') {
         $content .= $display_content;
     } else {
         if ($display->frm_insert_loc == 'before') {
             $content = $display_content . $content;
         } else {
             if ($filter) {
                 $display_content = apply_filters('the_content', $display_content);
             }
             $content = $display_content;
         }
     }
     // load the styling for css classes and pagination
     FrmStylesController::enqueue_style();
     return $content;
 }