function get_views() { $status_links = array(); $post_status = empty($_REQUEST['post_status']) ? '' : $_REQUEST['post_status']; // Inbox Flamingo_Inbound_Message::find(array('post_status' => 'any')); $posts_in_inbox = Flamingo_Inbound_Message::$found_items; $inbox = sprintf(_nx('Inbox <span class="count">(%s)</span>', 'Inbox <span class="count">(%s)</span>', $posts_in_inbox, 'posts', 'flamingo'), number_format_i18n($posts_in_inbox)); $status_links['inbox'] = sprintf('<a href="%1$s"%2$s>%3$s</a>', admin_url('admin.php?page=flamingo_inbound'), $this->is_trash || $this->is_spam ? '' : ' class="current"', $inbox); // Spam Flamingo_Inbound_Message::find(array('post_status' => Flamingo_Inbound_Message::spam_status)); $posts_in_spam = Flamingo_Inbound_Message::$found_items; $spam = sprintf(_nx('Spam <span class="count">(%s)</span>', 'Spam <span class="count">(%s)</span>', $posts_in_spam, 'posts', 'flamingo'), number_format_i18n($posts_in_spam)); $status_links['spam'] = sprintf('<a href="%1$s"%2$s>%3$s</a>', admin_url('admin.php?page=flamingo_inbound&post_status=spam'), 'spam' == $post_status ? ' class="current"' : '', $spam); // Trash Flamingo_Inbound_Message::find(array('post_status' => 'trash')); $posts_in_trash = Flamingo_Inbound_Message::$found_items; if (empty($posts_in_trash)) { return $status_links; } $trash = sprintf(_nx('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>', $posts_in_trash, 'posts', 'flamingo'), number_format_i18n($posts_in_trash)); $status_links['trash'] = sprintf('<a href="%1$s"%2$s>%3$s</a>', admin_url('admin.php?page=flamingo_inbound&post_status=trash'), 'trash' == $post_status ? ' class="current"' : '', $trash); return $status_links; }
function flamingo_load_inbound_admin() { $action = flamingo_current_action(); $redirect_to = admin_url('admin.php?page=flamingo_inbound'); if ('trash' == $action && !empty($_REQUEST['post'])) { if (!is_array($_REQUEST['post'])) { check_admin_referer('flamingo-trash-inbound-message_' . $_REQUEST['post']); } else { check_admin_referer('bulk-posts'); } $trashed = 0; foreach ((array) $_REQUEST['post'] as $post) { $post = new Flamingo_Inbound_Message($post); if (empty($post)) { continue; } if (!current_user_can('flamingo_delete_inbound_message', $post->id)) { wp_die(__('You are not allowed to move this item to the Trash.', 'flamingo')); } if (!$post->trash()) { wp_die(__('Error in moving to Trash.', 'flamingo')); } $trashed += 1; } if (!empty($trashed)) { $redirect_to = add_query_arg(array('message' => 'inboundtrashed'), $redirect_to); } wp_safe_redirect($redirect_to); exit; } if ('untrash' == $action && !empty($_REQUEST['post'])) { if (!is_array($_REQUEST['post'])) { check_admin_referer('flamingo-untrash-inbound-message_' . $_REQUEST['post']); } else { check_admin_referer('bulk-posts'); } $untrashed = 0; foreach ((array) $_REQUEST['post'] as $post) { $post = new Flamingo_Inbound_Message($post); if (empty($post)) { continue; } if (!current_user_can('flamingo_delete_inbound_message', $post->id)) { wp_die(__('You are not allowed to restore this item from the Trash.', 'flamingo')); } if (!$post->untrash()) { wp_die(__('Error in restoring from Trash.', 'flamingo')); } $untrashed += 1; } if (!empty($untrashed)) { $redirect_to = add_query_arg(array('message' => 'inbounduntrashed'), $redirect_to); } wp_safe_redirect($redirect_to); exit; } if ('delete_all' == $action) { check_admin_referer('bulk-posts'); $_REQUEST['post'] = flamingo_get_all_ids_in_trash(Flamingo_Inbound_Message::post_type); $action = 'delete'; } if ('delete' == $action && !empty($_REQUEST['post'])) { if (!is_array($_REQUEST['post'])) { check_admin_referer('flamingo-delete-inbound-message_' . $_REQUEST['post']); } else { check_admin_referer('bulk-posts'); } $deleted = 0; foreach ((array) $_REQUEST['post'] as $post) { $post = new Flamingo_Inbound_Message($post); if (empty($post)) { continue; } if (!current_user_can('flamingo_delete_inbound_message', $post->id)) { wp_die(__('You are not allowed to delete this item.', 'flamingo')); } if (!$post->delete()) { wp_die(__('Error in deleting.', 'flamingo')); } $deleted += 1; } if (!empty($deleted)) { $redirect_to = add_query_arg(array('message' => 'inbounddeleted'), $redirect_to); } wp_safe_redirect($redirect_to); exit; } if ('spam' == $action && !empty($_REQUEST['post'])) { if (!is_array($_REQUEST['post'])) { check_admin_referer('flamingo-spam-inbound-message_' . $_REQUEST['post']); } else { check_admin_referer('bulk-posts'); } $submitted = 0; foreach ((array) $_REQUEST['post'] as $post) { $post = new Flamingo_Inbound_Message($post); if (empty($post)) { continue; } if (!current_user_can('flamingo_spam_inbound_message', $post->id)) { wp_die(__('You are not allowed to spam this item.', 'flamingo')); } if ($post->spam()) { $submitted += 1; } } if (!empty($submitted)) { $redirect_to = add_query_arg(array('message' => 'inboundspammed'), $redirect_to); } wp_safe_redirect($redirect_to); exit; } if ('unspam' == $action && !empty($_REQUEST['post'])) { if (!is_array($_REQUEST['post'])) { check_admin_referer('flamingo-unspam-inbound-message_' . $_REQUEST['post']); } else { check_admin_referer('bulk-posts'); } $submitted = 0; foreach ((array) $_REQUEST['post'] as $post) { $post = new Flamingo_Inbound_Message($post); if (empty($post)) { continue; } if (!current_user_can('flamingo_unspam_inbound_message', $post->id)) { wp_die(__('You are not allowed to unspam this item.', 'flamingo')); } if ($post->unspam()) { $submitted += 1; } } if (!empty($submitted)) { $redirect_to = add_query_arg(array('message' => 'inboundunspammed'), $redirect_to); } wp_safe_redirect($redirect_to); exit; } if (!empty($_GET['export'])) { check_admin_referer('bulk-posts'); $sitename = sanitize_key(get_bloginfo('name')); $filename = (empty($sitename) ? '' : $sitename . '-') . sprintf('flamingo-inbound-%s.csv', date('Y-m-d')); header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename={$filename}"); header('Content-Type: text/csv; charset=' . get_option('blog_charset')); $args = array('posts_per_page' => -1, 'orderby' => 'date', 'order' => 'DESC'); if (!empty($_REQUEST['s'])) { $args['s'] = $_REQUEST['s']; } if (!empty($_REQUEST['orderby'])) { if ('subject' == $_REQUEST['orderby']) { $args['meta_key'] = '_subject'; $args['orderby'] = 'meta_value'; } elseif ('from' == $_REQUEST['orderby']) { $args['meta_key'] = '_from'; $args['orderby'] = 'meta_value'; } } if (!empty($_REQUEST['order']) && 'asc' == strtolower($_REQUEST['order'])) { $args['order'] = 'ASC'; } if (!empty($_REQUEST['m'])) { $args['m'] = $_REQUEST['m']; } if (!empty($_REQUEST['channel_id'])) { $args['channel_id'] = $_REQUEST['channel_id']; } if (!empty($_REQUEST['channel'])) { $args['channel'] = $_REQUEST['channel']; } $items = Flamingo_Inbound_Message::find($args); if (empty($items)) { exit; } $labels = array_keys($items[0]->fields); $labels[] = __('Date', 'flamingo'); echo flamingo_csv_row($labels); foreach ($items as $item) { $row = array(); foreach ($labels as $label) { $col = isset($item->fields[$label]) ? $item->fields[$label] : ''; if (is_array($col)) { $col = flamingo_array_flatten($col); $col = array_filter(array_map('trim', $col)); $col = implode(', ', $col); } $row[] = $col; } $row[] = get_post_time('c', true, $item->id); echo "\r\n" . flamingo_csv_row($row); } exit; } $post_id = !empty($_REQUEST['post']) ? $_REQUEST['post'] : ''; if (Flamingo_Inbound_Message::post_type == get_post_type($post_id)) { add_meta_box('submitdiv', __('Save', 'flamingo'), 'flamingo_inbound_submit_meta_box', null, 'side', 'core'); add_meta_box('inboundfieldsdiv', __('Fields', 'flamingo'), 'flamingo_inbound_fields_meta_box', null, 'normal', 'core'); } else { if (!class_exists('Flamingo_Inbound_Messages_List_Table')) { require_once FLAMINGO_PLUGIN_DIR . '/admin/includes/class-inbound-messages-list-table.php'; } $current_screen = get_current_screen(); add_filter('manage_' . $current_screen->id . '_columns', array('Flamingo_Inbound_Messages_List_Table', 'define_columns')); add_screen_option('per_page', array('label' => __('Messages', 'flamingo'), 'default' => 20)); } }
function column_history($item) { $history = array(); // User if ($user = get_user_by('email', $item->email)) { $link = sprintf('user-edit.php?user_id=%d', $user->ID); $history[] = '<a href="' . admin_url($link) . '">' . esc_html(__('User', 'flamingo')) . '</a>'; } // Comment $comment_count = (int) get_comments(array('count' => true, 'author_email' => $item->email, 'status' => 'approve', 'type' => 'comment')); if (0 < $comment_count) { $link = sprintf('edit-comments.php?s=%s', urlencode($item->email)); $history[] = '<a href="' . admin_url($link) . '">' . sprintf(__('Comment (%d)', 'flamingo'), $comment_count) . '</a>'; } // Contact channels $terms = get_terms(Flamingo_Inbound_Message::channel_taxonomy); if (!empty($terms) && !is_wp_error($terms)) { foreach ((array) $terms as $term) { Flamingo_Inbound_Message::find(array('channel' => $term->slug, 's' => $item->email)); $count = (int) Flamingo_Inbound_Message::$found_items; if (!$count) { continue; } $link = sprintf('admin.php?page=flamingo_inbound&channel=%1$s&s=%2$s', urlencode($term->slug), urlencode($item->email)); $history[] = '<a href="' . admin_url($link) . '">' . sprintf(_x('%s (%d)', 'contact history', 'flamingo'), $term->name, $count) . '</a>'; } } $output = ''; foreach ($history as $item) { $output .= '<li>' . $item . '</li>'; } $output = '<ul class="contact-history">' . $output . '</ul>'; return $output; }