/** * Get the default date format for a field based on the field ID and the time format setting * * @since 1.16.4 * @param string $date_format The Gravity Forms date format for the field. Default: "mdy" * @param int $field_id The ID of the field. Used to figure out full date/day/month/year * * @return string PHP date format for the date */ public static function date_display($value = '', $date_format = 'mdy', $field_id = 0) { // Let Gravity Forms figure out, based on the date format, what day/month/year values are. $parsed_date = GFCommon::parse_date($value, $date_format); // Are we displaying an input or the whole field? $field_input_id = gravityview_get_input_id_from_id($field_id); $date_field_output = ''; switch ($field_input_id) { case 1: $date_field_output = rgar($parsed_date, 'day'); break; case 2: $date_field_output = rgar($parsed_date, 'month'); break; case 3: $date_field_output = rgar($parsed_date, 'year'); break; } /** * @filter `gravityview_date_format` Whether to override the Gravity Forms date format with a PHP date format * @see https://codex.wordpress.org/Formatting_Date_and_Time * @param null|string Date Format (default: $field->dateFormat) */ $full_date_format = apply_filters('gravityview_date_format', $date_format); $full_date = GFCommon::date_display($value, $full_date_format); // If the field output is empty, use the full date. // Note: The output might be empty because $parsed_date didn't parse correctly. return '' === $date_field_output ? $full_date : $date_field_output; }
/** * get HTML for input and label for date field (as date picker) * @param array $field * @param string $value * @param integer $lead_id * @param integer $form_id * @return string */ protected function fieldDate($field, $value = "", $lead_id = 0, $form_id = 0) { $id = $field['id']; $sub_id = $field['sub_id']; $field_id = IS_ADMIN || $form_id == 0 ? "gfeway_{$id}_{$sub_id}" : "gfeway_{$form_id}_{$id}_{$sub_id}"; $form_id = IS_ADMIN && empty($form_id) ? rgget('id') : $form_id; $format = empty($field['dateFormat']) ? 'dmy' : esc_attr($field['dateFormat']); $size = rgar($field, 'size'); $disabled_text = IS_ADMIN && RG_CURRENT_VIEW != 'entry' ? 'disabled="disabled"' : ''; $class_suffix = RG_CURRENT_VIEW == 'entry' ? '_admin' : ''; $value = GFCommon::date_display($value, $format); $icon_class = $field['calendarIconType'] == 'none' ? 'datepicker_no_icon' : 'datepicker_with_icon'; $icon_url = empty($field['calendarIconUrl']) ? GFCommon::get_base_url() . '/images/calendar.png' : $field['calendarIconUrl']; $tabindex = GFCommon::get_tabindex(); $inputClass = array($size . $class_suffix, $format, $icon_class); $spanClass = array('gfeway_recurring_left', 'gfeway_recurring_date'); if (empty($field['hidden'])) { $inputClass[] = 'datepicker'; } else { $spanClass[] = 'gf_hidden'; } $dataMin = ''; if (!empty($field['dateMin'])) { $dataMin = sprintf('data-gfeway-minDate="%s"', esc_attr($field['dateMin'])); } $dataMax = ''; if (!empty($field['dateMax'])) { $dataMax = sprintf('data-gfeway-maxDate="%s"', esc_attr($field['dateMax'])); } $value = esc_attr($value); $spanClass = esc_attr(implode(' ', $spanClass)); $inputClass = esc_attr(implode(' ', $inputClass)); $inputName = sprintf('gfeway_%s[%s]', $id, $sub_id); $label = esc_html($field['label']); ob_start(); require GFEWAY_PLUGIN_ROOT . 'views/recurring-field-input-date.php'; $input = ob_get_clean(); return $input; }
public static function create_post($form, &$lead) { GFCommon::log_debug('GFFormsModel::create_post(): Starting.'); $has_post_field = false; foreach ($form['fields'] as $field) { $is_hidden = self::is_field_hidden($form, $field, array(), $lead); if (!$is_hidden && in_array($field->type, array('post_category', 'post_title', 'post_content', 'post_excerpt', 'post_tags', 'post_custom_field', 'post_image'))) { $has_post_field = true; break; } } //if this form does not have any post fields, don't create a post if (!$has_post_field) { GFCommon::log_debug("GFFormsModel::create_post(): Stopping. The form doesn't have any post fields."); return $lead; } //processing post fields GFCommon::log_debug('GFFormsModel::create_post(): Getting post fields.'); $post_data = self::get_post_fields($form, $lead); //allowing users to change post fields before post gets created $post_data = gf_apply_filters('gform_post_data', $form['id'], $post_data, $form, $lead); //adding default title if none of the required post fields are in the form (will make sure wp_insert_post() inserts the post) if (empty($post_data['post_title']) && empty($post_data['post_content']) && empty($post_data['post_excerpt'])) { $post_data['post_title'] = self::get_default_post_title(); } // remove original post status and save it for later $post_status = $post_data['post_status']; // replace original post status with 'draft' so other plugins know this post is not fully populated yet $post_data['post_status'] = 'draft'; // inserting post GFCommon::log_debug('GFFormsModel::create_post(): Inserting post via wp_insert_post().'); $post_id = wp_insert_post($post_data); GFCommon::log_debug("GFFormsModel::create_post(): Result from wp_insert_post(): {$post_id}."); //adding form id and entry id hidden custom fields add_post_meta($post_id, '_gform-form-id', $form['id']); add_post_meta($post_id, '_gform-entry-id', $lead['id']); //creating post images GFCommon::log_debug('GFFormsModel::create_post(): Creating post images.'); $post_images = array(); foreach ($post_data['images'] as $image) { $image_meta = array('post_excerpt' => $image['caption'], 'post_content' => $image['description']); //adding title only if it is not empty. It will default to the file name if it is not in the array if (!empty($image['title'])) { $image_meta['post_title'] = $image['title']; } if (!empty($image['url'])) { GFCommon::log_debug('GFFormsModel::create_post(): Adding image: ' . $image['url']); $media_id = self::media_handle_upload($image['url'], $post_id, $image_meta); if ($media_id) { //save media id for post body/title template variable replacement (below) $post_images[$image['field_id']] = $media_id; $lead[$image['field_id']] .= "|:|{$media_id}"; // set featured image $field = RGFormsModel::get_field($form, $image['field_id']); if ($field->postFeaturedImage) { set_post_thumbnail($post_id, $media_id); } } } } //adding custom fields GFCommon::log_debug('GFFormsModel::create_post(): Adding custom fields.'); foreach ($post_data['post_custom_fields'] as $meta_name => $meta_value) { if (!is_array($meta_value)) { $meta_value = array($meta_value); } $meta_index = 0; foreach ($meta_value as $value) { GFCommon::log_debug('GFFormsModel::create_post(): Getting custom field: ' . $meta_name); $custom_field = self::get_custom_field($form, $meta_name, $meta_index); //replacing template variables if template is enabled if ($custom_field && rgget('customFieldTemplateEnabled', $custom_field)) { //replacing post image variables GFCommon::log_debug('GFFormsModel::create_post(): Replacing post image variables.'); $value = GFCommon::replace_variables_post_image($custom_field['customFieldTemplate'], $post_images, $lead); //replacing all other variables $value = GFCommon::replace_variables($value, $form, $lead, false, false, false); // replace conditional shortcodes $value = do_shortcode($value); } switch (RGFormsModel::get_input_type($custom_field)) { case 'list': $value = maybe_unserialize($value); if (is_array($value)) { foreach ($value as $item) { if (is_array($item)) { $item = implode('|', $item); } if (!rgblank($item)) { add_post_meta($post_id, $meta_name, $item); } } } break; case 'multiselect': case 'checkbox': $value = explode(',', $value); if (is_array($value)) { foreach ($value as $item) { if (!rgblank($item)) { // add post meta and replace HTML symbol in $item with real comma add_post_meta($post_id, $meta_name, str_replace(',', ',', $item)); } } } break; case 'date': $value = GFCommon::date_display($value, rgar($custom_field, 'dateFormat')); if (!rgblank($value)) { add_post_meta($post_id, $meta_name, $value); } break; default: if (!rgblank($value)) { add_post_meta($post_id, $meta_name, $value); } break; } $meta_index++; } } $has_content_field = sizeof(self::get_fields_by_type($form, array('post_content'))) > 0; $has_title_field = sizeof(self::get_fields_by_type($form, array('post_title'))) > 0; $post = false; //if a post field was configured with a content or title template, process template if (rgar($form, 'postContentTemplateEnabled') && $has_content_field || rgar($form, 'postTitleTemplateEnabled') && $has_title_field) { GFCommon::log_debug('GFFormsModel::create_post(): Processing template.'); $post = get_post($post_id); if (rgar($form, 'postContentTemplateEnabled') && $has_content_field) { //replacing post image variables $post_content = GFCommon::replace_variables_post_image($form['postContentTemplate'], $post_images, $lead); //replacing all other variables $post_content = GFCommon::replace_variables($post_content, $form, $lead, false, false, false); //updating post content $post->post_content = $post_content; } if (rgar($form, 'postTitleTemplateEnabled') && $has_title_field) { //replacing post image variables $post_title = GFCommon::replace_variables_post_image($form['postTitleTemplate'], $post_images, $lead); //replacing all other variables $post_title = GFCommon::replace_variables($post_title, $form, $lead, false, false, false); // replace conditional shortcodes $post_title = do_shortcode($post_title); //updating post $post->post_title = $post_title; $post->post_name = $post_title; } } // update post status back to original status (if not draft) if ($post_status != 'draft') { $post = is_object($post) ? $post : get_post($post_id); $post->post_status = $post_status; } // if post has been modified since creation, save updates if (is_object($post)) { GFCommon::log_debug('GFFormsModel::create_post(): Updating post.'); wp_update_post($post); } //adding post format if (current_theme_supports('post-formats') && rgar($form, 'postFormat')) { $formats = get_theme_support('post-formats'); $post_format = rgar($form, 'postFormat'); if (is_array($formats)) { $formats = $formats[0]; if (in_array($post_format, $formats)) { set_post_format($post_id, $post_format); } else { if ('0' == $post_format) { set_post_format($post_id, false); } } } } //update post_id field if a post was created $lead['post_id'] = $post_id; GFCommon::log_debug('GFFormsModel::create_post(): Updating entry with post id.'); self::update_lead_property($lead['id'], 'post_id', $post_id); do_action('gform_after_create_post', $post_id); return $post_id; }
public function get_value_merge_tag($value, $input_id, $entry, $form, $modifier, $raw_value, $url_encode, $esc_html, $format, $nl2br) { $format_modifier = empty($modifier) ? $this->dateFormat : $modifier; return GFCommon::date_display($value, $format_modifier); }
public static function prepopulate_form($form, $config) { global $bp; $mapped_fields = array(); $meta = rgar($config, 'meta'); $user = wp_get_current_user(); foreach (array('username', 'lastname', 'firstname', 'email') as $meta_key) { $field_id = rgar($meta, $meta_key); if ($field_id) { $mapped_fields[(string) $field_id] = $user->get(self::convert_to_wp_meta_key($meta_key)); } } $custom_meta = rgars($config, 'meta/user_meta') ? rgars($config, 'meta/user_meta') : array(); foreach ($custom_meta as $meta_item) { if (rgar($meta_item, 'meta_value')) { $field_id = rgar($meta_item, 'meta_value'); $mapped_fields[(string) $field_id] = $user->get(rgar($meta_item, 'meta_name')); } } if (function_exists("xprofile_get_field_data")) { $buddypress_meta = rgars($config, 'meta/buddypress_meta') ? rgars($config, 'meta/buddypress_meta') : array(); foreach ($buddypress_meta as $meta_item) { if (rgar($meta_item, 'meta_value')) { $field_id = rgar($meta_item, 'meta_value'); $value = xprofile_get_field_data(rgar($meta_item, 'meta_name'), $user->ID); $mapped_fields[(string) $field_id] = is_array($value) ? array_map('html_entity_decode', $value) : html_entity_decode($value); } } } $mapped_fields = apply_filters('gform_user_registration_user_data_pre_populate', $mapped_fields, $form, $config); // get all fields for cheap check inside field loop $mapped_field_ids = array_map('intval', array_keys($mapped_fields)); foreach ($form['fields'] as &$field) { if (!in_array($field['id'], $mapped_field_ids)) { continue; } $value = false; switch (RGFormsModel::get_input_type($field)) { case 'fileupload': $value = rgar($mapped_fields, $field['id']); $path_info = pathinfo($value); // check if file has been "deleted" via form UI $upload_files = json_decode(rgpost('gform_uploaded_files'), ARRAY_A); $input_name = "input_{$field['id']}"; if (is_array($upload_files) && array_key_exists($input_name, $upload_files) && !$upload_files[$input_name]) { continue; } // if $uploaded_files array is not set for this form at all, init as array if (!isset(RGFormsModel::$uploaded_files[$form['id']])) { RGFormsModel::$uploaded_files[$form['id']] = array(); } // check if this field's key has been set in the $uploaded_files array, if not add this file (otherwise, a new image may have been uploaded so don't overwrite) if (!isset(RGFormsModel::$uploaded_files[$form['id']]["input_{$field['id']}"])) { RGFormsModel::$uploaded_files[$form['id']]["input_{$field['id']}"] = $path_info['basename']; } break; case 'checkbox': $value = rgar($mapped_fields, $field['id']); $cb_values = array(); if (is_array($value)) { $cb_values = $value; } else { $inputs = $field['inputs']; foreach ($inputs as &$input) { $cb_values[] = rgar($mapped_fields, (string) $input['id']); } $field['inputs'] = $inputs; } $value = implode(',', $cb_values); break; case 'list': $value = maybe_unserialize(rgar($mapped_fields, $field['id'])); $list_values = array(); if (is_array($value)) { foreach ($value as $vals) { if (!is_array($vals)) { $vals = array($vals); } $list_values = array_merge($list_values, array_values($vals)); } $value = $list_values; } break; case 'date': $value = GFCommon::date_display(rgar($mapped_fields, $field['id']), $field['dateFormat'], false); break; default: // handle complex fields $inputs = $field instanceof GF_Field ? $field->get_entry_inputs() : rgar($field, 'inputs'); if (is_array($inputs)) { foreach ($inputs as &$input) { $filter_name = self::prepopulate_input($input['id'], rgar($mapped_fields, (string) $input['id'])); $field['allowsPrepopulate'] = true; $input['name'] = $filter_name; } $field['inputs'] = $inputs; } else { $value = is_array(rgar($mapped_fields, $field['id'])) ? implode(',', rgar($mapped_fields, $field['id'])) : rgar($mapped_fields, $field['id']); } } if (rgblank($value)) { continue; } $value = self::maybe_get_category_id($field, $value); $filter_name = self::prepopulate_input($field['id'], $value); $field['allowsPrepopulate'] = true; $field['inputName'] = $filter_name; } return $form; }
public static function create_post($form, &$lead) { $has_post_field = false; foreach ($form["fields"] as $field) { $is_hidden = self::is_field_hidden($form, $field, array(), $lead); if (!$is_hidden && in_array($field["type"], array("post_category", "post_title", "post_content", "post_excerpt", "post_tags", "post_custom_field", "post_image"))) { $has_post_field = true; break; } } //if this form does not have any post fields, don't create a post if (!$has_post_field) { return $lead; } //processing post fields $post_data = self::get_post_fields($form, $lead); //allowing users to change post fields before post gets created $post_data = apply_filters("gform_post_data_{$form["id"]}", apply_filters("gform_post_data", $post_data, $form, $lead), $form, $lead); //adding default title if none of the required post fields are in the form (will make sure wp_insert_post() inserts the post) if (empty($post_data["post_title"]) && empty($post_data["post_content"]) && empty($post_data["post_excerpt"])) { $post_data["post_title"] = self::get_default_post_title(); } //inserting post if (GFCommon::is_bp_active()) { //disable buddy press action so save_post is not called because the post data is not yet complete at this point remove_action("save_post", "bp_blogs_record_post"); } $post_id = wp_insert_post($post_data); //adding form id and entry id hidden custom fields add_post_meta($post_id, "_gform-form-id", $form["id"]); add_post_meta($post_id, "_gform-entry-id", $lead["id"]); //creating post images $post_images = array(); foreach ($post_data["images"] as $image) { $image_meta = array("post_excerpt" => $image["caption"], "post_content" => $image["description"]); //adding title only if it is not empty. It will default to the file name if it is not in the array if (!empty($image["title"])) { $image_meta["post_title"] = $image["title"]; } if (!empty($image["url"])) { $media_id = self::media_handle_upload($image["url"], $post_id, $image_meta); if ($media_id) { //save media id for post body/title template variable replacement (below) $post_images[$image["field_id"]] = $media_id; $lead[$image["field_id"]] .= "|:|{$media_id}"; // set featured image $field = RGFormsModel::get_field($form, $image["field_id"]); if (rgar($field, 'postFeaturedImage')) { set_post_thumbnail($post_id, $media_id); } } } } //adding custom fields foreach ($post_data["post_custom_fields"] as $meta_name => $meta_value) { if (!is_array($meta_value)) { $meta_value = array($meta_value); } $meta_index = 0; foreach ($meta_value as $value) { $custom_field = self::get_custom_field($form, $meta_name, $meta_index); //replacing template variables if template is enabled if ($custom_field && rgget("customFieldTemplateEnabled", $custom_field)) { //replacing post image variables $value = GFCommon::replace_variables_post_image($custom_field["customFieldTemplate"], $post_images, $lead); //replacing all other variables $value = GFCommon::replace_variables($value, $form, $lead, false, false, false); // replace conditional shortcodes $value = do_shortcode($value); } switch (RGFormsModel::get_input_type($custom_field)) { case "list": $value = maybe_unserialize($value); if (is_array($value)) { foreach ($value as $item) { if (is_array($item)) { $item = implode("|", $item); } if (!rgblank($item)) { add_post_meta($post_id, $meta_name, $item); } } } break; case "multiselect": case "checkbox": $value = explode(",", $value); if (is_array($value)) { foreach ($value as $item) { if (!rgblank($item)) { add_post_meta($post_id, $meta_name, $item); } } } break; case "date": $value = GFCommon::date_display($value, rgar($custom_field, "dateFormat")); if (!rgblank($value)) { add_post_meta($post_id, $meta_name, $value); } break; default: if (!rgblank($value)) { add_post_meta($post_id, $meta_name, $value); } break; } $meta_index++; } } $has_content_field = sizeof(GFCommon::get_fields_by_type($form, array("post_content"))) > 0; $has_title_field = sizeof(GFCommon::get_fields_by_type($form, array("post_title"))) > 0; //if a post field was configured with a content or title template, process template if (rgar($form, "postContentTemplateEnabled") && $has_content_field || rgar($form, "postTitleTemplateEnabled") && $has_title_field) { $post = get_post($post_id); if ($form["postContentTemplateEnabled"] && $has_content_field) { //replacing post image variables $post_content = GFCommon::replace_variables_post_image($form["postContentTemplate"], $post_images, $lead); //replacing all other variables $post_content = GFCommon::replace_variables($post_content, $form, $lead, false, false, false); //updating post content $post->post_content = $post_content; } if ($form["postTitleTemplateEnabled"] && $has_title_field) { //replacing post image variables $post_title = GFCommon::replace_variables_post_image($form["postTitleTemplate"], $post_images, $lead); //replacing all other variables $post_title = GFCommon::replace_variables($post_title, $form, $lead, false, false, false); // replace conditional shortcodes $post_title = do_shortcode($post_title); //updating post $post->post_title = $post_title; $post->post_name = $post_title; } if (GFCommon::is_bp_active()) { //re-enable buddy press action for save_post since the post data is complete at this point add_action('save_post', 'bp_blogs_record_post', 10, 2); } wp_update_post($post); } //adding post format if (current_theme_supports('post-formats') && rgar($form, 'postFormat')) { $formats = get_theme_support('post-formats'); $post_format = rgar($form, 'postFormat'); if (is_array($formats)) { $formats = $formats[0]; if (in_array($post_format, $formats)) { set_post_format($post_id, $post_format); } else { if ('0' == $post_format) { set_post_format($post_id, false); } } } } //update post_id field if a post was created $lead["post_id"] = $post_id; self::update_lead($lead); return $post_id; }
public static function leads_page($form_id) { global $wpdb; //quit if version of wp is not supported if (!GFCommon::ensure_wp_version()) { return; } echo GFCommon::get_remote_message(); $action = RGForms::post("action"); $filter = rgget("filter"); $search = rgget("s"); $page_index = empty($_GET["paged"]) ? 0 : intval($_GET["paged"]) - 1; $star = $filter == "star" ? 1 : null; $read = $filter == "unread" ? 0 : null; $status = in_array($filter, array("trash", "spam")) ? $filter : "active"; $search_criteria["status"] = $status; if ($star) { $search_criteria["field_filters"][] = array("key" => "is_starred", "value" => (bool) $star); } if (!is_null($read)) { $search_criteria["field_filters"][] = array("key" => "is_read", "value" => (bool) $read); } $search_field_id = rgget("field_id"); $search_operator = rgget("operator"); if (isset($_GET["field_id"]) && $_GET["field_id"] !== '') { $key = $search_field_id; $val = rgget("s"); $strpos_row_key = strpos($search_field_id, "|"); if ($strpos_row_key !== false) { //multi-row likert $key_array = explode("|", $search_field_id); $key = $key_array[0]; $val = $key_array[1] . ":" . $val; } if ("entry_id" == $key) { $key = "id"; } $search_criteria["field_filters"][] = array("key" => $key, "operator" => rgempty("operator", $_GET) ? "is" : rgget("operator"), "value" => $val); } $update_message = ""; switch ($action) { case "delete": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $lead_id = $_POST["action_argument"]; if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { RGFormsModel::delete_lead($lead_id); $update_message = __("Entry deleted.", "gravityforms"); } else { $update_message = __("You don't have adequate permissions to delete entries.", "gravityforms"); } break; case "bulk": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"]; $select_all = rgpost("all_entries"); $leads = empty($select_all) ? $_POST["lead"] : GFFormsModel::search_lead_ids($form_id, $search_criteria); $entry_count = count($leads) > 1 ? sprintf(__("%d entries", "gravityforms"), count($leads)) : __("1 entry", "gravityforms"); switch ($bulk_action) { case "delete": if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { RGFormsModel::delete_leads($leads); $update_message = sprintf(__("%s deleted.", "gravityforms"), $entry_count); } else { $update_message = __("You don't have adequate permissions to delete entries.", "gravityforms"); } break; case "trash": RGFormsModel::update_leads_property($leads, "status", "trash"); $update_message = sprintf(__("%s moved to Trash.", "gravityforms"), $entry_count); break; case "restore": RGFormsModel::update_leads_property($leads, "status", "active"); $update_message = sprintf(__("%s restored from the Trash.", "gravityforms"), $entry_count); break; case "unspam": RGFormsModel::update_leads_property($leads, "status", "active"); $update_message = sprintf(__("%s restored from the spam.", "gravityforms"), $entry_count); break; case "spam": RGFormsModel::update_leads_property($leads, "status", "spam"); $update_message = sprintf(__("%s marked as spam.", "gravityforms"), $entry_count); break; case "mark_read": RGFormsModel::update_leads_property($leads, "is_read", 1); $update_message = sprintf(__("%s marked as read.", "gravityforms"), $entry_count); break; case "mark_unread": RGFormsModel::update_leads_property($leads, "is_read", 0); $update_message = sprintf(__("%s marked as unread.", "gravityforms"), $entry_count); break; case "add_star": RGFormsModel::update_leads_property($leads, "is_starred", 1); $update_message = sprintf(__("%s starred.", "gravityforms"), $entry_count); break; case "remove_star": RGFormsModel::update_leads_property($leads, "is_starred", 0); $update_message = sprintf(__("%s unstarred.", "gravityforms"), $entry_count); break; } break; case "change_columns": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $columns = GFCommon::json_decode(stripslashes($_POST["grid_columns"]), true); RGFormsModel::update_grid_column_meta($form_id, $columns); break; } if (rgpost("button_delete_permanently")) { if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { RGFormsModel::delete_leads_by_form($form_id, $filter); } } $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"]; $sort_direction = empty($_GET["dir"]) ? "DESC" : $_GET["dir"]; $form = RGFormsModel::get_form_meta($form_id); $sort_field_meta = RGFormsModel::get_field($form, $sort_field); $is_numeric = $sort_field_meta["type"] == "number"; $page_size = apply_filters("gform_entry_page_size", apply_filters("gform_entry_page_size_{$form_id}", 20, $form_id), $form_id); $first_item_index = $page_index * $page_size; if (!empty($sort_field)) { $sorting = array('key' => $_GET["sort"], 'direction' => $sort_direction, 'is_numeric' => $is_numeric); } else { $sorting = array(); } $paging = array('offset' => $first_item_index, 'page_size' => $page_size); $total_count = 0; $leads = GFAPI::get_entries($form_id, $search_criteria, $sorting, $paging, $total_count); $summary = RGFormsModel::get_form_counts($form_id); $active_lead_count = $summary["total"]; $unread_count = $summary["unread"]; $starred_count = $summary["starred"]; $spam_count = $summary["spam"]; $trash_count = $summary["trash"]; $columns = RGFormsModel::get_grid_columns($form_id, true); $search_qs = empty($search) ? "" : "&s=" . urlencode($search); $sort_qs = empty($sort_field) ? "" : "&sort={$sort_field}"; $dir_qs = empty($sort_field) ? "" : "&dir={$sort_direction}"; $star_qs = $star !== null ? "&star={$star}" : ""; $read_qs = $read !== null ? "&read={$read}" : ""; $filter_qs = "&filter=" . $filter; $search_field_id_qs = !isset($_GET["field_id"]) ? "" : "&field_id={$search_field_id}"; $search_operator_urlencoded = urlencode($search_operator); $search_operator_qs = empty($search_operator_urlencoded) ? "" : "&operator={$search_operator_urlencoded}"; $display_total = ceil($total_count / $page_size); $page_links = paginate_links(array('base' => admin_url("admin.php") . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs . $filter_qs . $search_field_id_qs . $search_operator_qs, 'format' => 'paged=%#%', 'prev_text' => __('«', 'gravityforms'), 'next_text' => __('»', 'gravityforms'), 'total' => $display_total, 'current' => $page_index + 1, 'show_all' => false)); wp_print_styles(array("thickbox")); $field_filters = GFCommon::get_field_filter_settings($form); $init_field_id = empty($search_field_id) ? 0 : $search_field_id; $init_field_operator = empty($search_operator) ? "contains" : $search_operator; $init_filter_vars = array("mode" => "off", "filters" => array(array("field" => $init_field_id, "operator" => $init_field_operator, "value" => $search))); ?> <script type="text/javascript"> var messageTimeout = false, gformFieldFilters = <?php echo json_encode($field_filters); ?> , gformInitFilter = <?php echo json_encode($init_filter_vars); ?> function ChangeColumns(columns){ jQuery("#action").val("change_columns"); jQuery("#grid_columns").val(jQuery.toJSON(columns)); tb_remove(); jQuery("#lead_form")[0].submit(); } function Search(sort_field_id, sort_direction, form_id, search, star, read, filter, field_id, operator){ var search_qs = search == "" ? "" : "&s=" + search; var star_qs = star == "" ? "" : "&star=" + star; var read_qs = read == "" ? "" : "&read=" + read; var filter_qs = filter == "" ? "" : "&filter=" + filter; var field_id_qs = field_id == "" ? "" : "&field_id=" + field_id; var operator_qs = operator == "" ? "" : "&operator=" + operator; var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs + filter_qs + field_id_qs + operator_qs; document.location = location; } function ToggleStar(img, lead_id, filter){ var is_starred = img.src.indexOf("star1.png") >=0 if(is_starred) img.src = img.src.replace("star1.png", "star0.png"); else img.src = img.src.replace("star0.png", "star1.png"); jQuery("#lead_row_" + lead_id).toggleClass("lead_starred"); //if viewing the starred entries, hide the row and adjust the paging counts if (filter == "star") { var title = jQuery("#lead_row_" + lead_id); title.css("display", "none"); UpdatePagingCounts(1); } UpdateCount("star_count", is_starred ? -1 : 1); UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1); } function ToggleRead(lead_id, filter){ var title = jQuery("#lead_row_" + lead_id); marking_read = title.hasClass("lead_unread"); jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline"); jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none"); jQuery("#is_unread_" + lead_id).css("display", marking_read ? "inline" : "none"); title.toggleClass("lead_unread"); //if viewing the unread entries, hide the row and adjust the paging counts if (filter == "unread") { title.css("display", "none"); UpdatePagingCounts(1); } UpdateCount("unread_count", marking_read ? -1 : 1); UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0); } function UpdateLeadProperty(lead_id, name, value){ var mysack = new sack("<?php echo admin_url("admin-ajax.php"); ?> " ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "rg_update_lead_property" ); mysack.setVar( "rg_update_lead_property", "<?php echo wp_create_nonce("rg_update_lead_property"); ?> " ); mysack.setVar( "lead_id", lead_id); mysack.setVar( "name", name); mysack.setVar( "value", value); mysack.onError = function() { alert('<?php echo esc_js(__("Ajax error while setting lead property", "gravityforms")); ?> ' )}; mysack.runAJAX(); return true; } function UpdateCount(element_id, change){ var element = jQuery("#" + element_id); var count = parseInt(element.html()) + change element.html(count + ""); } function UpdatePagingCounts(change){ //update paging header/footer Displaying # - # of #, use counts from header, no need to use footer since they are the same, just update footer paging with header info var paging_range_max_header = jQuery("#paging_range_max_header"); var paging_range_max_footer = jQuery("#paging_range_max_footer"); var range_change_max = parseInt(paging_range_max_header.html()) - change; var paging_total_header = jQuery("#paging_total_header"); var paging_total_footer = jQuery("#paging_total_footer"); var total_change = parseInt(paging_total_header.html()) - change; var paging_range_min_header = jQuery("#paging_range_min_header"); var paging_range_min_footer = jQuery("#paging_range_min_footer"); //if min and max are the same, this is the last entry item on the page, clear out the displaying # - # of # text if (parseInt(paging_range_min_header.html()) == parseInt(paging_range_max_header.html())) { var paging_header = jQuery("#paging_header"); paging_header.html(""); var paging_footer = jQuery("#paging_footer"); paging_footer.html(""); } else { paging_range_max_header.html(range_change_max + ""); paging_range_max_footer.html(range_change_max + ""); paging_total_header.html(total_change + ""); paging_total_footer.html(total_change + ""); } gformVars.countAllEntries = gformVars.countAllEntries - change; setSelectAllText(); } function DeleteLead(lead_id){ jQuery("#action").val("delete"); jQuery("#action_argument").val(lead_id); jQuery("#lead_form")[0].submit(); return true; } function handleBulkApply(actionElement){ var action = jQuery("#" + actionElement).val(); var defaultModalOptions = ''; var leadIds = getLeadIds(); if(leadIds.length == 0){ alert('<?php _e('Please select at least one entry.', 'gravityforms'); ?> '); return false; } switch(action){ case 'resend_notifications': resetResendNotificationsUI(); tb_show('<?php _e("Resend Notifications", "gravityforms"); ?> ', '#TB_inline?width=350&inlineId=notifications_modal_container', ''); return false; break; case 'print': resetPrintUI(); tb_show('<?php _e("Print Entries", "gravityforms"); ?> ', '#TB_inline?width=350&height=250&inlineId=print_modal_container', ''); return false; break; default: jQuery('#action').val('bulk'); } } function getLeadIds(){ var all = jQuery("#all_entries").val(); //compare string, the boolean isn't correct, even when casting to a boolean the 0 is set to true if(all == "1") return 0; var leads = jQuery(".check-column input[name='lead[]']:checked"); var leadIds = new Array(); jQuery(leads).each(function(i){ leadIds[i] = jQuery(leads[i]).val(); }); return leadIds; } function BulkResendNotifications(){ var selectedNotifications = new Array(); jQuery(".gform_notifications:checked").each(function(){ selectedNotifications.push(jQuery(this).val()); }); var leadIds = getLeadIds(); var sendTo = jQuery('#notification_override_email').val(); if(selectedNotifications.length <=0) { displayMessage("<?php _e("You must select at least one type of notification to resend.", "gravityforms"); ?> ", "error", "#notifications_container"); return; } jQuery('#please_wait_container').fadeIn(); jQuery.post(ajaxurl, { action : "gf_resend_notifications", gf_resend_notifications : '<?php echo wp_create_nonce('gf_resend_notifications'); ?> ', notifications: jQuery.toJSON(selectedNotifications), sendTo : sendTo, leadIds : leadIds, filter: '<?php echo esc_attr(rgget("filter")); ?> ', search: '<?php echo esc_attr(rgget("s")); ?> ', operator: '<?php echo esc_attr(rgget("operator")); ?> ', fieldId: '<?php echo esc_attr(rgget("field_id")); ?> ', formId : '<?php echo $form['id']; ?> ' }, function(response){ jQuery('#please_wait_container').hide(); if(response) { displayMessage(response, "error", "#notifications_container"); } else { var message = '<?php _e("Notifications for %s were resent successfully.", "gravityforms"); ?> '; var c = leadIds == 0 ? gformVars.countAllEntries : leadIds.length; displayMessage(message.replace('%s', c + ' ' + getPlural(c, '<?php _e('entry', 'gravityforms'); ?> ', '<?php _e('entries', 'gravityforms'); ?> ')), "updated", "#lead_form"); closeModal(true); } } ); } function resetResendNotificationsUI(){ jQuery('#notification_admin, #notification_user').attr('checked', false); jQuery('#notifications_container .message, #notifications_override_settings').hide(); } function BulkPrint(){ var leadIds = getLeadIds(); if(leadIds != 0) leadIds = leadIds.join(','); var leadsQS = '&lid=' + leadIds; var notesQS = jQuery('#gform_print_notes').is(':checked') ? '¬es=1' : ''; var pageBreakQS = jQuery('#gform_print_page_break').is(':checked') ? '&page_break=1' : ''; var filterQS = '&filter=<?php echo esc_attr(rgget("filter")); ?> '; var searchQS = '&s=<?php echo esc_attr(rgget("s")); ?> '; var searchFieldIdQS = '&field_id=<?php echo esc_attr(rgget("field_id")); ?> '; var searchOperatorQS = '&operator=<?php echo esc_attr(rgget("operator")); ?> '; var url = '<?php echo trailingslashit(site_url()); ?> ?gf_page=print-entry&fid=<?php echo $form['id']; ?> ' + leadsQS + notesQS + pageBreakQS + filterQS + searchQS + searchFieldIdQS + searchOperatorQS; window.open (url,'printwindow'); closeModal(true); hideMessage('#lead_form', false); } function resetPrintUI(){ jQuery('#print_options input[type="checkbox"]').attr('checked', false); } function displayMessage(message, messageClass, container){ hideMessage(container, true); var messageBox = jQuery('<div class="message ' + messageClass + '" style="display:none;"><p>' + message + '</p></div>'); jQuery(messageBox).prependTo(container).slideDown(); if(messageClass == 'updated') messageTimeout = setTimeout(function(){ hideMessage(container, false); }, 10000); } function hideMessage(container, messageQueued){ if(messageTimeout) clearTimeout(messageTimeout); var messageBox = jQuery(container).find('.message'); if(messageQueued) jQuery(messageBox).remove(); else jQuery(messageBox).slideUp(function(){ jQuery(this).remove(); }); } function closeModal(isSuccess) { if(isSuccess) jQuery('.check-column input[type="checkbox"]').attr('checked', false); tb_remove(); } function getPlural(count, singular, plural) { return count > 1 ? plural : singular; } function toggleNotificationOverride(isInit) { if(isInit) jQuery('#notification_override_email').val(''); if(jQuery(".gform_notifications:checked").length > 0 ) { jQuery('#notifications_override_settings').slideDown(); } else { jQuery('#notifications_override_settings').slideUp(function(){ jQuery('#notification_override_email').val(''); }); } } // Select All var gformStrings = { "allEntriesOnPageAreSelected" : "<?php printf(__("All %s{0}%s entries on this page are selected.", "gravityforms"), "<strong>", "</strong>"); ?> ", "selectAll" : "<?php printf(__("Select all %s{0}%s entries.", "gravityforms"), "<strong>", "</strong>"); ?> ", "allEntriesSelected" : "<?php printf(__("All %s{0}%s entries have been selected.", "gravityforms"), "<strong>", "</strong>"); ?> ", "clearSelection" : "<?php _e("Clear selection", "gravityforms"); ?> " } var gformVars = { "countAllEntries" : <?php echo intval($total_count); ?> , "perPage" : <?php echo intval($page_size); ?> } function setSelectAllText(){ var tr = getSelectAllText(); jQuery("#gform-select-all-message td").html(tr); } function getSelectAllText(){ var count; count = jQuery("#gf_entry_list tr:visible:not('#gform-select-all-message')").length; return gformStrings.allEntriesOnPageAreSelected.format(count) + " <a href='javascript:void(0)' onclick='selectAllEntriesOnAllPages();'>" + gformStrings.selectAll.format(gformVars.countAllEntries) + "</a>"; } function getSelectAllTr(){ var t = getSelectAllText(); var colspan = jQuery("#gf_entry_list").find("tr:first td").length + 1; return "<tr id='gform-select-all-message' style='display:none;background-color:lightyellow;text-align:center;'><td colspan='{0}'>{1}</td></tr>".format(colspan, t); } function toggleSelectAll(visible){ if(gformVars.countAllEntries <= gformVars.perPage){ jQuery('#gform-select-all-message').hide(); return; } if(visible) setSelectAllText(); jQuery('#gform-select-all-message').toggle(visible); } function clearSelectAllEntries(){ jQuery(".check-column input[type=checkbox]").prop('checked', false); clearSelectAllMessage(); } function clearSelectAllMessage(){ jQuery("#all_entries").val("0"); jQuery("#gform-select-all-message").hide(); jQuery("#gform-select-all-message td").html(''); } function selectAllEntriesOnAllPages (){ var trHtmlClearSelection; trHtmlClearSelection = gformStrings.allEntriesSelected.format(gformVars.countAllEntries) + " <a href='javascript:void(0);' onclick='clearSelectAllEntries();'>" + gformStrings.clearSelection + "</a>"; jQuery("#all_entries").val("1"); jQuery("#gform-select-all-message td").html(trHtmlClearSelection); } function initSelectAllEntries(){ if(gformVars.countAllEntries > gformVars.perPage){ var tr = getSelectAllTr(); jQuery("#gf_entry_list").prepend(tr); jQuery(".headercb").click(function(){ toggleSelectAll(jQuery(this).prop('checked')); }); jQuery("#gf_entry_list .check-column input[type=checkbox]").click(function(){ clearSelectAllMessage(); }) } } String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }; // end Select All jQuery(document).ready(function(){ var action = '<?php echo $action; ?> '; var message = '<?php echo $update_message; ?> '; if(action && message) displayMessage(message, 'updated', '#lead_form'); var list = jQuery("#gf_entry_list").wpList( { alt: '<?php echo esc_js(__('Entry List', 'gravityforms')); ?> '} ); list.bind('wpListDelEnd', function(e, s, list){ var currentStatus = "<?php echo $filter == "trash" || $filter == "spam" ? $filter : "active"; ?> "; var filter = "<?php echo $filter; ?> "; var movingTo = "active"; if(s.data.status == "trash") movingTo = "trash"; else if(s.data.status == "spam") movingTo = "spam"; else if(s.data.status == "delete") movingTo = "delete"; var id = s.data.entry; var title = jQuery("#lead_row_" + id); var isUnread = title.hasClass("lead_unread"); var isStarred = title.hasClass("lead_starred"); if(movingTo != "delete"){ //Updating All count var allCount = currentStatus == "active" ? -1 : 1; UpdateCount("all_count", allCount); //Updating Unread count if(isUnread){ var unreadCount = currentStatus == "active" ? -1 : 1; UpdateCount("unread_count", unreadCount); } //Updating Starred count if(isStarred){ var starCount = currentStatus == "active" ? -1 : 1; UpdateCount("star_count", starCount); } } //Updating Spam count if(currentStatus == "spam" || movingTo == "spam"){ var spamCount = movingTo == "spam" ? 1 : -1; UpdateCount("spam_count", spamCount); //adjust paging counts if (filter == "spam") { UpdatePagingCounts(1); } else { UpdatePagingCounts(spamCount); } } //Updating trash count if(currentStatus == "trash" || movingTo == "trash"){ var trashCount = movingTo == "trash" ? 1 : -1; UpdateCount("trash_count", trashCount); //adjust paging counts if (filter == "trash") { UpdatePagingCounts(1); } else { UpdatePagingCounts(trashCount); } } }); initSelectAllEntries(); jQuery('#entry_filters').gfFilterUI(gformFieldFilters, gformInitFilter, false); jQuery("#entry_filters").on("keypress", ".gform-filter-value", (function(event){ if(event.keyCode == 13){ Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , jQuery('.gform-filter-value').val(), '<?php echo $star; ?> ', '<?php echo $read; ?> ', '<?php echo $filter; ?> ', jQuery('.gform-filter-field').val(), jQuery('.gform-filter-operator').val()); event.preventDefault(); } })); }); </script> <link rel="stylesheet" href="<?php echo GFCommon::get_base_url(); ?> /css/admin.css" type="text/css" /> <style> /*#TB_window { height: 400px !important; } #TB_ajaxContent[style] { height: 370px !important; }*/ .lead_unread a, .lead_unread td{font-weight: bold;} .lead_spam_trash a, .lead_spam_trash td{font-weight:normal;} .row-actions a { font-weight:normal;} .entry_nowrap{ overflow:hidden; white-space:nowrap; } .message { margin: 15px 0 0 !important; } .gform-filter-operator{width:100px} </style> <div class="wrap <?php echo GFCommon::get_browser_class(); ?> "> <h2 class="gf_admin_page_title"><span><?php _e("Entries", "gravityforms"); ?> </span><span class="gf_admin_page_subtitle"><span class="gf_admin_page_formid">ID: <?php echo $form['id']; ?> </span><span class="gf_admin_page_formname"><?php _e("Form Name", "gravityforms"); ?> : <?php echo $form['title']; ?> </span></span></h2> <?php RGForms::top_toolbar(); ?> <form id="lead_form" method="post"> <?php wp_nonce_field('gforms_entry_list', 'gforms_entry_list'); ?> <input type="hidden" value="" name="grid_columns" id="grid_columns" /> <input type="hidden" value="" name="action" id="action" /> <input type="hidden" value="" name="action_argument" id="action_argument" /> <input type="hidden" value="" name="all_entries" id="all_entries" /> <ul class="subsubsub"> <li><a class="<?php echo empty($filter) ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> "><?php _e("All", "gravityforms"); ?> <span class="count">(<span id="all_count"><?php echo $active_lead_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $read !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=unread"><?php _e("Unread", "gravityforms"); ?> <span class="count">(<span id="unread_count"><?php echo $unread_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $star !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=star"><?php _e("Starred", "gravityforms"); ?> <span class="count">(<span id="star_count"><?php echo $starred_count; ?> </span>)</span></a> | </li> <?php if (GFCommon::akismet_enabled($form_id)) { ?> <li><a class="<?php echo $filter == "spam" ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=spam"><?php _e("Spam", "gravityforms"); ?> <span class="count">(<span id="spam_count"><?php echo $spam_count; ?> </span>)</span></a> | </li> <?php } ?> <li><a class="<?php echo $filter == "trash" ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=trash"><?php _e("Trash", "gravityforms"); ?> <span class="count">(<span id="trash_count"><?php echo $trash_count; ?> </span>)</span></a></li> </ul> <div style="margin-top:12px;float:right;"> <a style="float:right;" class="button" id="lead_search_button" href="javascript:Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , jQuery('.gform-filter-value').val(), '<?php echo $star; ?> ', '<?php echo $read; ?> ', '<?php echo $filter; ?> ', jQuery('.gform-filter-field').val(), jQuery('.gform-filter-operator').val());"><?php _e("Search", "gravityforms"); ?> </a> <div id="entry_filters" style="float:right"></div> </div> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action" id="bulk_action"> <option value=''><?php _e(" Bulk action ", "gravityforms"); ?> </option> <?php switch ($filter) { case "trash": ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; case "spam": ?> <option value='unspam'><?php _e("Not Spam", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; default: ?> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> <option value='resend_notifications'><?php _e("Resend Notifications", "gravityforms"); ?> </option> <option value='print'><?php _e("Print", "gravityforms"); ?> </option> <?php if (GFCommon::akismet_enabled($form_id)) { ?> <option value='spam'><?php _e("Spam", "gravityforms"); ?> </option> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='trash'><?php _e("Trash", "gravityforms"); ?> </option> <?php } } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); if (in_array($filter, array("trash", "spam"))) { $message = $filter == "trash" ? __("WARNING! This operation cannot be undone. Empty trash? \\'Ok\\' to empty trash. \\'Cancel\\' to abort.", "gravityforms") : __("WARNING! This operation cannot be undone. Permanently delete all spam? \\'Ok\\' to delete. \\'Cancel\\' to abort.", "gravityforms"); $button_label = $filter == "trash" ? __("Empty Trash", "gravityforms") : __("Delete All Spam", "gravityforms"); ?> <input type="submit" class="button" name="button_delete_permanently" value="<?php echo $button_label; ?> " onclick="return confirm('<?php echo esc_attr($message); ?> ');" /> <?php } ?> <div id="notifications_modal_container" style="display:none;"> <div id="notifications_container"> <div id="post_tag" class="tagsdiv"> <div id="resend_notifications_options"> <?php if (!is_array($form["notifications"]) || count($form["notifications"]) <= 0) { ?> <p class="description"><?php _e("You cannot resend notifications for these entries because this form does not currently have any notifications configured.", "gravityforms"); ?> </p> <a href="<?php echo admin_url("admin.php?page=gf_edit_forms&view=settings&subview=notification&id={$form["id"]}"); ?> " class="button"><?php _e("Configure Notifications", "gravityforms"); ?> </a> <?php } else { ?> <p class="description"><?php _e("Specify which notifications you would like to resend for the selected entries.", "gravityforms"); ?> </p> <?php foreach ($form["notifications"] as $notification) { ?> <input type="checkbox" class="gform_notifications" value="<?php echo $notification["id"]; ?> " id="notification_<?php echo $notification["id"]; ?> " onclick="toggleNotificationOverride();" /> <label for="notification_<?php echo $notification["id"]; ?> "><?php echo $notification["name"]; ?> </label> <br /><br /> <?php } ?> <div id="notifications_override_settings" style="display:none;"> <p class="description" style="padding-top:0; margin-top:0;">You may override the default notification settings by entering a comma delimited list of emails to which the selected notifications should be sent.</p> <label for="notification_override_email"><?php _e("Send To", "gravityforms"); ?> <?php gform_tooltip("notification_override_email"); ?> </label><br /> <input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" /><br /><br /> </div> <input type="button" name="notification_resend" id="notification_resend" value="<?php _e("Resend Notifications", "gravityforms"); ?> " class="button" style="" onclick="BulkResendNotifications();"/> <span id="please_wait_container" style="display:none; margin-left: 5px;"> <img src="<?php echo GFCommon::get_base_url(); ?> /images/loading.gif"> <?php _e("Resending...", "gravityforms"); ?> </span> <?php } ?> </div> <div id="resend_notifications_close" style="display:none;margin:10px 0 0;"> <input type="button" name="resend_notifications_close_button" value="<?php _e("Close Window", "gravityforms"); ?> " class="button" style="" onclick="closeModal(true);"/> </div> </div> </div> </div> <!-- / Resend Notifications --> <div id="print_modal_container" style="display:none;"> <div id="print_container"> <div class="tagsdiv"> <div id="print_options"> <p class="description"><?php _e("Print all of the selected entries at once.", "gravityforms"); ?> </p> <?php if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) { ?> <input type="checkbox" name="gform_print_notes" value="print_notes" checked="checked" id="gform_print_notes" /> <label for="gform_print_notes"><?php _e("Include notes", "gravityforms"); ?> </label> <br /><br /> <?php } ?> <input type="checkbox" name="gform_print_page_break" value="print_notes" checked="checked" id="gform_print_page_break" /> <label for="gform_print_page_break"><?php _e("Add page break between entries", "gravityforms"); ?> </label> <br /><br /> <input type="button" value="<?php _e("Print", "gravityforms"); ?> " class="button" onclick="BulkPrint();" /> </div> </div> </div> </div> <!-- / Print --> </div> <?php echo self::display_paging_links("header", $page_links, $first_item_index, $page_size, $total_count); ?> <div class="clear"></div> </div> <table class="widefat fixed" cellspacing="0"> <thead> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column"><input type="checkbox" class="headercb" /></th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" > </th> <?php } foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ', '<?php echo $filter; ?> ', '<?php echo $search_field_id; ?> ', '<?php echo $search_operator; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" align="right" width="50"> <a title="<?php _e("click to select columns to display", "gravityforms"); ?> " href="<?php echo trailingslashit(site_url(null, "admin")); ?> ?gf_page=select_columns&id=<?php echo $form_id; ?> &TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><i class="fa fa-cog"></i></a> </th> </tr> </thead> <tfoot> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" > </th> <?php } foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ', '<?php echo $filter; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" style="width:15px;"> <a title="<?php _e("click to select columns to display", "gravityforms"); ?> " href="<?php echo trailingslashit(site_url()); ?> ?gf_page=select_columns&id=<?php echo $form_id; ?> &TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><i class=fa-cog"></i></a> </th> </tr> </tfoot> <tbody data-wp-lists="list:gf_entry" class="user-list" id="gf_entry_list"> <?php if (sizeof($leads) > 0) { $field_ids = array_keys($columns); $gf_entry_locking = new GFEntryLocking(); $alternate_row = false; foreach ($leads as $position => $lead) { $position = $page_size * $page_index + $position; ?> <tr id="lead_row_<?php echo $lead["id"]; ?> " class='author-self status-inherit <?php echo $lead["is_read"] ? "" : "lead_unread"; ?> <?php echo $lead["is_starred"] ? "lead_starred" : ""; ?> <?php echo in_array($filter, array("trash", "spam")) ? "lead_spam_trash" : ""; ?> <?php $gf_entry_locking->list_row_class($lead["id"]); ?> <?php echo ($alternate_row = !$alternate_row) ? 'alternate' : ''; ?> ' valign="top" data-id="<?php echo esc_attr($lead["id"]); ?> "> <th scope="row" class="check-column"> <input type="checkbox" name="lead[]" value="<?php echo $lead["id"]; ?> " /> <?php $gf_entry_locking->lock_indicator(); ?> </th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <td > <img id="star_image_<?php echo $lead["id"]; ?> " src="<?php echo GFCommon::get_base_url(); ?> /images/star<?php echo intval($lead["is_starred"]); ?> .png" onclick="ToggleStar(this, <?php echo $lead["id"] . ",'" . $filter . "'"; ?> );" /> </td> <?php } $is_first_column = true; $nowrap_class = "entry_nowrap"; foreach ($field_ids as $field_id) { /* maybe move to function */ $field = RGFormsModel::get_field($form, $field_id); $value = rgar($lead, $field_id); if ($field['type'] == 'post_category') { $value = GFCommon::prepare_post_category_value($value, $field, 'entry_list'); } //filtering lead value $value = apply_filters("gform_get_field_value", $value, $lead, $field); $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"]; switch ($input_type) { case "checkbox": $value = ""; //if this is the main checkbox field (not an input), display a comma separated list of all inputs if (absint($field_id) == $field_id) { $lead_field_keys = array_keys($lead); $items = array(); foreach ($lead_field_keys as $input_id) { if (is_numeric($input_id) && absint($input_id) == $field_id) { $items[] = GFCommon::selection_display(rgar($lead, $input_id), null, $lead["currency"], false); } } $value = GFCommon::implode_non_blank(", ", $items); // special case for post category checkbox fields if ($field['type'] == 'post_category') { $value = GFCommon::prepare_post_category_value($value, $field, 'entry_list'); } } else { $value = ""; if (GFFormsModel::is_checkbox_checked($field_id, $columns[$field_id]["label"], $lead, $form)) { $value = "<i class='fa fa-check gf_valid'></i>"; } } break; case "post_image": list($url, $title, $caption, $description) = rgexplode("|:|", $value, 4); if (!empty($url)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($url); $value = "<a href='" . esc_attr($url) . "' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "fileupload": if (rgar($field, "multipleFiles")) { $uploaded_files_arr = empty($value) ? array() : json_decode($value, true); $file_count = count($uploaded_files_arr); if ($file_count > 1) { $value = empty($uploaded_files_arr) ? "" : sprintf(__("%d files", "gravityforms"), count($uploaded_files_arr)); break; } elseif ($file_count == 1) { $value = $uploaded_files_arr[0]; } } $file_path = $value; if (!empty($file_path)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($file_path); $file_path = esc_attr($file_path); $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "source_url": $value = "<a href='" . esc_attr($lead["source_url"]) . "' target='_blank' alt='" . esc_attr($lead["source_url"]) . "' title='" . esc_attr($lead["source_url"]) . "'>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>"; break; case "textarea": case "post_content": case "post_excerpt": $value = esc_html($value); break; case "date_created": case "payment_date": $value = GFCommon::format_date($value, false); break; case "date": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::date_display($value, rgar($field, "dateFormat")); break; case "radio": case "select": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::selection_display($value, $field, $lead["currency"]); break; case "number": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::format_number($value, rgar($field, "numberFormat")); break; case "total": case "payment_amount": $value = GFCommon::to_money($value, $lead["currency"]); break; case "created_by": if (!empty($value)) { $userdata = get_userdata($value); if (!empty($userdata)) { $value = $userdata->user_login; } } break; case "multiselect": // add space after comma-delimited values $value = implode(', ', explode(',', $value)); break; default: $value = esc_html($value); } $value = apply_filters("gform_entries_field_value", $value, $form_id, $field_id, $lead); /* ^ maybe move to function */ $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead["id"]}{$search_qs}{$sort_qs}{$dir_qs}{$filter_qs}&paged=" . ($page_index + 1); if ($is_first_column) { ?> <td class="column-title" > <a href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs; ?> &paged=<?php echo $page_index + 1; ?> &pos=<?php echo $position; ?> &field_id=<?php echo $search_field_id; ?> &operator=<?php echo $search_operator; ?> "><?php echo $value; ?> </a> <?php $gf_entry_locking->lock_info($lead["id"]); ?> <div class="row-actions"> <?php switch ($filter) { case "trash": ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs; ?> &paged=<?php echo $page_index + 1; ?> &pos=<?php echo $position; ?> &field_id=<?php echo $search_field_id; ?> &operator=<?php echo $search_operator; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="edit"> <a data-wp-lists='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=active&entry=<?php echo $lead["id"]; ?> ' title="<?php echo _e("Restore this entry", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Restore", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="delete"> <?php $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '" href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>'; echo apply_filters("gform_delete_entry_link", $delete_link); ?> </span> <?php } break; case "spam": ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs; ?> &paged=<?php echo $page_index + 1; ?> &pos=<?php echo $position; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="unspam"> <a data-wp-lists='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=unspam&entry=<?php echo $lead["id"]; ?> ' title="<?php echo _e("Mark this entry as not spam", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Not Spam", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="delete"> <?php $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '" href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>'; echo apply_filters("gform_delete_entry_link", $delete_link); ?> </span> <?php } break; default: ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs; ?> &paged=<?php echo $page_index + 1; ?> &pos=<?php echo $position; ?> &field_id=<?php echo $search_field_id; ?> &operator=<?php echo $search_operator; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="edit"> <a id="mark_read_<?php echo $lead["id"]; ?> " title="Mark this entry as read" href="javascript:ToggleRead(<?php echo $lead["id"] . ",'" . $filter . "'"; ?> );" style="display:<?php echo $lead["is_read"] ? "none" : "inline"; ?> ;"><?php _e("Mark read", "gravityforms"); ?> </a><a id="mark_unread_<?php echo $lead["id"]; ?> " title="<?php _e("Mark this entry as unread", "gravityforms"); ?> " href="javascript:ToggleRead(<?php echo $lead["id"] . ",'" . $filter . "'"; ?> );" style="display:<?php echo $lead["is_read"] ? "inline" : "none"; ?> ;"><?php _e("Mark unread", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") || GFCommon::akismet_enabled($form_id) ? "|" : ""; ?> </span> <?php if (GFCommon::akismet_enabled($form_id)) { ?> <span class="spam"> <a data-wp-lists='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=spam&entry=<?php echo $lead["id"]; ?> ' title="<?php _e("Mark this entry as spam", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Spam", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="trash"> <a data-wp-lists='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=trash&entry=<?php echo $lead["id"]; ?> ' title="<?php _e("Move this entry to the trash", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Trash", "gravityforms"); ?> </a> </span> <?php } break; } do_action("gform_entries_first_column_actions", $form_id, $field_id, $value, $lead, $query_string); ?> </div> <?php do_action("gform_entries_first_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } else { ?> <td class="<?php echo $nowrap_class; ?> "> <?php echo apply_filters("gform_entries_column_filter", $value, $form_id, $field_id, $lead, $query_string); ?> <?php do_action("gform_entries_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } $is_first_column = false; } ?> <td> </td> </tr> <?php } } else { $column_count = sizeof($columns) + 3; switch ($filter) { case "unread": $message = isset($_GET["field_id"]) ? __("This form does not have any unread entries matching the search criteria.", "gravityforms") : __("This form does not have any unread entries.", "gravityforms"); break; case "star": $message = isset($_GET["field_id"]) ? __("This form does not have any starred entries matching the search criteria.", "gravityforms") : __("This form does not have any starred entries.", "gravityforms"); break; case "spam": $message = __("This form does not have any spam.", "gravityforms"); $column_count = sizeof($columns) + 2; break; case "trash": $message = isset($_GET["field_id"]) ? __("This form does not have any entries in the trash matching the search criteria.", "gravityforms") : __("This form does not have any entries in the trash.", "gravityforms"); $column_count = sizeof($columns) + 2; break; default: $message = isset($_GET["field_id"]) ? __("This form does not have any entries matching the search criteria.", "gravityforms") : __("This form does not have any entries yet.", "gravityforms"); } ?> <tr> <td colspan="<?php echo $column_count; ?> " style="padding:20px;"><?php echo $message; ?> </td> </tr> <?php } ?> </tbody> </table> <div class="clear"></div> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action2"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action2" id="bulk_action2"> <option value=''><?php _e(" Bulk action ", "gravityforms"); ?> </option> <?php switch ($filter) { case "trash": ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; case "spam": ?> <option value='unspam'><?php _e("Not Spam", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; default: ?> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> <option value='resend_notifications'><?php _e("Resend Notifications", "gravityforms"); ?> </option> <option value='print'><?php _e("Print Entries", "gravityforms"); ?> </option> <?php if (GFCommon::akismet_enabled($form_id)) { ?> <option value='spam'><?php _e("Spam", "gravityforms"); ?> </option> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='trash'><?php _e("Move to Trash", "gravityforms"); ?> </option> <?php } } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action2\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); ?> </div> <?php echo self::display_paging_links("footer", $page_links, $first_item_index, $page_size, $total_count); ?> <div class="clear"></div> </div> </form> </div> <?php }
public static function get_lead_field_display($field, $value, $currency = "", $use_text = false, $format = "html", $media = "screen") { if ($field['type'] == 'post_category') { $value = self::prepare_post_category_value($value, $field); } switch (RGFormsModel::get_input_type($field)) { case "name": if (is_array($value)) { $prefix = trim(rgget($field["id"] . ".2", $value)); $first = trim(rgget($field["id"] . ".3", $value)); $last = trim(rgget($field["id"] . ".6", $value)); $suffix = trim(rgget($field["id"] . ".8", $value)); $name = $prefix; $name .= !empty($name) && !empty($first) ? " {$first}" : $first; $name .= !empty($name) && !empty($last) ? " {$last}" : $last; $name .= !empty($name) && !empty($suffix) ? " {$suffix}" : $suffix; return $name; } else { return $value; } break; case "creditcard": if (is_array($value)) { $card_number = trim(rgget($field["id"] . ".1", $value)); $card_type = trim(rgget($field["id"] . ".4", $value)); $separator = $format == "html" ? "<br/>" : "\n"; return empty($card_number) ? "" : $card_type . $separator . $card_number; } else { return ""; } break; case "address": if (is_array($value)) { $street_value = trim(rgget($field["id"] . ".1", $value)); $street2_value = trim(rgget($field["id"] . ".2", $value)); $city_value = trim(rgget($field["id"] . ".3", $value)); $state_value = trim(rgget($field["id"] . ".4", $value)); $zip_value = trim(rgget($field["id"] . ".5", $value)); $country_value = trim(rgget($field["id"] . ".6", $value)); $line_break = $format == "html" ? "<br />" : "\n"; $address_display_format = apply_filters("gform_address_display_format", "default"); if ($address_display_format == "zip_before_city") { /* Sample: 3333 Some Street suite 16 2344 City, State Country */ $addr_ary = array(); $addr_ary[] = $street_value; if (!empty($street2_value)) { $addr_ary[] = $street2_value; } $zip_line = trim($zip_value . " " . $city_value); $zip_line .= !empty($zip_line) && !empty($state_value) ? ", {$state_value}" : $state_value; $zip_line = trim($zip_line); if (!empty($zip_line)) { $addr_ary[] = $zip_line; } if (!empty($country_value)) { $addr_ary[] = $country_value; } $address = implode("<br />", $addr_ary); } else { $address = $street_value; $address .= !empty($address) && !empty($street2_value) ? $line_break . $street2_value : $street2_value; $address .= !empty($address) && (!empty($city_value) || !empty($state_value)) ? $line_break . $city_value : $city_value; $address .= !empty($address) && !empty($city_value) && !empty($state_value) ? ", {$state_value}" : $state_value; $address .= !empty($address) && !empty($zip_value) ? " {$zip_value}" : $zip_value; $address .= !empty($address) && !empty($country_value) ? $line_break . $country_value : $country_value; } //adding map link if (!empty($address) && $format == "html") { $address_qs = str_replace($line_break, " ", $address); //replacing <br/> and \n with spaces $address_qs = urlencode($address_qs); $address .= "<br/><a href='http://maps.google.com/maps?q={$address_qs}' target='_blank' class='map-it-link'>Map It</a>"; } return $address; } else { return ""; } break; case "email": return GFCommon::is_valid_email($value) && $format == "html" ? "<a href='mailto:{$value}'>{$value}</a>" : $value; break; case "website": return GFCommon::is_valid_url($value) && $format == "html" ? "<a href='{$value}' target='_blank'>{$value}</a>" : $value; break; case "checkbox": if (is_array($value)) { $items = ''; foreach ($value as $key => $item) { if (!empty($item)) { switch ($format) { case "text": $items .= GFCommon::selection_display($item, $field, $currency, $use_text) . ", "; break; default: $items .= "<li>" . GFCommon::selection_display($item, $field, $currency, $use_text) . "</li>"; break; } } } if (empty($items)) { return ""; } else { if ($format == "text") { return substr($items, 0, strlen($items) - 2); //removing last comma } else { return "<ul class='bulleted'>{$items}</ul>"; } } } else { return $value; } break; case "post_image": $ary = explode("|:|", $value); $url = count($ary) > 0 ? $ary[0] : ""; $title = count($ary) > 1 ? $ary[1] : ""; $caption = count($ary) > 2 ? $ary[2] : ""; $description = count($ary) > 3 ? $ary[3] : ""; if (!empty($url)) { $url = str_replace(" ", "%20", $url); switch ($format) { case "text": $value = $url; $value .= !empty($title) ? "\n\n" . $field["label"] . " (" . __("Title", "gravityforms") . "): " . $title : ""; $value .= !empty($caption) ? "\n\n" . $field["label"] . " (" . __("Caption", "gravityforms") . "): " . $caption : ""; $value .= !empty($description) ? "\n\n" . $field["label"] . " (" . __("Description", "gravityforms") . "): " . $description : ""; break; default: $value = "<a href='{$url}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$url}' width='100' /></a>"; $value .= !empty($title) ? "<div>Title: {$title}</div>" : ""; $value .= !empty($caption) ? "<div>Caption: {$caption}</div>" : ""; $value .= !empty($description) ? "<div>Description: {$description}</div>" : ""; break; } } return $value; case "fileupload": $file_path = $value; if (!empty($file_path)) { $info = pathinfo($file_path); $file_path = esc_attr(str_replace(" ", "%20", $file_path)); $value = $format == "text" ? $file_path : "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'>" . $info["basename"] . "</a>"; } return $value; break; case "date": return GFCommon::date_display($value, rgar($field, "dateFormat")); break; case "radio": case "select": return GFCommon::selection_display($value, $field, $currency, $use_text); break; case "multiselect": if (empty($value) || $format == "text") { return $value; } $value = explode(",", $value); $items = ''; foreach ($value as $item) { $items .= "<li>" . GFCommon::selection_display($item, $field, $currency, $use_text) . "</li>"; } return "<ul class='bulleted'>{$items}</ul>"; break; case "calculation": case "singleproduct": if (is_array($value)) { $product_name = trim($value[$field["id"] . ".1"]); $price = trim($value[$field["id"] . ".2"]); $quantity = trim($value[$field["id"] . ".3"]); $product = $product_name . ", " . __("Qty: ", "gravityforms") . $quantity . ", " . __("Price: ", "gravityforms") . $price; return $product; } else { return ""; } break; case "number": return GFCommon::format_number($value, rgar($field, "numberFormat")); break; case "singleshipping": case "donation": case "total": case "price": return GFCommon::to_money($value, $currency); case "list": if (empty($value)) { return ""; } $value = unserialize($value); $has_columns = is_array($value[0]); if (!$has_columns) { $items = ''; foreach ($value as $key => $item) { if (!empty($item)) { switch ($format) { case "text": $items .= $item . ", "; break; case "url": $items .= $item . ","; break; default: if ($media == "email") { $items .= "<li>{$item}</li>"; } else { $items .= "<li>{$item}</li>"; } break; } } } if (empty($items)) { return ""; } else { if ($format == "text") { return substr($items, 0, strlen($items) - 2); //removing last comma } else { if ($format == "url") { return substr($items, 0, strlen($items) - 1); //removing last comma } else { if ($media == "email") { return "<ul class='bulleted'>{$items}</ul>"; } else { return "<ul class='bulleted'>{$items}</ul>"; } } } } } else { if (is_array($value)) { $columns = array_keys($value[0]); $list = ""; switch ($format) { case "text": $is_first_row = true; foreach ($value as $item) { if (!$is_first_row) { $list .= "\n\n" . $field["label"] . ": "; } $list .= implode(",", array_values($item)); $is_first_row = false; } break; case "url": foreach ($value as $item) { $list .= implode("|", array_values($item)) . ","; } if (!empty($list)) { $list = substr($list, 0, strlen($list) - 1); } break; default: if ($media == "email") { $list = "<table class='gfield_list' style='border-top: 1px solid #DFDFDF; border-left: 1px solid #DFDFDF; border-spacing: 0; padding: 0; margin: 2px 0 6px; width: 100%'><thead><tr>"; //reading columns from entry data foreach ($columns as $column) { $list .= "<th style='background-image: none; border-right: 1px solid #DFDFDF; border-bottom: 1px solid #DFDFDF; padding: 6px 10px; font-family: sans-serif; font-size: 12px; font-weight: bold; background-color: #F1F1F1; color:#333; text-align:left'>" . esc_html($column) . "</th>"; } $list .= "</tr></thead>"; $list .= "<tbody style='background-color: #F9F9F9'>"; foreach ($value as $item) { $list .= "<tr>"; foreach ($columns as $column) { $val = rgar($item, $column); $list .= "<td style='padding: 6px 10px; border-right: 1px solid #DFDFDF; border-bottom: 1px solid #DFDFDF; border-top: 1px solid #FFF; font-family: sans-serif; font-size:12px;'>{$val}</td>"; } $list .= "</tr>"; } $list .= "<tbody></table>"; } else { $list = "<table class='gfield_list'><thead><tr>"; //reading columns from entry data foreach ($columns as $column) { $list .= "<th>" . esc_html($column) . "</th>"; } $list .= "</tr></thead>"; $list .= "<tbody>"; foreach ($value as $item) { $list .= "<tr>"; foreach ($columns as $column) { $val = rgar($item, $column); $list .= "<td>{$val}</td>"; } $list .= "</tr>"; } $list .= "<tbody></table>"; } break; } return $list; } } return ""; break; default: if (!is_array($value)) { return nl2br($value); } break; } }
public static function get_lead_field_display($field, $value, $currency = "", $use_text = false) { switch (RGFormsModel::get_input_type($field)) { case "name": if (is_array($value)) { $prefix = trim($value[$field["id"] . ".2"]); $first = trim($value[$field["id"] . ".3"]); $last = trim($value[$field["id"] . ".6"]); $suffix = trim($value[$field["id"] . ".8"]); $name = $prefix; $name .= !empty($name) && !empty($first) ? " {$first}" : $first; $name .= !empty($name) && !empty($last) ? " {$last}" : $last; $name .= !empty($name) && !empty($suffix) ? " {$suffix}" : $suffix; return $name; } else { return $value; } break; case "address": if (is_array($value)) { $street_value = trim($value[$field["id"] . ".1"]); $street2_value = trim($value[$field["id"] . ".2"]); $city_value = trim($value[$field["id"] . ".3"]); $state_value = trim($value[$field["id"] . ".4"]); $zip_value = trim($value[$field["id"] . ".5"]); $country_value = trim($value[$field["id"] . ".6"]); $address_display_format = apply_filters("gform_address_display_format", "street,city,state,zip,country"); if ($address_display_format == "zip_before_city") { /* Sample: 3333 Some Street suite 16 2344 City, State Country */ $addr_ary = array(); $addr_ary[] = $street_value; if (!empty($street2_value)) { $addr_ary[] = $street2_value; } $zip_line = trim($zip_value . " " . $city_value); $zip_line .= !empty($zip_line) && !empty($state_value) ? ", {$state_value}" : $state_value; $zip_line = trim($zip_line); if (!empty($zip_line)) { $addr_ary[] = $zip_line; } if (!empty($country_value)) { $addr_ary[] = $country_value; } $address = implode("<br />", $addr_ary); } else { $address = $street_value; $address .= !empty($address) && !empty($street2_value) ? "<br />{$street2_value}" : $street2_value; $address .= !empty($address) && (!empty($city_value) || !empty($state_value)) ? "<br />{$city_value}" : $city_value; $address .= !empty($address) && !empty($city_value) && !empty($state_value) ? ", {$state_value}" : $state_value; $address .= !empty($address) && !empty($zip_value) ? " {$zip_value}" : $zip_value; $address .= !empty($address) && !empty($country_value) ? "<br />{$country_value}" : $country_value; } //adding map link if (!empty($address)) { $address_qs = str_replace("<br />", " ", $address); //replacing <br/> with spaces $address_qs = urlencode($address_qs); $address .= "<br/><a href='http://maps.google.com/maps?q={$address_qs}' target='_blank' class='map-it-link'>Map It</a>"; } return $address; } else { return ""; } break; case "email": return GFCommon::is_valid_email($value) ? "<a href='mailto:{$value}'>{$value}</a>" : $value; break; case "website": return GFCommon::is_valid_url($value) ? "<a href='{$value}' target='_blank'>{$value}</a>" : $value; break; case "checkbox": if (is_array($value)) { foreach ($value as $key => $item) { if (!empty($item)) { $items .= "<li>" . GFCommon::selection_display($item, $field, $currency, $use_text) . "</li>"; } } return empty($items) ? "" : "<ul class='bulleted'>{$items}</ul>"; } else { return $value; } break; case "post_image": list($url, $title, $caption, $description) = explode("|:|", $value); if (!empty($url)) { $url = str_replace(" ", "%20", $url); $value = "<a href='{$url}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$url}' width='100' /></a>"; $value .= !empty($title) ? "<div>Title: {$title}</div>" : ""; $value .= !empty($caption) ? "<div>Caption: {$caption}</div>" : ""; $value .= !empty($description) ? "<div>Description: {$description}</div>" : ""; } return $value; case "fileupload": $file_path = $value; if (!empty($file_path)) { $info = pathinfo($file_path); $file_path = esc_attr(str_replace(" ", "%20", $file_path)); $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'>" . $info["basename"] . "</a>"; } return $value; break; case "date": return GFCommon::date_display($value, $field["dateFormat"]); break; case "radio": case "select": return GFCommon::selection_display($value, $field, $currency, $use_text); break; case "singleproduct": if (is_array($value)) { $product_name = trim($value[$field["id"] . ".1"]); $price = trim($value[$field["id"] . ".2"]); $quantity = trim($value[$field["id"] . ".3"]); $product = $product_name . ", " . __("Qty: ", "gravityforms") . $quantity . ", " . __("Price: ", "gravityforms") . $price; return $product; } else { return ""; } break; case "singleshipping": case "donation": case "total": case "price": return GFCommon::to_money($value, $currency); default: return nl2br($value); break; } }
<?php /** * Display the time field type * * @package GravityView * @subpackage GravityView/templates/fields */ $gravityview_view = GravityView_View::getInstance(); extract($gravityview_view->getCurrentField()); if (!empty($field_settings) && !empty($field_settings['date_display']) && !empty($value)) { // If there is a custom PHP date format passed via the date_display setting, // use PHP's date format $format = $field_settings['date_display']; $output = date_i18n($format, strtotime($value)); } else { // Otherwise, use Gravity Forms, where you can only choose from // yyyy-mm-dd, mm-dd-yyyy, and dd-mm-yyyy $format = apply_filters('gravityview_date_format', rgar($field, "dateFormat")); $output = GFCommon::date_display($value, $format); } echo $output;
public static function leads_page($form_id) { global $wpdb; //quit if version of wp is not supported if (!GFCommon::ensure_wp_version()) { return; } echo GFCommon::get_remote_message(); $action = RGForms::post("action"); switch ($action) { case "delete": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $lead_id = $_POST["action_argument"]; RGFormsModel::delete_lead($lead_id); break; case "bulk": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"]; $leads = $_POST["lead"]; switch ($bulk_action) { case "delete": RGFormsModel::delete_leads($leads); break; case "mark_read": RGFormsModel::update_leads_property($leads, "is_read", 1); break; case "mark_unread": RGFormsModel::update_leads_property($leads, "is_read", 0); break; case "add_star": RGFormsModel::update_leads_property($leads, "is_starred", 1); break; case "remove_star": RGFormsModel::update_leads_property($leads, "is_starred", 0); break; } break; case "change_columns": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $columns = GFCommon::json_decode(stripslashes($_POST["grid_columns"]), true); RGFormsModel::update_grid_column_meta($form_id, $columns); break; } $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"]; $sort_direction = empty($_GET["dir"]) ? "DESC" : $_GET["dir"]; $search = RGForms::get("s"); $page_index = empty($_GET["paged"]) ? 0 : intval($_GET["paged"]) - 1; $star = is_numeric(RGForms::get("star")) ? intval(RGForms::get("star")) : null; $read = is_numeric(RGForms::get("read")) ? intval(RGForms::get("read")) : null; $page_size = 20; $first_item_index = $page_index * $page_size; $form = RGFormsModel::get_form_meta($form_id); $sort_field_meta = RGFormsModel::get_field($form, $sort_field); $is_numeric = $sort_field_meta["type"] == "number"; $leads = RGFormsModel::get_leads($form_id, $sort_field, $sort_direction, $search, $first_item_index, $page_size, $star, $read, $is_numeric); $lead_count = RGFormsModel::get_lead_count($form_id, $search, $star, $read); $summary = RGFormsModel::get_form_counts($form_id); $total_lead_count = $summary["total"]; $unread_count = $summary["unread"]; $starred_count = $summary["starred"]; $columns = RGFormsModel::get_grid_columns($form_id, true); $search_qs = empty($search) ? "" : "&s=" . urlencode($search); $sort_qs = empty($sort_field) ? "" : "&sort={$sort_field}"; $dir_qs = empty($sort_field) ? "" : "&dir={$sort_direction}"; $star_qs = $star !== null ? "&star={$star}" : ""; $read_qs = $read !== null ? "&read={$read}" : ""; $page_links = paginate_links(array('base' => admin_url("admin.php") . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs, 'format' => 'paged=%#%', 'prev_text' => __('«'), 'next_text' => __('»'), 'total' => ceil($lead_count / $page_size), 'current' => $page_index + 1, 'show_all' => false)); wp_print_scripts(array("thickbox")); wp_print_styles(array("thickbox")); ?> <script src="<?php echo GFCommon::get_base_url(); ?> /js/jquery.json-1.3.js?ver=<?php echo GFCommon::$version; ?> "></script> <script> function ChangeColumns(columns){ jQuery("#action").val("change_columns"); jQuery("#grid_columns").val(jQuery.toJSON(columns)); tb_remove(); jQuery("#lead_form")[0].submit(); } function Search(sort_field_id, sort_direction, form_id, search, star, read){ var search_qs = search == "" ? "" : "&s=" + search; var star_qs = star == "" ? "" : "&star=" + star; var read_qs = read == "" ? "" : "&read=" + read; var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs; document.location = location; } function ToggleStar(img, lead_id){ var is_starred = img.src.indexOf("star1.png") >=0 if(is_starred) img.src = img.src.replace("star1.png", "star0.png"); else img.src = img.src.replace("star0.png", "star1.png"); UpdateCount("star_count", is_starred ? -1 : 1); UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1); } function ToggleRead(lead_id){ var title = jQuery("#lead_row_" + lead_id); marking_read = title.hasClass("lead_unread"); jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline"); jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none"); title.toggleClass("lead_unread"); UpdateCount("unread_count", marking_read ? -1 : 1); UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0); } function UpdateLeadProperty(lead_id, name, value){ var mysack = new sack("<?php echo admin_url("admin-ajax.php"); ?> " ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "rg_update_lead_property" ); mysack.setVar( "rg_update_lead_property", "<?php echo wp_create_nonce("rg_update_lead_property"); ?> " ); mysack.setVar( "lead_id", lead_id); mysack.setVar( "name", name); mysack.setVar( "value", value); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() { alert('<?php echo esc_js(__("Ajax error while setting lead property", "gravityforms")); ?> ' )}; mysack.runAJAX(); return true; } function UpdateCount(element_id, change){ var element = jQuery("#" + element_id); var count = parseInt(element.html()) + change element.html(count + ""); } function DeleteLead(lead_id){ jQuery("#action").val("delete"); jQuery("#action_argument").val(lead_id); jQuery("#lead_form")[0].submit(); return true; } jQuery(document).ready(function(){ jQuery("#lead_search").keyup(function(event){ if(event.keyCode == 13) Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , this.value, '<?php echo $star; ?> ', '<?php echo $read; ?> '); }); }); </script> <link rel="stylesheet" href="<?php echo GFCommon::get_base_url(); ?> /css/admin.css" type="text/css" /> <style> .lead_unread a, .lead_unread td{font-weight: bold;} .row-actions a{ font-weight:normal;} .entry_nowrap{ overflow:hidden; white-space:nowrap; } </style> <div class="wrap"> <img alt="<?php _e("Gravity Forms", "gravityforms"); ?> " src="<?php echo GFCommon::get_base_url(); ?> /images/gravity-entry-icon-32.png" style="float:left; margin:15px 7px 0 0;"/> <h2><?php _e("Entries", "gravityforms"); ?> : <?php echo $form["title"]; ?> </h2> <?php RGForms::top_toolbar(); ?> <form id="lead_form" method="post"> <?php wp_nonce_field('gforms_entry_list', 'gforms_entry_list'); ?> <input type="hidden" value="" name="grid_columns" id="grid_columns" /> <input type="hidden" value="" name="action" id="action" /> <input type="hidden" value="" name="action_argument" id="action_argument" /> <ul class="subsubsub"> <li><a class="<?php echo $star === null && $read === null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> "><?php _e("All", "gravityforms"); ?> <span class="count">(<span id="all_count"><?php echo $total_lead_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $read !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &read=0"><?php _e("Unread", "gravityforms"); ?> <span class="count">(<span id="unread_count"><?php echo $unread_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $star !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &star=1"><?php _e("Starred", "gravityforms"); ?> <span class="count">(<span id="star_count"><?php echo $starred_count; ?> </span>)</span></a></li> </ul> <p class="search-box"> <label class="hidden" for="lead_search"><?php _e("Search Entries:", "gravityforms"); ?> </label> <input type="text" id="lead_search" value="<?php echo $search; ?> "><a class="button" id="lead_search_button" href="javascript:Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , jQuery('#lead_search').val(), '<?php echo $star; ?> ', '<?php echo $read; ?> ');"><?php _e("Search", "gravityforms"); ?> </a> </p> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action" id="bulk_action"> <option value=''><?php _e(" Bulk action ", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete", "gravityforms"); ?> </option> <?php } ?> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="jQuery(\'#action\').val(\'bulk\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); ?> </div> <?php //Displaying paging links if appropriate if ($page_links) { ?> <div class="tablenav-pages"> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count); ?> </span> <?php echo $page_links; ?> </div> <?php } ?> <div class="clear"></div> </div> <table class="widefat fixed" cellspacing="0"> <thead> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column" style="vertical-align:middle;"><input type="checkbox" class="headercb" /></th> <th scope="col" class="manage-column column-cb check-column" > </th> <?php foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" align="right" width="50"> <a title="<?php _e("Select Columns", "gravityforms"); ?> " href="<?php echo GFCommon::get_base_url(); ?> /select_columns.php?id=<?php echo $form_id; ?> &TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon">Edit</a> </th> </tr> </thead> <tfoot> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th> <th scope="col" id="cb" class="manage-column column-cb check-column" > </th> <?php foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" style="width:15px;"> <a href="<?php echo GFCommon::get_base_url(); ?> /select_columns.php?id=<?php echo $form_id; ?> &TB_iframe=true&height=350&width=500" class="thickbox entries_edit_icon">Edit</a> </th> </tr> </tfoot> <tbody class="list:user user-list"> <?php if (sizeof($leads) > 0) { $field_ids = array_keys($columns); foreach ($leads as $lead) { ?> <tr id="lead_row_<?php echo $lead["id"]; ?> " class='author-self status-inherit <?php echo $lead["is_read"] ? "" : "lead_unread"; ?> ' valign="top"> <th scope="row" class="check-column"> <input type="checkbox" name="lead[]" value="<?php echo $lead["id"]; ?> " /> </th> <td > <img src="<?php echo GFCommon::get_base_url(); ?> /images/star<?php echo intval($lead["is_starred"]); ?> .png" onclick="ToggleStar(this, <?php echo $lead["id"]; ?> );" /> </td> <?php $is_first_column = true; $nowrap_class = "entry_nowrap"; foreach ($field_ids as $field_id) { $value = RGForms::get($field_id, $lead); //filtering lead value $value = apply_filters("gform_get_field_value", $value, $lead, RGFormsModel::get_field($form, $field_id)); $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"]; switch ($input_type) { case "checkbox": $value = ""; //looping through lead detail values trying to find an item identical to the column label. Mark with a tick if found. $lead_field_keys = array_keys($lead); foreach ($lead_field_keys as $input_id) { //mark as a tick if input label (from form meta) is equal to submitted value (from lead) if (is_numeric($input_id) && absint($input_id) == absint($field_id)) { if ($lead[$input_id] == $columns[$field_id]["label"]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; } else { $field = RGFormsModel::get_field($form, $field_id); if ($field["enableChoiceValue"] || $field["enablePrice"]) { foreach ($field["choices"] as $choice) { if ($choice["value"] == $lead[$field_id]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; break; } else { if ($field["enablePrice"]) { list($val, $price) = explode("|", $lead[$field_id]); if ($val == $choice["value"]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; break; } } } } } } } } break; case "post_image": list($url, $title, $caption, $description) = explode("|:|", $value); if (!empty($url)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($url); $value = "<a href='" . esc_attr($url) . "' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "post_category": $ary = explode(":", $value); $cat_name = count($ary) > 0 ? $ary[0] : ""; $value = $cat_name; break; case "fileupload": $file_path = $value; if (!empty($file_path)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($file_path); $file_path = esc_attr($file_path); $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "source_url": $value = "<a href='" . esc_attr($lead["source_url"]) . "' target='_blank' alt='" . esc_attr($lead["source_url"]) . "' title='" . esc_attr($lead["source_url"]) . "'>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>"; break; case "textarea": case "post_content": case "post_excerpt": $value = esc_html($value); break; case "date_created": case "payment_date": $value = GFCommon::format_date($value, false); break; case "date": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::date_display($value, $field["dateFormat"]); break; case "radio": case "select": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::selection_display($value, $field, $lead["currency"]); break; case "total": case "payment_amount": $value = GFCommon::to_money($value, $lead["currency"]); break; case "created_by": if (!empty($value)) { $userdata = get_userdata($value); $value = $userdata->user_login; } break; default: $value = esc_html($value); } $value = apply_filters("gform_entries_field_value", $value, $form_id, $field_id, $lead); $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead["id"]}{$search_qs}{$sort_qs}{$dir_qs}&paged=" . $page_index + 1; if ($is_first_column) { ?> <td class="column-title" > <a href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php echo $value; ?> </a> <div class="row-actions"> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="edit"> <a id="mark_read_<?php echo $lead["id"]; ?> " title="Mark this entry as read" href="javascript:ToggleRead(<?php echo $lead["id"]; ?> );" style="display:<?php echo $lead["is_read"] ? "none" : "inline"; ?> ;"><?php _e("Mark read", "gravityforms"); ?> </a><a id="mark_unread_<?php echo $lead["id"]; ?> " title="<?php _e("Mark this entry as unread", "gravityforms"); ?> " href="javascript:ToggleRead(<?php echo $lead["id"]; ?> );" style="display:<?php echo $lead["is_read"] ? "inline" : "none"; ?> ;"><?php _e("Mark unread", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="edit"> <?php $delete_link = '<a title="' . __("Delete this entry", "gravityforms") . '" href="javascript:if ( confirm(' . __("'You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.'", "gravityforms") . ') ) { DeleteLead(' . $lead["id"] . ')};">' . __("Delete", "gravityforms") . '</a>'; echo apply_filters("gform_delete_entry_link", $delete_link); ?> </span> <?php } do_action("gform_entries_first_column_actions", $form_id, $field_id, $value, $lead, $query_string); ?> </div> <?php do_action("gform_entries_first_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } else { ?> <td class="<?php echo $nowrap_class; ?> "> <?php echo $value; ?> <?php do_action("gform_entries_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } $is_first_column = false; } ?> <td> </td> </tr> <?php } } else { ?> <tr> <td colspan="<?php echo sizeof($columns) + 3; ?> " style="padding:20px;"><?php _e("This form does not have any entries yet.", "gravityforms"); ?> </td> </tr> <?php } ?> </tbody> </table> <div class="clear"></div> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action2"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action2" id="bulk_action2"> <option value=''><?php _e("Bulk action ", "gravityforms"); ?> </option> <option value='delete'><?php _e("Delete", "gravityforms"); ?> </option> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="jQuery(\'#action\').val(\'bulk\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); ?> </div> <?php //Displaying paging links if appropriate if ($page_links) { ?> <div class="tablenav-pages"> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count); ?> </span> <?php echo $page_links; ?> </div> <?php } ?> <div class="clear"></div> </div> </form> </div> <?php }
public static function pdf_get_lead_field_display($field, $value, $currency = '', $use_text = false, $format = 'html', $media = 'screen') { if ($field['type'] == 'post_category') { $value = GFCommon::prepare_post_category_value($value, $field); } switch (RGFormsModel::get_input_type($field)) { case 'name': if (is_array($value)) { $prefix = trim(rgget($field['id'] . '.2', $value)); $first = trim(rgget($field['id'] . '.3', $value)); $middle = trim(rgget($field['id'] . '.4', $value)); $last = trim(rgget($field['id'] . '.6', $value)); $suffix = trim(rgget($field['id'] . '.8', $value)); $name = $prefix; $name .= !empty($name) && !empty($first) ? " {$first}" : $first; $name .= !empty($name) && !empty($middle) ? " {$middle}" : $middle; $name .= !empty($name) && !empty($last) ? " {$last}" : $last; $name .= !empty($name) && !empty($suffix) ? " {$suffix}" : $suffix; return $name; } else { return $value; } break; case 'creditcard': if (is_array($value)) { $card_number = trim(rgget($field['id'] . '.1', $value)); $card_type = trim(rgget($field['id'] . '.4', $value)); $separator = $format == 'html' ? '<br/>' : '\\n'; return empty($card_number) ? '' : $card_type . $separator . $card_number; } else { return ''; } break; case 'address': if (is_array($value)) { $street_value = trim(rgget($field['id'] . '.1', $value)); $street2_value = trim(rgget($field['id'] . '.2', $value)); $city_value = trim(rgget($field['id'] . '.3', $value)); $state_value = trim(rgget($field['id'] . '.4', $value)); $zip_value = trim(rgget($field['id'] . '.5', $value)); $country_value = trim(rgget($field['id'] . '.6', $value)); $line_break = $format == 'html' ? '<br />' : '\\n'; $address_display_format = apply_filters('gform_address_display_format', 'default'); if ($address_display_format == 'zip_before_city') { /* Sample: 3333 Some Street suite 16 2344 City, State Country */ $addr_ary = array(); $addr_ary[] = $street_value; if (!empty($street2_value)) { $addr_ary[] = $street2_value; } $zip_line = trim($zip_value . ' ' . $city_value); $zip_line .= !empty($zip_line) && !empty($state_value) ? ", {$state_value}" : $state_value; $zip_line = trim($zip_line); if (!empty($zip_line)) { $addr_ary[] = $zip_line; } if (!empty($country_value)) { $addr_ary[] = $country_value; } $address = implode('<br />', $addr_ary); } else { $address = $street_value; $address .= !empty($address) && !empty($street2_value) ? $line_break . $street2_value : $street2_value; $address .= !empty($address) && (!empty($city_value) || !empty($state_value)) ? $line_break . $city_value : $city_value; $address .= !empty($address) && !empty($city_value) && !empty($state_value) ? ", {$state_value}" : $state_value; $address .= !empty($address) && !empty($zip_value) ? " {$zip_value}" : $zip_value; $address .= !empty($address) && !empty($country_value) ? $line_break . $country_value : $country_value; } return $address; } else { return ''; } break; case 'email': return GFCommon::is_valid_email($value) && $format == 'html' ? '<a href="mailto:' . $value . '">' . $value . '</a>' : $value; break; case 'website': return GFCommon::is_valid_url($value) && $format == 'html' ? '<a href="' . $value . '" target="_blank">' . $value . '</a>' : $value; break; case 'checkbox': if (is_array($value)) { $items = ''; foreach ($value as $key => $item) { if (!empty($item)) { switch ($format) { case 'text': $items .= GFCommon::selection_display($item, $field, $currency, true) . ', '; break; default: $items .= '<li>' . GFCommon::selection_display($item, $field, $currency, true) . '</li>'; break; } } } if (empty($items)) { return ''; } else { if ($format == 'text') { return substr($items, 0, strlen($items) - 2); //removing last comma } else { return '<ul class="bulleted">' . $items . '</ul>'; } } } else { return $value; } break; case 'post_image': $ary = explode('|:|', $value); $url = count($ary) > 0 ? $ary[0] : ''; $title = count($ary) > 1 ? $ary[1] : ''; $caption = count($ary) > 2 ? $ary[2] : ''; $description = count($ary) > 3 ? $ary[3] : ''; if (!empty($url)) { $url = str_replace(' ', '%20', $url); switch ($format) { case 'text': $value = $url; $value .= !empty($title) ? '\\n\\n' . $field['label'] . ' (' . __('Title', 'gravityforms') . '): ' . $title : ''; $value .= !empty($caption) ? '\\n\\n' . $field['label'] . ' (' . __('Caption', 'gravityforms') . '): ' . $caption : ''; $value .= !empty($description) ? '\\n\\n' . $field['label'] . ' (' . __('Description', 'gravityforms') . '): ' . $description : ''; break; default: $path = str_replace(site_url() . '/', ABSPATH, $url); $value = "<a href='{$url}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$path}' width='100' /></a>"; $value .= !empty($title) ? "<div>Title: {$title}</div>" : ""; $value .= !empty($caption) ? "<div>Caption: {$caption}</div>" : ""; $value .= !empty($description) ? "<div>Description: {$description}</div>" : ""; break; } } return $value; case 'fileupload': $output = ''; $output_arr = array(); if (!empty($value)) { $output .= '<ul>'; $file_paths = rgar($field, 'multipleFiles') ? json_decode($value) : array($value); foreach ($file_paths as $file_path) { $info = pathinfo($file_path); $file_path = esc_attr(str_replace(' ', '%20', $file_path)); $output_arr[] = '<li><a href="' . $file_path . '" target="_blank" title="' . __('Click to view', 'gravityforms') . '">' . $info['basename'] . '</a></li>'; } $output .= join(PHP_EOL, $output_arr); $output .= '</ul>'; } return $output; break; case 'date': return GFCommon::date_display($value, rgar($field, 'dateFormat')); break; case 'radio': case 'select': return GFCommon::selection_display($value, $field, $currency, true); break; case 'multiselect': if (empty($value) || $format == 'text') { return $value; } if (!is_array($value)) { $value = explode(',', $value); } $items = ''; foreach ($value as $item) { $items .= '<li>' . GFCommon::selection_display($item, $field, $currency, true) . '</li>'; } return '<ul class="bulleted">' . $items . '</ul>'; break; case 'calculation': case 'singleproduct': if (is_array($value)) { $product_name = trim($value[$field['id'] . '.1']); $price = trim($value[$field['id'] . '.2']); $quantity = trim($value[$field['id'] . '.3']); $product = $product_name . ', ' . __('Qty: ', 'gravityforms') . $quantity . ', ' . __('Price: ', 'gravityforms') . $price; return $product; } else { return ''; } break; case 'number': return GFCommon::format_number($value, rgar($field, 'numberFormat')); break; case 'singleshipping': case 'donation': case 'total': case 'price': return GFCommon::to_money($value, $currency); case 'list': if (empty($value)) { return ''; } $value = unserialize($value); $has_columns = is_array($value[0]); if (!$has_columns) { $items = ''; foreach ($value as $key => $item) { if (!empty($item)) { switch ($format) { case 'text': $items .= $item . ', '; break; case 'url': $items .= $item . ','; break; default: if ($media == 'email') { $items .= '<li>' . htmlspecialchars($item) . '</li>'; } else { $items .= '<li>' . htmlspecialchars($item) . '</li>'; } break; } } } if (empty($items)) { return ''; } else { if ($format == 'text') { return substr($items, 0, strlen($items) - 2); //removing last comma } else { if ($format == 'url') { return substr($items, 0, strlen($items) - 1); //removing last comma } else { return '<ul class="bulleted">' . $items . '</ul>'; } } } } else { if (is_array($value)) { $columns = array_keys($value[0]); $list = ''; switch ($format) { case 'text': $is_first_row = true; foreach ($value as $item) { if (!$is_first_row) { $list .= '\\n\\n' . $field['label'] . ': '; } $list .= implode(',', array_values($item)); $is_first_row = false; } break; case 'url': foreach ($value as $item) { $list .= implode('|', array_values($item)) . ','; } if (!empty($list)) { $list = substr($list, 0, strlen($list) - 1); } break; default: if ($media == 'email') { $list = '<table autosize="1" class="gfield_list" style="border-top: 1px solid #DFDFDF; border-left: 1px solid #DFDFDF; border-spacing: 0; padding: 0; margin: 2px 0 6px; width: 100%"><thead><tr>'; //reading columns from entry data foreach ($columns as $column) { $list .= '<th style="background-image: none; border-right: 1px solid #DFDFDF; border-bottom: 1px solid #DFDFDF; padding: 6px 10px; font-family: sans-serif; font-size: 12px; font-weight: bold; background-color: #F1F1F1; color:#333; text-align:left">' . esc_html($column) . '</th>'; } $list .= '</tr></thead>'; $list .= '<tbody style="background-color: #F9F9F9">'; foreach ($value as $item) { $list .= '<tr>'; foreach ($columns as $column) { $val = rgar($item, $column); $list .= '<td style="padding: 6px 10px; border-right: 1px solid #DFDFDF; border-bottom: 1px solid #DFDFDF; border-top: 1px solid #FFF; font-family: sans-serif; font-size:12px;">{$val}</td>'; } $list .= '</tr>'; } $list .= '</tbody></table>'; } else { $list = '<table autosize="1" class="gfield_list"><thead><tr>'; //reading columns from entry data foreach ($columns as $column) { $list .= '<th>' . esc_html($column) . '</th>'; } $list .= '</tr></thead>'; $list .= '<tbody>'; foreach ($value as $item) { $list .= '<tr>'; foreach ($columns as $column) { $val = rgar($item, $column); $list .= '<td>' . htmlspecialchars($val) . '</td>'; } $list .= '</tr>'; } $list .= '</tbody></table>'; } break; } return $list; } } return ''; break; default: if (!is_array($value)) { return nl2br($value); } break; } }
public static function leads_page($form_id) { global $wpdb; //quit if version of wp is not supported if (!GFCommon::ensure_wp_version()) { return; } echo GFCommon::get_remote_message(); $action = RGForms::post("action"); $update_message = ""; switch ($action) { case "delete": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $lead_id = $_POST["action_argument"]; RGFormsModel::delete_lead($lead_id); $update_message = __("Entry deleted.", "gravityforms"); break; case "bulk": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"]; $leads = $_POST["lead"]; $entry_count = count($leads) > 1 ? sprintf(__("%d entries", "gravityforms"), count($leads)) : __("1 entry", "gravityforms"); switch ($bulk_action) { case "delete": RGFormsModel::delete_leads($leads); $update_message = sprintf(__("%s deleted.", "gravityforms"), $entry_count); break; case "trash": RGFormsModel::update_leads_property($leads, "status", "trash"); $update_message = sprintf(__("%s moved to Trash.", "gravityforms"), $entry_count); break; case "restore": RGFormsModel::update_leads_property($leads, "status", "active"); $update_message = sprintf(__("%s restored from the Trash.", "gravityforms"), $entry_count); break; case "unspam": RGFormsModel::update_leads_property($leads, "status", "active"); $update_message = sprintf(__("%s restored from the spam.", "gravityforms"), $entry_count); break; case "spam": RGFormsModel::update_leads_property($leads, "status", "spam"); $update_message = sprintf(__("%s marked as spam.", "gravityforms"), $entry_count); break; case "mark_read": RGFormsModel::update_leads_property($leads, "is_read", 1); $update_message = sprintf(__("%s marked as read.", "gravityforms"), $entry_count); break; case "mark_unread": RGFormsModel::update_leads_property($leads, "is_read", 0); $update_message = sprintf(__("%s marked as unread.", "gravityforms"), $entry_count); break; case "add_star": RGFormsModel::update_leads_property($leads, "is_starred", 1); $update_message = sprintf(__("%s starred.", "gravityforms"), $entry_count); break; case "remove_star": RGFormsModel::update_leads_property($leads, "is_starred", 0); $update_message = sprintf(__("%s unstarred.", "gravityforms"), $entry_count); break; } break; case "change_columns": check_admin_referer('gforms_entry_list', 'gforms_entry_list'); $columns = GFCommon::json_decode(stripslashes($_POST["grid_columns"]), true); RGFormsModel::update_grid_column_meta($form_id, $columns); break; } $filter = rgget("filter"); if (rgpost("button_delete_permanently")) { RGFormsModel::delete_leads_by_form($form_id, $filter); } $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"]; $sort_direction = empty($_GET["dir"]) ? "DESC" : $_GET["dir"]; $search = RGForms::get("s"); $page_index = empty($_GET["paged"]) ? 0 : intval($_GET["paged"]) - 1; $star = $filter == "star" ? 1 : null; // is_numeric(RGForms::get("star")) ? intval(RGForms::get("star")) : null; $read = $filter == "unread" ? 0 : null; //is_numeric(RGForms::get("read")) ? intval(RGForms::get("read")) : null; $page_size = 20; $first_item_index = $page_index * $page_size; $form = RGFormsModel::get_form_meta($form_id); $sort_field_meta = RGFormsModel::get_field($form, $sort_field); $is_numeric = $sort_field_meta["type"] == "number"; $status = in_array($filter, array("trash", "spam")) ? $filter : "active"; $leads = RGFormsModel::get_leads($form_id, $sort_field, $sort_direction, $search, $first_item_index, $page_size, $star, $read, $is_numeric, null, null, $status); $lead_count = RGFormsModel::get_lead_count($form_id, $search, $star, $read); $summary = RGFormsModel::get_form_counts($form_id); $total_lead_count = $summary["total"]; $unread_count = $summary["unread"]; $starred_count = $summary["starred"]; $spam_count = $summary["spam"]; $trash_count = $summary["trash"]; $columns = RGFormsModel::get_grid_columns($form_id, true); $search_qs = empty($search) ? "" : "&s=" . urlencode($search); $sort_qs = empty($sort_field) ? "" : "&sort={$sort_field}"; $dir_qs = empty($sort_field) ? "" : "&dir={$sort_direction}"; $star_qs = $star !== null ? "&star={$star}" : ""; $read_qs = $read !== null ? "&read={$read}" : ""; $page_links = paginate_links(array('base' => admin_url("admin.php") . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs, 'format' => 'paged=%#%', 'prev_text' => __('«'), 'next_text' => __('»'), 'total' => ceil($lead_count / $page_size), 'current' => $page_index + 1, 'show_all' => false)); wp_print_scripts(array("thickbox")); wp_print_styles(array("thickbox")); ?> <script src="<?php echo GFCommon::get_base_url(); ?> /js/jquery.json-1.3.js?ver=<?php echo GFCommon::$version; ?> "></script> <script src="<?php echo includes_url(); ?> /js/wp-lists.dev.js" type="text/javascript"></script> <script src="<?php echo includes_url(); ?> /js/wp-ajax-response.dev.js" type="text/javascript"></script> <script type="text/javascript"> var messageTimeout = false; function ChangeColumns(columns){ jQuery("#action").val("change_columns"); jQuery("#grid_columns").val(jQuery.toJSON(columns)); tb_remove(); jQuery("#lead_form")[0].submit(); } function Search(sort_field_id, sort_direction, form_id, search, star, read){ var search_qs = search == "" ? "" : "&s=" + search; var star_qs = star == "" ? "" : "&star=" + star; var read_qs = read == "" ? "" : "&read=" + read; var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs; document.location = location; } function ToggleStar(img, lead_id){ var is_starred = img.src.indexOf("star1.png") >=0 if(is_starred) img.src = img.src.replace("star1.png", "star0.png"); else img.src = img.src.replace("star0.png", "star1.png"); jQuery("#lead_row_" + lead_id).toggleClass("lead_starred"); UpdateCount("star_count", is_starred ? -1 : 1); UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1); } function ToggleRead(lead_id){ var title = jQuery("#lead_row_" + lead_id); marking_read = title.hasClass("lead_unread"); jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline"); jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none"); jQuery("#is_unread_" + lead_id).css("display", marking_read ? "inline" : "none"); title.toggleClass("lead_unread"); UpdateCount("unread_count", marking_read ? -1 : 1); UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0); } function UpdateLeadProperty(lead_id, name, value){ var mysack = new sack("<?php echo admin_url("admin-ajax.php"); ?> " ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "rg_update_lead_property" ); mysack.setVar( "rg_update_lead_property", "<?php echo wp_create_nonce("rg_update_lead_property"); ?> " ); mysack.setVar( "lead_id", lead_id); mysack.setVar( "name", name); mysack.setVar( "value", value); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() { alert('<?php echo esc_js(__("Ajax error while setting lead property", "gravityforms")); ?> ' )}; mysack.runAJAX(); return true; } function UpdateCount(element_id, change){ var element = jQuery("#" + element_id); var count = parseInt(element.html()) + change element.html(count + ""); } function DeleteLead(lead_id){ jQuery("#action").val("delete"); jQuery("#action_argument").val(lead_id); jQuery("#lead_form")[0].submit(); return true; } function handleBulkApply(actionElement){ var action = jQuery("#" + actionElement).val(); var defaultModalOptions = ''; var leadIds = getLeadIds(); if(leadIds.length == 0){ alert('<?php _e('Please select at least one entry.', 'gravityforms'); ?> '); return false; } switch(action){ case 'resend_notifications': resetResendNotificationsUI(); tb_show('<?php _e("Resend Notifications", "gravityforms"); ?> ', '#TB_inline?width=350&inlineId=notifications_modal_container', ''); return false; break; case 'print': resetPrintUI(); tb_show('<?php _e("Print Entries", "gravityforms"); ?> ', '#TB_inline?width=350&height=250&inlineId=print_modal_container', ''); return false; break; default: jQuery('#action').val('bulk'); } } function getLeadIds(){ var leads = jQuery(".check-column input[name='lead[]']:checked"); var leadIds = new Array(); jQuery(leads).each(function(i){ leadIds[i] = jQuery(leads[i]).val(); }); return leadIds; } function BulkResendNotifications(){ var sendAdmin = jQuery("#notification_admin").is(":checked") ? 1 : 0; var sendUser = jQuery("#notification_user").is(":checked") ? 1 : 0; var leadIds = getLeadIds(); var sendTo = jQuery('#notification_override_email').val(); if(!sendAdmin && !sendUser) { displayMessage("<?php _e("You must select at least one type of notification to resend.", "gravityforms"); ?> ", "error", "#notifications_container"); return; } jQuery('#please_wait_container').fadeIn(); jQuery.post(ajaxurl, { action : "gf_resend_notifications", gf_resend_notifications : '<?php echo wp_create_nonce('gf_resend_notifications'); ?> ', sendAdmin : sendAdmin, sendUser : sendUser, sendTo : sendTo, leadIds : leadIds, formId : '<?php echo $form['id']; ?> ' }, function(response){ jQuery('#please_wait_container').hide(); if(response) { displayMessage(response, "error", "#notifications_container"); } else { var message = '<?php _e("Notifications for %s were resent successfully.", "gravityforms"); ?> '; displayMessage(message.replace('%s', leadIds.length + ' ' + getPlural(leadIds.length, '<?php _e('entry', 'gravityforms'); ?> ', '<?php _e('entries', 'gravityforms'); ?> ')), "updated", "#lead_form"); closeModal(true); } } ); } function resetResendNotificationsUI(){ jQuery('#notification_admin, #notification_user').attr('checked', false); jQuery('#notifications_container .message, #notifications_override_settings').hide(); } function BulkPrint(){ var leadIds = getLeadIds(); var leadsQS = '&lid=' + leadIds.join(','); var notesQS = jQuery('#gform_print_notes').is(':checked') ? '¬es=1' : ''; var pageBreakQS = jQuery('#gform_print_page_break').is(':checked') ? '&page_break=1' : ''; var url = '<?php echo site_url(); ?> /?gf_page=print-entry&fid=<?php echo $form['id']; ?> ' + leadsQS + notesQS + pageBreakQS; window.open (url,'printwindow'); closeModal(true); hideMessage('#lead_form', false); } function resetPrintUI(){ jQuery('#print_options input[type="checkbox"]').attr('checked', false); } function displayMessage(message, messageClass, container){ hideMessage(container, true); var messageBox = jQuery('<div class="message ' + messageClass + '" style="display:none;"><p>' + message + '</p></div>'); jQuery(messageBox).prependTo(container).slideDown(); if(messageClass == 'updated') messageTimeout = setTimeout(function(){ hideMessage(container, false); }, 10000); } function hideMessage(container, messageQueued){ if(messageTimeout) clearTimeout(messageTimeout); var messageBox = jQuery(container).find('.message'); if(messageQueued) jQuery(messageBox).remove(); else jQuery(messageBox).slideUp(function(){ jQuery(this).remove(); }); } function closeModal(isSuccess) { if(isSuccess) jQuery('.check-column input[type="checkbox"]').attr('checked', false); tb_remove(); } function getPlural(count, singular, plural) { return count > 1 ? plural : singular; } function toggleNotificationOverride(isInit) { if(isInit) jQuery('#notification_override_email').val(''); if(jQuery('#notification_admin').is(':checked') || jQuery('#notification_user').is(':checked')) { jQuery('#notifications_override_settings').slideDown(); } else { jQuery('#notifications_override_settings').slideUp(function(){ jQuery('#notification_override_email').val(''); }); } } jQuery(document).ready(function(){ jQuery("#lead_search").keypress(function(event){ if(event.keyCode == 13){ Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , this.value, '<?php echo $star; ?> ', '<?php echo $read; ?> '); event.preventDefault(); } }); var action = '<?php echo $action; ?> '; var message = '<?php echo $update_message; ?> '; if(action && message) displayMessage(message, 'updated', '#lead_form'); var list = jQuery("#gf_entry_list").wpList( { alt: '<?php echo esc_js(__('Entry List', 'gravityforms')); ?> '} ); list.bind('wpListDelEnd', function(e, s){ var currentStatus = "<?php echo $filter == "trash" || $filter == "spam" ? $filter : "active"; ?> "; var movingTo = "active"; if(s.target.className.indexOf(':status=trash') != -1) movingTo = "trash"; else if(s.target.className.indexOf(':status=spam') != -1) movingTo = "spam"; else if(s.target.className.indexOf(':status=delete') != -1) movingTo = "delete"; var id = s.data.entry; var title = jQuery("#lead_row_" + id); var isUnread = title.hasClass("lead_unread"); var isStarred = title.hasClass("lead_starred"); if(movingTo != "delete"){ //Updating All count var allCount = currentStatus == "active" ? -1 : 1; UpdateCount("all_count", allCount); //Updating Unread count if(isUnread){ var unreadCount = currentStatus == "active" ? -1 : 1; UpdateCount("unread_count", unreadCount); } //Updating Starred count if(isStarred){ var starCount = currentStatus == "active" ? -1 : 1; UpdateCount("star_count", starCount); } } //Updating Spam count if(currentStatus == "spam" || movingTo == "spam"){ var spamCount = movingTo == "spam" ? 1 : -1; UpdateCount("spam_count", spamCount); } //Updating trash count if(currentStatus == "trash" || movingTo == "trash"){ var spamCount = movingTo == "trash" ? 1 : -1; UpdateCount("trash_count", spamCount); } });; }); </script> <link rel="stylesheet" href="<?php echo GFCommon::get_base_url(); ?> /css/admin.css" type="text/css" /> <style> /*#TB_window { height: 400px !important; } #TB_ajaxContent[style] { height: 370px !important; }*/ .lead_unread a, .lead_unread td{font-weight: bold;} .lead_spam_trash a, .lead_spam_trash td{font-weight:normal;} .row-actions a { font-weight:normal;} .entry_nowrap{ overflow:hidden; white-space:nowrap; } .message { margin: 15px 0 0 !important; } </style> <div class="wrap"> <div class="icon32" id="gravity-entry-icon"><br></div> <h2><?php _e("Entries", "gravityforms"); ?> : <?php echo $form["title"]; ?> </h2> <?php RGForms::top_toolbar(); ?> <form id="lead_form" method="post"> <?php wp_nonce_field('gforms_entry_list', 'gforms_entry_list'); ?> <input type="hidden" value="" name="grid_columns" id="grid_columns" /> <input type="hidden" value="" name="action" id="action" /> <input type="hidden" value="" name="action_argument" id="action_argument" /> <ul class="subsubsub"> <li><a class="<?php echo empty($filter) ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> "><?php _e("All", "gravityforms"); ?> <span class="count">(<span id="all_count"><?php echo $total_lead_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $read !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=unread"><?php _e("Unread", "gravityforms"); ?> <span class="count">(<span id="unread_count"><?php echo $unread_count; ?> </span>)</span></a> | </li> <li><a class="<?php echo $star !== null ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=star"><?php _e("Starred", "gravityforms"); ?> <span class="count">(<span id="star_count"><?php echo $starred_count; ?> </span>)</span></a> | </li> <?php if (GFCommon::has_akismet()) { ?> <li><a class="<?php echo $filter == "spam" ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=spam"><?php _e("Spam", "gravityforms"); ?> <span class="count">(<span id="spam_count"><?php echo $spam_count; ?> </span>)</span></a> | </li> <?php } ?> <li><a class="<?php echo $filter == "trash" ? "current" : ""; ?> " href="?page=gf_entries&view=entries&id=<?php echo $form_id; ?> &filter=trash"><?php _e("Trash", "gravityforms"); ?> <span class="count">(<span id="trash_count"><?php echo $trash_count; ?> </span>)</span></a></li> </ul> <p class="search-box"> <label class="hidden" for="lead_search"><?php _e("Search Entries:", "gravityforms"); ?> </label> <input type="text" id="lead_search" value="<?php echo $search; ?> "><a class="button" id="lead_search_button" href="javascript:Search('<?php echo $sort_field; ?> ', '<?php echo $sort_direction; ?> ', <?php echo $form_id; ?> , jQuery('#lead_search').val(), '<?php echo $star; ?> ', '<?php echo $read; ?> ');"><?php _e("Search", "gravityforms"); ?> </a> </p> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action" id="bulk_action"> <option value=''><?php _e(" Bulk action ", "gravityforms"); ?> </option> <?php switch ($filter) { case "trash": ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; case "spam": ?> <option value='unspam'><?php _e("Not Spam", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; default: ?> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> <option value='resend_notifications'><?php _e("Resend Notifications", "gravityforms"); ?> </option> <option value='print'><?php _e("Print", "gravityforms"); ?> </option> <?php if (GFCommon::has_akismet()) { ?> <option value='spam'><?php _e("Spam", "gravityforms"); ?> </option> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='trash'><?php _e("Trash", "gravityforms"); ?> </option> <?php } } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); if (in_array($filter, array("trash", "spam"))) { $message = $filter == "trash" ? __("WARNING! This operation cannot be undone. Empty trash? \\'Ok\\' to empty trash. \\'Cancel\\' to abort.") : __("WARNING! This operation cannot be undone. Permanently delete all spam? \\'Ok\\' to delete. \\'Cancel\\' to abort."); $button_label = $filter == "trash" ? __("Empty Trash", "gravityforms") : __("Delete All Spam", "gravityforms"); ?> <input type="submit" class="button" name="button_delete_permanently" value="<?php echo $button_label; ?> " onclick="return confirm('<?php echo esc_attr($message); ?> ');" /> <?php } ?> <div id="notifications_modal_container" style="display:none;"> <div id="notifications_container"> <div id="post_tag" class="tagsdiv"> <div id="resend_notifications_options"> <p class="description"><?php _e("Specify which notifications you would like to resend for the selected entries.", "gravityforms"); ?> </p> <?php if (GFCommon::has_admin_notification($form)) { ?> <input type="checkbox" name="notification_admin" id="notification_admin" onclick="toggleNotificationOverride();" /> <label for="notification_admin"><?php _e("Admin Notification", "gravityforms"); ?> </label> <br /><br /> <?php } ?> <?php if (GFCommon::has_user_notification($form)) { ?> <input type="checkbox" name="notification_user" id="notification_user" onclick="toggleNotificationOverride();" /> <label for="notification_user"><?php _e("User Notification", "gravityforms"); ?> </label> <br /><br /> <?php } ?> <div id="notifications_override_settings" style="display:none;"> <p class="description" style="padding-top:0; margin-top:0;">You may override the default notification settings by entering a comma delimited list of emails to which the selected notifications should be sent.</p> <label for="notification_override_email"><?php _e("Send To", "gravityforms"); ?> <?php gform_tooltip("notification_override_email"); ?> </label><br /> <input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" /><br /><br /> </div> <input type="button" name="notification_resend" id="notification_resend" value="<?php _e("Resend Notifications", "gravityforms"); ?> " class="button" style="" onclick="BulkResendNotifications();"/> <span id="please_wait_container" style="display:none; margin-left: 5px;"> <img src="<?php echo GFCommon::get_base_url(); ?> /images/loading.gif"> <?php _e("Resending...", "gravityforms"); ?> </span> </div> <div id="resend_notifications_close" style="display:none;margin:10px 0 0;"> <input type="button" name="resend_notifications_close_button" value="<?php _e("Close Window", "gravityforms"); ?> " class="button" style="" onclick="closeModal(true);"/> </div> </div> </div> </div> <!-- / Resend Notifications --> <div id="print_modal_container" style="display:none;"> <div id="print_container"> <div id="post_tag" class="tagsdiv"> <div id="print_options"> <p class="description"><?php _e("Print all of the selected entries at once.", "gravityforms"); ?> </p> <?php if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) { ?> <input type="checkbox" name="gform_print_notes" value="print_notes" checked="checked" id="gform_print_notes" /> <label for="gform_print_notes"><?php _e("Include notes", "gravityforms"); ?> </label> <br /><br /> <?php } ?> <input type="checkbox" name="gform_print_page_break" value="print_notes" checked="checked" id="gform_print_page_break" /> <label for="gform_print_page_break"><?php _e("Add page break between entries", "gravityforms"); ?> </label> <br /><br /> <input type="button" value="<?php _e("Print", "gravityforms"); ?> " class="button" onclick="BulkPrint();" /> </div> </div> </div> </div> <!-- / Print --> </div> <?php //Displaying paging links if appropriate if ($page_links) { ?> <div class="tablenav-pages"> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count); ?> </span> <?php echo $page_links; ?> </div> <?php } ?> <div class="clear"></div> </div> <table class="widefat fixed" cellspacing="0"> <thead> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column"><input type="checkbox" class="headercb" /></th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" > </th> <?php } foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" align="right" width="50"> <a title="<?php _e("Select Columns", "gravityforms"); ?> " href="<?php echo site_url(); ?> /?gf_page=select_columns&id=<?php echo $form_id; ?> &TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><?php _e("Edit", "gravityforms"); ?> </a> </th> </tr> </thead> <tfoot> <tr> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" > </th> <?php } foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } ?> <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php echo $field_id; ?> ', '<?php echo $dir; ?> ', <?php echo $form_id; ?> , '<?php echo $search; ?> ', '<?php echo $star; ?> ', '<?php echo $read; ?> ');" style="cursor:pointer;"><?php echo esc_html($field_info["label"]); ?> </th> <?php } ?> <th scope="col" style="width:15px;"> <a href="<?php echo site_url(); ?> /?gf_page=select_columns&id=<?php echo $form_id; ?> &TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><?php _e("Edit", "gravityforms"); ?> </a> </th> </tr> </tfoot> <tbody class="list:gf_entry user-list" id="gf_entry_list"> <?php if (sizeof($leads) > 0) { $field_ids = array_keys($columns); foreach ($leads as $lead) { ?> <tr id="lead_row_<?php echo $lead["id"]; ?> " class='author-self status-inherit <?php echo $lead["is_read"] ? "" : "lead_unread"; ?> <?php echo $lead["is_starred"] ? "lead_starred" : ""; ?> <?php echo in_array($filter, array("trash", "spam")) ? "lead_spam_trash" : ""; ?> ' valign="top"> <th scope="row" class="check-column"> <input type="checkbox" name="lead[]" value="<?php echo $lead["id"]; ?> " /> </th> <?php if (!in_array($filter, array("spam", "trash"))) { ?> <td > <img id="star_image_<?php echo $lead["id"]; ?> " src="<?php echo GFCommon::get_base_url(); ?> /images/star<?php echo intval($lead["is_starred"]); ?> .png" onclick="ToggleStar(this, <?php echo $lead["id"]; ?> );" /> </td> <?php } $is_first_column = true; $nowrap_class = "entry_nowrap"; foreach ($field_ids as $field_id) { $value = RGForms::get($field_id, $lead); //filtering lead value $value = apply_filters("gform_get_field_value", $value, $lead, RGFormsModel::get_field($form, $field_id)); $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"]; switch ($input_type) { case "checkbox": $value = ""; //if this is the main checkbox field (not an input), display a comma separated list of all inputs if (absint($field_id) == $field_id) { $lead_field_keys = array_keys($lead); $items = array(); foreach ($lead_field_keys as $input_id) { if (is_numeric($input_id) && absint($input_id) == $field_id) { $items[] = GFCommon::selection_display(rgar($lead, $input_id), null, $lead["currency"], false); } } $value = GFCommon::implode_non_blank(", ", $items); } else { $value = ""; //looping through lead detail values trying to find an item identical to the column label. Mark with a tick if found. $lead_field_keys = array_keys($lead); foreach ($lead_field_keys as $input_id) { //mark as a tick if input label (from form meta) is equal to submitted value (from lead) if (is_numeric($input_id) && absint($input_id) == absint($field_id)) { if ($lead[$input_id] == $columns[$field_id]["label"]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; } else { $field = RGFormsModel::get_field($form, $field_id); if (rgar($field, "enableChoiceValue") || rgar($field, "enablePrice")) { foreach ($field["choices"] as $choice) { if ($choice["value"] == $lead[$field_id]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; break; } else { if ($field["enablePrice"]) { $ary = explode("|", $lead[$field_id]); $val = count($ary) > 0 ? $ary[0] : ""; $price = count($ary) > 1 ? $ary[1] : ""; if ($val == $choice["value"]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; break; } } } } } } } } } break; case "post_image": list($url, $title, $caption, $description) = rgexplode("|:|", $value, 4); if (!empty($url)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($url); $value = "<a href='" . esc_attr($url) . "' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "post_category": $ary = explode(":", $value); $cat_name = count($ary) > 0 ? $ary[0] : ""; $value = $cat_name; break; case "fileupload": $file_path = $value; if (!empty($file_path)) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = self::get_icon_url($file_path); $file_path = esc_attr($file_path); $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>"; } break; case "source_url": $value = "<a href='" . esc_attr($lead["source_url"]) . "' target='_blank' alt='" . esc_attr($lead["source_url"]) . "' title='" . esc_attr($lead["source_url"]) . "'>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>"; break; case "textarea": case "post_content": case "post_excerpt": $value = esc_html($value); break; case "date_created": case "payment_date": $value = GFCommon::format_date($value, false); break; case "date": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::date_display($value, $field["dateFormat"]); break; case "radio": case "select": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::selection_display($value, $field, $lead["currency"]); break; case "number": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::format_number($value, rgar($field, "numberFormat")); break; case "total": case "payment_amount": $value = GFCommon::to_money($value, $lead["currency"]); break; case "created_by": if (!empty($value)) { $userdata = get_userdata($value); $value = $userdata->user_login; } break; default: $value = esc_html($value); } $value = apply_filters("gform_entries_field_value", $value, $form_id, $field_id, $lead); $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead["id"]}{$search_qs}{$sort_qs}{$dir_qs}&paged=" . ($page_index + 1); if ($is_first_column) { ?> <td class="column-title" > <a href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php echo $value; ?> </a> <div class="row-actions"> <?php switch ($filter) { case "trash": ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="edit"> <a class='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=active&entry=<?php echo $lead["id"]; ?> ' title="<?php echo _e("Restore this entry", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Restore", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="delete"> <?php $delete_link = '<a class="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '" href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>'; echo apply_filters("gform_delete_entry_link", $delete_link); ?> </span> <?php } break; case "spam": ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="unspam"> <a class='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=unspam&entry=<?php echo $lead["id"]; ?> ' title="<?php echo _e("Mark this entry as not spam", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Not Spam", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="delete"> <?php $delete_link = '<a class="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '" href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>'; echo apply_filters("gform_delete_entry_link", $delete_link); ?> </span> <?php } break; default: ?> <span class="edit"> <a title="<?php _e("View this entry", "gravityforms"); ?> " href="admin.php?page=gf_entries&view=entry&id=<?php echo $form_id; ?> &lid=<?php echo $lead["id"] . $search_qs . $sort_qs . $dir_qs; ?> &paged=<?php echo $page_index + 1; ?> "><?php _e("View", "gravityforms"); ?> </a> | </span> <span class="edit"> <a id="mark_read_<?php echo $lead["id"]; ?> " title="Mark this entry as read" href="javascript:ToggleRead(<?php echo $lead["id"]; ?> );" style="display:<?php echo $lead["is_read"] ? "none" : "inline"; ?> ;"><?php _e("Mark read", "gravityforms"); ?> </a><a id="mark_unread_<?php echo $lead["id"]; ?> " title="<?php _e("Mark this entry as unread", "gravityforms"); ?> " href="javascript:ToggleRead(<?php echo $lead["id"]; ?> );" style="display:<?php echo $lead["is_read"] ? "inline" : "none"; ?> ;"><?php _e("Mark unread", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") || GFCommon::has_akismet() ? "|" : ""; ?> </span> <?php if (GFCommon::has_akismet()) { ?> <span class="spam"> <a class='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=spam&entry=<?php echo $lead["id"]; ?> ' title="<?php _e("Mark this entry as spam", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Spam", "gravityforms"); ?> </a> <?php echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : ""; ?> </span> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <span class="trash"> <a class='delete:gf_entry_list:lead_row_<?php echo $lead["id"]; ?> ::status=trash&entry=<?php echo $lead["id"]; ?> ' title="<?php _e("Move this entry to the trash", "gravityforms"); ?> " href="<?php echo wp_nonce_url("?page=gf_entries", "gf_delete_entry"); ?> "><?php _e("Trash", "gravityforms"); ?> </a> </span> <?php } break; } do_action("gform_entries_first_column_actions", $form_id, $field_id, $value, $lead, $query_string); ?> </div> <?php do_action("gform_entries_first_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } else { ?> <td class="<?php echo $nowrap_class; ?> "> <?php echo $value; ?> <?php do_action("gform_entries_column", $form_id, $field_id, $value, $lead, $query_string); ?> </td> <?php } $is_first_column = false; } ?> <td> </td> </tr> <?php } } else { $message = ""; $column_count = sizeof($columns) + 3; switch ($filter) { case "unread": $message = __("This form does not have any unread entries.", "gravityforms"); break; case "star": $message = __("This form does not have any starred entries.", "gravityforms"); break; case "spam": $message = __("This form does not have any spam.", "gravityforms"); $column_count = sizeof($columns) + 2; break; case "trash": $message = __("This form does not have any entries in the trash.", "gravityforms"); $column_count = sizeof($columns) + 2; break; default: $message = __("This form does not have any entries yet.", "gravityforms"); } ?> <tr> <td colspan="<?php echo $column_count; ?> " style="padding:20px;"><?php echo $message; ?> </td> </tr> <?php } ?> </tbody> </table> <div class="clear"></div> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action2"> <?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action2" id="bulk_action2"> <option value=''><?php _e(" Bulk action ", "gravityforms"); ?> </option> <?php switch ($filter) { case "trash": ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; case "spam": ?> <option value='unspam'><?php _e("Not Spam", "gravityforms"); ?> </option> <?php if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='delete'><?php _e("Delete Permanently", "gravityforms"); ?> </option> <?php } break; default: ?> <option value='mark_read'><?php _e("Mark as Read", "gravityforms"); ?> </option> <option value='mark_unread'><?php _e("Mark as Unread", "gravityforms"); ?> </option> <option value='add_star'><?php _e("Add Star", "gravityforms"); ?> </option> <option value='remove_star'><?php _e("Remove Star", "gravityforms"); ?> </option> <option value='resend_notifications'><?php _e("Resend Notifications", "gravityforms"); ?> </option> <option value='print'><?php _e("Print", "gravityforms"); ?> </option> <?php if (GFCommon::has_akismet()) { ?> <option value='spam'><?php _e("Spam", "gravityforms"); ?> </option> <?php } if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { ?> <option value='trash'><?php _e("Trash", "gravityforms"); ?> </option> <?php } } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action2\');" />'; echo apply_filters("gform_entry_apply_button", $apply_button); ?> </div> <?php //Displaying paging links if appropriate if ($page_links) { ?> <div class="tablenav-pages"> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count); ?> </span> <?php echo $page_links; ?> </div> <?php } ?> <div class="clear"></div> </div> </form> </div> <?php }
function make_directory($atts) { global $wpdb, $wp_rewrite, $post, $wpdb, $directory_shown, $kws_gf_scripts, $kws_gf_styles; if (!class_exists('GFEntryDetail')) { @(require_once GFCommon::get_base_path() . "/entry_detail.php"); } if (!class_exists('GFCommon')) { @(require_once WP_PLUGIN_DIR . "/gravityforms/common.php"); } if (!class_exists('RGFormsModel')) { @(require_once WP_PLUGIN_DIR . "/gravityforms/forms_model.php"); } //quit if version of wp is not supported if (!class_exists('GFCommon') || !GFCommon::ensure_wp_version()) { return; } ob_start(); // Using ob_start() allows us to use echo instead of $output .= foreach ($atts as $key => $att) { if (strtolower($att) == 'false') { $atts[$key] = false; } if (strtolower($att) == 'true') { $atts[$key] = true; } } $atts['approved'] = isset($atts['approved']) ? $atts['approved'] : -1; if (!empty($atts['lightboxsettings']) && is_string($atts['lightboxsettings'])) { $atts['lightboxsettings'] = explode(',', $atts['lightboxsettings']); } $options = self::directory_defaults($atts); // Make sure everything is on the same page. if (is_array($options['lightboxsettings'])) { foreach ($options['lightboxsettings'] as $key => $value) { if (is_numeric($key)) { $options['lightboxsettings']["{$value}"] = $value; unset($options['lightboxsettings']["{$key}"]); } } } extract($options); $form_id = $form; $form = RGFormsModel::get_form_meta($form_id); if (empty($form)) { return; } $sort_field = empty($_GET["sort"]) ? $sort : $_GET["sort"]; $sort_direction = empty($_GET["dir"]) ? $dir : $_GET["dir"]; $search_query = !empty($_GET["gf_search"]) ? $_GET["gf_search"] : null; $start_date = !empty($_GET["start_date"]) ? $_GET["start_date"] : $start_date; $end_date = !empty($_GET["end_date"]) ? $_GET["end_date"] : $end_date; $page_index = empty($_GET["page"]) ? $startpage - 1 : intval($_GET["page"]) - 1; $star = isset($_GET["star"]) && is_numeric($_GET["star"]) ? intval($_GET["star"]) : null; $read = isset($_GET["read"]) && is_numeric($_GET["read"]) ? intval($_GET["read"]) : null; $first_item_index = $page_index * $page_size; $link_params = array(); if (!empty($page_index)) { $link_params['page'] = $page_index; } $formaction = remove_query_arg(array('gf_search', 'sort', 'dir', 'page', 'edit'), add_query_arg($link_params)); $tableclass .= !empty($jstable) ? ' tablesorter' : ''; $title = $form["title"]; $sort_field_meta = RGFormsModel::get_field($form, $sort_field); $is_numeric = $sort_field_meta["type"] == "number"; $columns = RGFormsModel::get_grid_columns($form_id, true); $approvedcolumn = false; if ($approved || !empty($smartapproval) && $approved === -1) { $approvedcolumn = self::get_approved_column($form); } if (!empty($smartapproval) && $approved === -1 && !empty($approvedcolumn)) { $approved = true; // If there is an approved column, turn on approval } else { $approved = false; // Otherwise, show entries as normal. } $entrylinkcolumns = self::get_entrylink_column($form, $entry); $adminonlycolumns = self::get_admin_only($form); // // Show only a single entry // if (!empty($entry) && ($detail = self::process_lead_detail(true, $entryback, $showadminonly, $adminonlycolumns, $approvedcolumn, $options, $entryonly))) { echo $detail; if (!empty($entryonly)) { do_action('kws_gf_after_directory', do_action('kws_gf_after_directory_form_' . $form_id, $form, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date))); $content = ob_get_contents(); // Get the output ob_end_clean(); // Clear the cache // If the form is form #2, two filters are applied: `kws_gf_directory_output_2` and `kws_gf_directory_output` $content = apply_filters('kws_gf_directory_output', apply_filters('kws_gf_directory_output_' . $form_id, self::pseudo_filter($content, $directoryview))); return $content; } } // // Or start to generate the directory // $leads = GFDirectory::get_leads($form_id, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date, 'active', $approvedcolumn, $limituser); # if(!$showadminonly) { $columns = self::remove_admin_only($columns, $adminonlycolumns, $approvedcolumn, false, false, $form); $leads = self::remove_admin_only($leads, $adminonlycolumns, $approvedcolumn, true, false, $form); # } // Allow lightbox to determine whether showadminonly is valid without passing a query string in URL if ($entry === true && !empty($lightboxsettings['entry'])) { if (get_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly') != $showadminonly) { set_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly', $showadminonly, 60 * 60); } } else { delete_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly'); } // Get a list of query args for the pagination links if (!empty($search_query)) { $args["gf_search"] = urlencode($search_query); } if (!empty($sort_field)) { $args["sort"] = $sort_field; } if (!empty($sort_direction)) { $args["dir"] = $sort_direction; } if (!empty($star)) { $args["star"] = $star; } if ($page_size > 0) { $lead_count = self::get_lead_count($form_id, $search_query, $star, $read, $approvedcolumn, $approved, $leads, $start_date, $end_date, $limituser); $page_links = array('base' => @add_query_arg('page', '%#%'), 'format' => '&page=%#%', 'add_args' => $args, 'prev_text' => $prev_text, 'next_text' => $next_text, 'total' => ceil($lead_count / $page_size), 'current' => $page_index + 1, 'show_all' => $pagelinksshowall); $page_links = apply_filters('kws_gf_results_pagination', $page_links); $page_links = paginate_links($page_links); } else { // Showing all results $page_links = false; $lead_count = sizeof($leads); } if (!isset($directory_shown)) { $directory_shown = true; if (!empty($lightboxsettings['images']) || !empty($lightboxsettings['entry'])) { if (!is_array($kws_gf_scripts) || !in_array('colorbox', $kws_gf_scripts)) { wp_print_scripts(array("colorbox")); } if (!is_array($kws_gf_styles) || !in_array('colorbox', $kws_gf_styles)) { wp_print_styles(array("colorbox")); } } if (!empty($jstable)) { ?> <?php if (!in_array('tablesorter-blue', $kws_gf_styles)) { ?> <link href="<?php echo WP_PLUGIN_URL . "/" . basename(dirname(__FILE__)); ?> /tablesorter/themes/blue/style.css" rel="stylesheet" /> <?php } if (!in_array('tablesorter-min', $kws_gf_scripts)) { ?> <script type="text/javascript" src="<?php echo WP_PLUGIN_URL . "/" . basename(dirname(__FILE__)); ?> /tablesorter/jquery.tablesorter.min.js"></script> <?php } } ?> <script type="text/javascript"> <?php if (!empty($lightboxsettings['images']) || !empty($lightboxsettings['entry'])) { ?> var tb_pathToImage = "<?php echo site_url('/wp-includes/js/thickbox/loadingAnimation.gif'); ?> "; var tb_closeImage = "<?php echo site_url('/wp-includes/js/thickbox/tb-close.png'); ?> "; var tb_height = 600; <?php } ?> function not_empty(variable) { if(variable == '' || variable == null || variable == 'undefined' || typeof(variable) == 'undefined') { return false; } else { return true; } } <?php if (!empty($jstable)) { ?> jQuery(document).ready(function($) { jQuery('.tablesorter').each(function() { $(this).tablesorter(<?php echo apply_filters('kws_gf_directory_tablesorter_options', ''); ?> ); }); }); <?php } else { if (isset($jssearch) && $jssearch) { ?> function Search(search, sort_field_id, sort_direction){ if(not_empty(search)) { var search = "&gf_search=" + encodeURIComponent(search); } else { var search = ''; } if(not_empty(sort_field_id)) { var sort = "&sort=" + sort_field_id; } else { var sort = ''; } if(not_empty(sort_direction)) { var dir = "&dir=" + sort_direction; } else { var dir = ''; } var page = '<?php if ($wp_rewrite->using_permalinks()) { echo '?'; } else { echo '&'; } ?> page='+<?php echo isset($_GET['page']) ? intval($_GET['page']) : '"1"'; ?> ; var location = "<?php echo get_permalink($post->ID); ?> "+page+search+sort+dir; document.location = location; } <?php } } ?> </script> <link rel="stylesheet" href="<?php echo GFCommon::get_base_url(); ?> /css/admin.css" type="text/css" /> <?php } ?> <div class="wrap"> <?php if ($icon) { ?> <img alt="<?php _e("Gravity Forms", "gravity-forms-addons"); ?> " src="<?php echo GFCommon::get_base_url(); ?> /images/gravity-title-icon-32.png" style="float:left; margin:15px 7px 0 0;"/><?php } ?> <?php if ($titleshow) { ?> <h2><?php echo $titleprefix . $title; ?> </h2><?php } ?> <?php if ($search && ($lead_count > 0 || !empty($_GET['gf_search']))) { ?> <form id="lead_form" method="get" action="<?php echo $formaction; ?> "> <p class="search-box"> <label class="hidden" for="lead_search"><?php _e("Search Entries:", "gravity-forms-addons"); ?> </label> <input type="text" name="gf_search" id="lead_search" value="<?php echo $search_query; ?> "<?php if ($searchtabindex) { echo ' tabindex="' . intval($searchtabindex) . '"'; } ?> /> <?php if (!empty($_GET['p'])) { ?> <input name="p" type="hidden" value="<?php echo esc_html($_GET['p']); ?> " /> <?php } ?> <input type="submit" class="button" id="lead_search_button" value="<?php _e("Search", "gravity-forms-addons"); ?> "<?php if ($searchtabindex) { echo ' tabindex="' . intval($searchtabindex++) . '"'; } ?> /> </p> </form> <?php } //Displaying paging links if appropriate if ($lead_count > 0 && $showcount || $page_links) { if ($lead_count == 0) { $first_item_index--; } ?> <div class="tablenav"> <div class="tablenav-pages"> <?php if ($showcount) { if ($first_item_index + $page_size > $lead_count || $page_size <= 0) { $second_part = $lead_count; } else { $second_part = $first_item_index + $page_size; } ?> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravity-forms-addons"), $first_item_index + 1, $second_part, $lead_count); ?> </span> <?php } if ($page_links) { echo $page_links; } ?> </div> <div class="clear"></div> </div> <?php } do_action('kws_gf_before_directory_after_nav', do_action('kws_gf_before_directory_after_nav_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date))); ?> <table class="<?php echo $tableclass; ?> " cellspacing="0"<?php if (!empty($tablewidth)) { echo ' width="' . $tablewidth . '"'; } echo $tablestyle ? ' style="' . $tablestyle . '"' : ''; ?> > <?php if ($thead) { ?> <thead> <tr> <?php $addressesExist = false; foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } if (is_array($adminonlycolumns) && !in_array($field_id, $adminonlycolumns) || is_array($adminonlycolumns) && in_array($field_id, $adminonlycolumns) && $showadminonly || !$showadminonly) { if ($field_info['type'] == 'address' && $appendaddress && $hideaddresspieces) { $addressesExist = true; continue; } ?> <?php if (isset($jssearch) && $jssearch && !isset($jstable)) { ?> <th scope="col" class="manage-column" onclick="Search('<?php echo $search_query; ?> ', '<?php echo $field_id; ?> ', '<?php echo $dir; ?> ');" style="cursor:pointer;"><?php } elseif (isset($jstable) && $jstable) { ?> <th scope="col" class="manage-column"> <?php } else { ?> <th scope="col" class="manage-column"> <a href="<?php $searchpage = isset($_GET['page']) ? intval($_GET['page']) : 1; echo add_query_arg(array('gf_search' => $search_query, 'sort' => $field_id, 'dir' => $dir, 'page' => $searchpage), get_permalink($post->ID)); ?> "><?php } if ($field_info['type'] == 'id' && $entry) { $label = $entryth; } else { $label = $field_info["label"]; } $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($label), $label))); echo esc_html($label); if (!isset($jssearch) || !$jssearch && empty($jstable)) { ?> </a> <?php } ?> </th> <?php } } if ($appendaddress && $addressesExist) { ?> <th scope="col" class="manage-column" onclick="Search('<?php echo $search_query; ?> ', '<?php echo $field_id; ?> ', '<?php echo $dir; ?> ');" style="cursor:pointer;"><?php $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address')); echo esc_html($label); ?> </th> <?php } ?> </tr> </thead> <?php } ?> <tbody class="list:user user-list"> <?php if (sizeof($leads) > 0 && $lead_count > 0) { $field_ids = array_keys($columns); $evenodd = ''; foreach ($leads as $lead) { flush(); echo "\n\t\t\t\t\t\t"; $address = array(); $celltitle = ''; if ($approved) { $leadapproved = self::check_approval($lead, $approvedcolumn); } if (isset($leadapproved) && $leadapproved && $approved || !$approved) { $target = ''; if ($linknewwindow && empty($lightboxsettings['images'])) { $target = ' target="_blank"'; } $valignattr = ''; if ($valign && $directoryview == 'table') { $valignattr = ' valign="' . $valign . '"'; } $nofollow = ''; if ($nofollowlinks) { $nofollow = ' rel="nofollow"'; } $evenodd = $evenodd == ' odd' ? ' even' : ' odd'; $evenodd = apply_filters('kws_gf_directory_evenodd', $evenodd); ?> <tr<?php if ($showrowids) { ?> id="lead_row_<?php echo $lead["id"]; ?> " <?php } ?> class='<?php echo trim($rowclass . $evenodd); echo $lead["is_starred"] ? " featured" : ""; ?> '<?php echo $rowstyle ? ' style="' . $rowstyle . '"' : ''; echo $valignattr; ?> ><?php $class = ""; $is_first_column = true; $full_address = ''; foreach ($field_ids as $field_id) { $lightboxclass = ''; if (!empty($lightboxsettings['images'])) { $lightboxclass = ' class="thickbox colorbox lightbox"'; } $value = isset($lead[$field_id]) ? $lead[$field_id] : ''; $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"]; switch ($input_type) { case "address": $address['id'] = floor((int) $field_id); $address[$field_id] = $value; if ($hideaddresspieces) { $value = NULL; break; } break; case "checkbox": $value = ""; //looping through lead detail values trying to find an item identical to the column label. Mark with a tick if found. $lead_field_keys = array_keys($lead); foreach ($lead_field_keys as $input_id) { //mark as a tick if input label (from form meta) is equal to submitted value (from lead) if (is_numeric($input_id) && absint($input_id) == absint($field_id) && $lead[$input_id] == $columns[$field_id]["label"]) { $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>"; } } break; case "fileupload": case "post_image": $valueArray = explode("|:|", $value); @(list($url, $title, $caption, $description) = $valueArray); $size = ''; if (!empty($url)) { //displaying thumbnail (if file is an image) or an icon based on the extension $icon = self::get_icon_url($url); if (!preg_match('/icon\\_image\\.gif/ism', $icon)) { $src = $icon; if (!empty($getimagesize)) { $size = @getimagesize($src); $img = "<img src='{$src}' {$size[3]}/>"; } else { $size = false; $img = "<img src='{$src}' />"; } } else { // No thickbox for non-images please switch (strtolower(trim($postimage))) { case 'image': $src = $url; break; case 'icon': default: $src = $icon; break; } if (!empty($getimagesize)) { $size = @getimagesize($src); } else { $size = false; } } $img = array('src' => $src, 'size' => $size, 'title' => $title, 'caption' => $caption, 'description' => $description, 'url' => esc_attr($url), 'code' => isset($size[3]) ? "<img src='{$src}' {$size[3]} />" : "<img src='{$src}' />"); $img = apply_filters('kws_gf_directory_lead_image', apply_filters('kws_gf_directory_lead_image_' . $postimage, apply_filters('kws_gf_directory_lead_image_' . $lead['id'], $img))); if (in_array('images', $lightboxsettings) || !empty($lightboxsettings['images'])) { $lightboxclass .= ' rel="directory_all directory_images"'; } $value = "<a href='{$url}'{$target}{$lightboxclass}>{$img['code']}</a>"; } break; case "source_url": if (in_array('urls', $lightboxsettings) || !empty($lightboxsettings['urls'])) { $lightboxclass .= ' rel="directory_all directory_urls"'; } if ($linkwebsite) { $value = "<a href='" . esc_attr($lead["source_url"]) . "'{$target}{$lightboxclass} title='" . esc_attr($lead["source_url"]) . "'{$nofollow}>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>"; } else { $value = esc_attr(GFCommon::truncate_url($lead["source_url"])); } break; case "textarea": case "post_content": case "post_excerpt": if ($fulltext) { $long_text = $value = ""; if (isset($lead[$field_id]) && strlen($lead[$field_id]) >= GFORMS_MAX_FIELD_LENGTH) { $long_text = get_gf_field_value_long($lead["id"], $field_id); } if (isset($lead[$field_id])) { $value = !empty($long_text) ? $long_text : $lead[$field_id]; } if ($wpautop) { $value = wpautop($value); } } else { $value = esc_html($value); } break; case "date_created": $value = GFCommon::format_date($value, false, $datecreatedformat); break; case "date": $field = RGFormsModel::get_field($form, $field_id); if ($dateformat) { $value = GFCommon::date_display($value, $dateformat); } else { $value = GFCommon::date_display($value, $field["dateFormat"]); } break; case "id": $linkClass = ''; break; case "list": $field = RGFormsModel::get_field($form, $field_id); $value = GFCommon::get_lead_field_display($field, $value); break; default: $input_type = 'text'; if (is_email($value) && $linkemail) { $value = "<a href='mailto:{$value}'{$nofollow}>{$value}</a>"; } elseif (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $value) && $linkwebsite) { $href = $value; if (!empty($lightboxsettings['images'])) { if (in_array('urls', $lightboxsettings) || !empty($lightboxsettings['urls'])) { $lightboxclass .= ' rel="directory_all directory_urls"'; } $linkClass = $lightboxclass; } else { $linkClass = isset($linkClass) ? $linkClass : ''; } if ($truncatelink) { $value = apply_filters('kws_gf_directory_anchor_text', $value); } $value = "<a href='{$href}'{$nofollow}{$target}{$linkClass}>{$value}</a>"; } else { $value = esc_html($value); } } if ($is_first_column) { echo "\n"; } if ($value !== NULL) { if (isset($columns["{$field_id}"]['label']) && $hovertitle || $directoryview !== 'table') { $celltitle = ' title="' . esc_html(apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($columns["{$field_id}"]['label']), $columns["{$field_id}"]['label'])))) . '"'; } else { $celltitle = ''; } echo "\t\t\t\t\t\t\t"; ?> <td<?php echo empty($class) ? ' class="' . $input_type . '"' : ' class="' . $input_type . ' ' . $class . '"'; echo $valignattr; echo $celltitle; ?> ><?php $value = empty($value) ? ' ' : $value; if (isset($entrylinkcolumns[floor($field_id)])) { $type = $entrylinkcolumns[floor($field_id)]; if ($input_type == 'id' && $entry) { $linkvalue = $entrylink; } elseif ($type === 'label') { $linkvalue = $columns["{$field_id}"]['label']; } elseif (!empty($type) && $type !== 'on') { $linkvalue = str_replace('%value%', $value, $type); } else { $linkvalue = $value; } $value = self::make_entry_link($options, $linkvalue, $lead['id'], $form_id, $field_id); } $value = apply_filters('kws_gf_directory_value', apply_filters('kws_gf_directory_value_' . $input_type, apply_filters('kws_gf_directory_value_' . $field_id, $value))); echo $value; ?> </td><?php echo "\n"; $is_first_column = false; } } if (is_array($address) && !empty($address) && $appendaddress) { $address = apply_filters('kws_gf_directory_td_address', $address, $linknewwindow); if (!is_array($address)) { echo "\t\t\t\t\t\t\t" . '<td class="address" title="' . esc_html(apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address'))) . '">' . $address . '</td>'; } } ?> </tr> <?php } } } else { ?> <tr> <td colspan="<?php echo sizeof($columns); ?> " style="padding:20px;"><?php if ($search_query) { _e("This search returned no results.", "gravity-forms-addons"); } elseif ($limituser) { _e("This form does not have any visible entries.", "gravity-forms-addons"); } else { _e("This form does not have any entries yet.", "gravity-forms-addons"); } ?> </td> </tr> <?php } ?> </tbody> <?php if ($tfoot) { if (isset($jssearch) && $jssearch && !isset($jstable)) { $th = '<th scope="col" class="manage-column" onclick="Search(\'' . $search_query . '\', \'' . $field_id . '\', \'' . $dir . '\');" style="cursor:pointer;">'; } else { $th = '<th scope="col" class="manage-column">'; } ?> <tfoot> <tr> <?php $addressesExist = false; foreach ($columns as $field_id => $field_info) { $dir = $field_id == 0 ? "DESC" : "ASC"; //default every field so ascending sorting except date_created (id=0) if ($field_id == $sort_field) { //reverting direction if clicking on the currently sorted field $dir = $sort_direction == "ASC" ? "DESC" : "ASC"; } if (is_array($adminonlycolumns) && !in_array($field_id, $adminonlycolumns) || is_array($adminonlycolumns) && in_array($field_id, $adminonlycolumns) && $showadminonly || !$showadminonly) { if ($field_info['type'] == 'address' && $appendaddress && $hideaddresspieces) { $addressesExist = true; continue; } echo $th; if ($field_info['type'] == 'id' && $entry) { $label = $entryth; } else { $label = $field_info["label"]; } $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($label), $label))); echo esc_html($label); ?> </th> <?php } } if ($appendaddress && $addressesExist) { ?> <th scope="col" class="manage-column" onclick="Search('<?php echo $search_query; ?> ', '<?php echo $field_id; ?> ', '<?php echo $dir; ?> ');" style="cursor:pointer;"><?php $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address')); echo esc_html($label); ?> </th> <?php } ?> </tr> <?php if (!empty($credit)) { self::get_credit_link(sizeof($columns)); } ?> </tfoot> <?php } ?> </table> <?php do_action('kws_gf_after_directory_before_nav', do_action('kws_gf_after_directory_before_nav_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date))); //Displaying paging links if appropriate if ($lead_count > 0 && $showcount || $page_links) { if ($lead_count == 0) { $first_item_index--; } ?> <div class="tablenav"> <div class="tablenav-pages"> <?php if ($showcount) { if ($first_item_index + $page_size > $lead_count || $page_size <= 0) { $second_part = $lead_count; } else { $second_part = $first_item_index + $page_size; } ?> <span class="displaying-num"><?php printf(__("Displaying %d - %d of %d", "gravity-forms-addons"), $first_item_index + 1, $second_part, $lead_count); ?> </span> <?php } if ($page_links) { echo $page_links; } ?> </div> <div class="clear"></div> </div> <?php } ?> </div> <?php if (empty($credit)) { echo "\n" . '<!-- Directory generated by Gravity Forms Directory & Addons : http://wordpress.org/extend/plugins/gravity-forms-addons/ -->' . "\n"; } do_action('kws_gf_after_directory', do_action('kws_gf_after_directory_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date))); $content = ob_get_contents(); // Get the output ob_end_clean(); // Clear the cache // If the form is form #2, two filters are applied: `kws_gf_directory_output_2` and `kws_gf_directory_output` $content = apply_filters('kws_gf_directory_output', apply_filters('kws_gf_directory_output_' . $form_id, self::pseudo_filter($content, $directoryview))); return $content; // Return it! }
public static function get_lead_field_display($field, $value) { switch (RGFormsModel::get_input_type($field)) { case "name": if (is_array($value)) { $prefix = trim($value[$field["id"] . ".2"]); $first = trim($value[$field["id"] . ".3"]); $last = trim($value[$field["id"] . ".6"]); $suffix = trim($value[$field["id"] . ".8"]); $name = $prefix; $name .= !empty($name) && !empty($first) ? " {$first}" : $first; $name .= !empty($name) && !empty($last) ? " {$last}" : $last; $name .= !empty($name) && !empty($suffix) ? " {$suffix}" : $suffix; return $name; } else { return $value; } break; case "address": if (is_array($value)) { $street_value = trim($value[$field["id"] . ".1"]); $street2_value = trim($value[$field["id"] . ".2"]); $city_value = trim($value[$field["id"] . ".3"]); $state_value = trim($value[$field["id"] . ".4"]); $zip_value = trim($value[$field["id"] . ".5"]); $country_value = trim($value[$field["id"] . ".6"]); $address = $street_value; $address .= !empty($address) && !empty($street2_value) ? " {$street2_value}" : $street2_value; $address .= !empty($address) && (!empty($city_value) || !empty($state_value)) ? "<br />{$city_value}" : $city_value; $address .= !empty($address) && !empty($city_value) && !empty($state_value) ? ", {$state_value}" : $state_value; $address .= !empty($address) && !empty($zip_value) ? " {$zip_value}" : $zip_value; $address .= !empty($address) && !empty($country_value) ? "<br />{$country_value}" : $country_value; //adding map link if (!empty($address)) { $address_qs = str_replace("<br />", " ", $address); //replacing <br/> with spaces $address_qs = urlencode($address_qs); $address .= "<br/><a href='http://maps.google.com/maps?q={$address_qs}' target='_blank' class='map-it-link'>Map It</a>"; } return $address; } else { return ""; } break; case "email": return GFCommon::is_valid_email($value) ? "<a href='mailto:{$value}'>{$value}</a>" : $value; break; case "website": return GFCommon::is_valid_url($value) ? "<a href='{$value}' target='_blank'>{$value}</a>" : $value; break; case "checkbox": if (is_array($value)) { foreach ($value as $key => $item) { if (!empty($item)) { $items .= "<li>{$item}</li>"; } } return empty($items) ? "" : "<ul class='bulleted'>{$items}</ul>"; } else { return $value; } break; case "post_image": list($url, $title, $caption, $description) = explode("|:|", $value); if (!empty($url)) { $url = str_replace(" ", "%20", $url); $value = "<a href='{$url}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$url}' width='100' /></a>"; $value .= !empty($title) ? "<div>Title: {$title}</div>" : ""; $value .= !empty($caption) ? "<div>Caption: {$caption}</div>" : ""; $value .= !empty($description) ? "<div>Description: {$description}</div>" : ""; } return $value; case "fileupload": $file_path = $value; if (!empty($file_path)) { $info = pathinfo($file_path); $file_path = esc_attr(str_replace(" ", "%20", $file_path)); $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'>" . $info["basename"] . "</a>"; } return $value; break; case "date": return GFCommon::date_display($value, $field["dateFormat"]); break; default: return nl2br($value); break; } }
case "textarea": case "post_content": case "post_excerpt": $value = wpautop($value); break; case "post_category": $value = GFCommon::prepare_post_category_value($lead[$field_id], $field); break; case "date_created": $value = GFCommon::format_date($lead['date_created'], true, apply_filters('kws_gf_date_format', '')); break; case "date": if ($dateformat) { $value = GFCommon::date_display($value, $dateformat); } else { $value = GFCommon::date_display($value, $field["dateFormat"]); } break; case "id": $linkClass = ''; break; case "list": $value = GFCommon::get_lead_field_display($field, $value); break; default: $input_type = 'text'; if (is_email($value) && $linkemail) { $value = "<a href='mailto:{$value}'{$nofollow}>{$value}</a>"; } elseif (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $value) && $linkwebsite) { $href = $value; if (!empty($lightboxsettings['images'])) {