+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $page
+ */
+function get_hidden_columns($page) {
+ $page = str_replace('.php', '', $page);
+ return (array) get_user_option( 'manage-' . $page . '-columns-hidden', 0, false );
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * Outputs the quick edit and bulk edit table rows for posts and pages
+ *
+ * @since 2.7
+ *
+ * @param string $type 'post' or 'page'
+ */
+function inline_edit_row( $type ) {
+ global $current_user, $mode;
+
+ $is_page = 'page' == $type;
+ if ( $is_page ) {
+ $screen = 'edit-pages';
+ $post = get_default_page_to_edit();
+ } else {
+ $screen = 'edit';
+ $post = get_default_post_to_edit();
+ }
+
+ $columns = $is_page ? wp_manage_pages_columns() : wp_manage_posts_columns();
+ $hidden = array_intersect( array_keys( $columns ), array_filter( get_hidden_columns($screen) ) );
+ $col_count = count($columns) - count($hidden);
+ $m = ( isset($mode) && 'excerpt' == $mode ) ? 'excerpt' : 'list';
+ $can_publish = current_user_can("publish_{$type}s");
+ $core_columns = array( 'cb' => true, 'date' => true, 'title' => true, 'categories' => true, 'tags' => true, 'comments' => true, 'author' => true );
+
+?>
+
+<form method="get" action=""><table style="display: none"><tbody id="inlineedit">
+ <?php
+ $bulk = 0;
+ while ( $bulk < 2 ) { ?>
+
+ <tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php echo "$type ";
+ echo $bulk ? "bulk-edit-row bulk-edit-row-$type" : "quick-edit-row quick-edit-row-$type";
+ ?>" style="display: none"><td colspan="<?php echo $col_count; ?>">
+
+ <fieldset class="inline-edit-col-left"><div class="inline-edit-col">
+ <h4><?php echo $bulk ? ( $is_page ? __( 'Bulk Edit Pages' ) : __( 'Bulk Edit Posts' ) ) : __( 'Quick Edit' ); ?></h4>
+
+
+<?php if ( $bulk ) : ?>
+ <div id="bulk-title-div">
+ <div id="bulk-titles"></div>
+ </div>
+
+<?php else : // $bulk ?>
+
+ <label>
+ <span class="title"><?php _e( 'Title' ); ?></span>
+ <span class="input-text-wrap"><input type="text" name="post_title" class="ptitle" value="" /></span>
+ </label>
+
+<?php endif; // $bulk ?>
+
+
+<?php if ( !$bulk ) : ?>
+
+ <label>
+ <span class="title"><?php _e( 'Slug' ); ?></span>
+ <span class="input-text-wrap"><input type="text" name="post_name" value="" /></span>
+ </label>
+
+ <label><span class="title"><?php _e( 'Date' ); ?></span></label>
+ <div class="inline-edit-date">
+ <?php touch_time(1, 1, 4, 1); ?>
+ </div>
+ <br class="clear" />
+
+<?php endif; // $bulk
+
+ ob_start();
+ $authors = get_editable_user_ids( $current_user->id, true, $type ); // TODO: ROLE SYSTEM
+ if ( $authors && count( $authors ) > 1 ) :
+ $users_opt = array('include' => $authors, 'name' => 'post_author', 'class'=> 'authors', 'multi' => 1);
+ if ( $bulk )
+ $users_opt['show_option_none'] = __('- No Change -');
+?>
+ <label>
+ <span class="title"><?php _e( 'Author' ); ?></span>
+ <?php wp_dropdown_users( $users_opt ); ?>
+ </label>
+
+<?php
+ endif; // authors
+ $authors_dropdown = ob_get_clean();
+?>
+
+<?php if ( !$bulk ) : echo $authors_dropdown; ?>
+
+ <div class="inline-edit-group">
+ <label class="alignleft">
+ <span class="title"><?php _e( 'Password' ); ?></span>
+ <span class="input-text-wrap"><input type="text" name="post_password" class="inline-edit-password-input" value="" /></span>
+ </label>
+
+ <em style="margin:5px 10px 0 0" class="alignleft"><?php echo _c( '–OR–|Between password field and private checkbox on post quick edit interface' ); ?></em>
+
+ <label class="alignleft inline-edit-private">
+ <input type="checkbox" name="keep_private" value="private" />
+ <span class="checkbox-title"><?php echo $is_page ? __('Private page') : __('Private post'); ?></span>
+ </label>
+ </div>
+
+<?php endif; ?>
+
+ </div></fieldset>
+
+<?php if ( !$is_page && !$bulk ) : ?>
+
+ <fieldset class="inline-edit-col-center inline-edit-categories"><div class="inline-edit-col">
+ <span class="title inline-edit-categories-label"><?php _e( 'Categories' ); ?>
+ <span class="catshow"><?php _e('[more]'); ?></span>
+ <span class="cathide" style="display:none;"><?php _e('[less]'); ?></span>
+ </span>
+ <ul class="cat-checklist">
+ <?php wp_category_checklist(); ?>
+ </ul>
+ </div></fieldset>
+
+<?php endif; // !$is_page && !$bulk ?>
+
+ <fieldset class="inline-edit-col-right"><div class="inline-edit-col">
+
+<?php
+ if ( $bulk )
+ echo $authors_dropdown;
+?>
+
+<?php if ( $is_page ) : ?>
+
+ <label>
+ <span class="title"><?php _e( 'Parent' ); ?></span>
+<?php
+ $dropdown_args = array('selected' => $post->post_parent, 'name' => 'post_parent', 'show_option_none' => __('Main Page (no parent)'), 'option_none_value' => 0, 'sort_column'=> 'menu_order, post_title');
+ if ( $bulk )
+ $dropdown_args['show_option_no_change'] = __('- No Change -');
+ $dropdown_args = apply_filters('quick_edit_dropdown_pages_args', $dropdown_args);
+ wp_dropdown_pages($dropdown_args);
+?>
+ </label>
+
+<?php if ( !$bulk ) : ?>
+
+ <label>
+ <span class="title"><?php _e( 'Order' ); ?></span>
+ <span class="input-text-wrap"><input type="text" name="menu_order" class="inline-edit-menu-order-input" value="<?php echo $post->menu_order ?>" /></span>
+ </label>
+
+<?php endif; // !$bulk ?>
+
+ <label>
+ <span class="title"><?php _e( 'Template' ); ?></span>
+ <select name="page_template">
+<?php if ( $bulk ) : ?>
+ <option value="-1"><?php _e('- No Change -'); ?></option>
+<?php endif; // $bulk ?>
+ <option value="default"><?php _e( 'Default Template' ); ?></option>
+ <?php page_template_dropdown() ?>
+ </select>
+ </label>
+
+<?php elseif ( !$bulk ) : // $is_page ?>
+
+ <label class="inline-edit-tags">
+ <span class="title"><?php _e( 'Tags' ); ?></span>
+ <textarea cols="22" rows="1" name="tags_input" class="tags_input"></textarea>
+ </label>
+
+<?php endif; // $is_page ?>
+
+<?php if ( $bulk ) : ?>
+
+ <div class="inline-edit-group">
+ <label class="alignleft">
+ <span class="title"><?php _e( 'Comments' ); ?></span>
+ <select name="comment_status">
+ <option value=""><?php _e('- No Change -'); ?></option>
+ <option value="open"><?php _e('Allow'); ?></option>
+ <option value="closed"><?php _e('Do not allow'); ?></option>
+ </select>
+ </label>
+
+ <label class="alignright">
+ <span class="title"><?php _e( 'Pings' ); ?></span>
+ <select name="ping_status">
+ <option value=""><?php _e('- No Change -'); ?></option>
+ <option value="open"><?php _e('Allow'); ?></option>
+ <option value="closed"><?php _e('Do not allow'); ?></option>
+ </select>
+ </label>
+ </div>
+
+<?php else : // $bulk ?>
+
+ <div class="inline-edit-group">
+ <label class="alignleft">
+ <input type="checkbox" name="comment_status" value="open" />
+ <span class="checkbox-title"><?php _e( 'Allow Comments' ); ?></span>
+ </label>
+
+ <label class="alignleft">
+ <input type="checkbox" name="ping_status" value="open" />
+ <span class="checkbox-title"><?php _e( 'Allow Pings' ); ?></span>
+ </label>
+ </div>
+
+<?php endif; // $bulk ?>
+
+
+ <div class="inline-edit-group">
+ <label class="inline-edit-status alignleft">
+ <span class="title"><?php _e( 'Status' ); ?></span>
+ <select name="_status">
+<?php if ( $bulk ) : ?>
+ <option value="-1"><?php _e('- No Change -'); ?></option>
+<?php endif; // $bulk ?>
+ <?php if ( $can_publish ) : // Contributors only get "Unpublished" and "Pending Review" ?>
+ <option value="publish"><?php _e( 'Published' ); ?></option>
+ <option value="future"><?php _e( 'Scheduled' ); ?></option>
+<?php if ( $bulk ) : ?>
+ <option value="private"><?php _e('Private') ?></option>
+<?php endif; // $bulk ?>
+ <?php endif; ?>
+ <option value="pending"><?php _e( 'Pending Review' ); ?></option>
+ <option value="draft"><?php _e( 'Unpublished' ); ?></option>
+ </select>
+ </label>
+
+<?php if ( !$is_page && $can_publish && current_user_can( 'edit_others_posts' ) ) : ?>
+
+<?php if ( $bulk ) : ?>
+
+ <label class="alignright">
+ <span class="title"><?php _e( 'Sticky' ); ?></span>
+ <select name="sticky">
+ <option value="-1"><?php _e( '- No Change -' ); ?></option>
+ <option value="sticky"><?php _e( 'Sticky' ); ?></option>
+ <option value="unsticky"><?php _e( 'Not Sticky' ); ?></option>
+ </select>
+ </label>
+
+<?php else : // $bulk ?>
+
+ <label class="alignleft">
+ <input type="checkbox" name="sticky" value="sticky" />
+ <span class="checkbox-title"><?php _e( 'Make this post sticky' ); ?></span>
+ </label>
+
+<?php endif; // $bulk ?>
+
+<?php endif; // !$is_page && $can_publish && current_user_can( 'edit_others_posts' ) ?>
+
+ </div>
+
+ </div></fieldset>
+
+<?php
+ foreach ( $columns as $column_name => $column_display_name ) {
+ if ( isset( $core_columns[$column_name] ) )
+ continue;
+ do_action( $bulk ? 'bulk_edit_custom_box' : 'quick_edit_custom_box', $column_name, $type);
+ }
+?>
+ <p class="submit inline-edit-save">
+ <a accesskey="c" href="#inline-edit" title="<?php _e('Cancel'); ?>" class="button-secondary cancel alignleft"><?php _e('Cancel'); ?></a>
+ <?php if ( ! $bulk ) {
+ wp_nonce_field( 'inlineeditnonce', '_inline_edit', false );
+ $update_text = ( $is_page ) ? __( 'Update Page' ) : __( 'Update Post' );
+ ?>
+ <a accesskey="s" href="#inline-edit" title="<?php _e('Update'); ?>" class="button-primary save alignright"><?php echo attribute_escape( $update_text ); ?></a>
+ <img class="waiting" style="display:none;" src="images/loading.gif" alt="" />
+ <?php } else {
+ $update_text = ( $is_page ) ? __( 'Update Pages' ) : __( 'Update Posts' );
+ ?>
+ <input accesskey="s" class="button-primary alignright" type="submit" name="bulk_edit" value="<?php echo attribute_escape( $update_text ); ?>" />
+ <?php } ?>
+ <input type="hidden" name="post_view" value="<?php echo $m; ?>" />
+ <br class="clear" />
+ </p>
+ </td></tr>
+<?php
+ $bulk++;
+ } ?>
+ </tbody></table></form>
+<?php
+}
+
+// adds hidden fields with the data for use in the inline editor for posts and pages
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $post
+ */
+function get_inline_data($post) {
+
+ if ( ! current_user_can('edit_' . $post->post_type, $post->ID) )
+ return;
+
+ $title = attribute_escape($post->post_title);
+
+ echo '
+<div class="hidden" id="inline_' . $post->ID . '">
+ <div class="post_title">' . $title . '</div>
+ <div class="post_name">' . $post->post_name . '</div>
+ <div class="post_author">' . $post->post_author . '</div>
+ <div class="comment_status">' . $post->comment_status . '</div>
+ <div class="ping_status">' . $post->ping_status . '</div>
+ <div class="_status">' . $post->post_status . '</div>
+ <div class="jj">' . mysql2date( 'd', $post->post_date ) . '</div>
+ <div class="mm">' . mysql2date( 'm', $post->post_date ) . '</div>
+ <div class="aa">' . mysql2date( 'Y', $post->post_date ) . '</div>
+ <div class="hh">' . mysql2date( 'H', $post->post_date ) . '</div>
+ <div class="mn">' . mysql2date( 'i', $post->post_date ) . '</div>
+ <div class="ss">' . mysql2date( 's', $post->post_date ) . '</div>
+ <div class="post_password">' . wp_specialchars($post->post_password, 1) . '</div>';
+
+ if( $post->post_type == 'page' )
+ echo '
+ <div class="post_parent">' . $post->post_parent . '</div>
+ <div class="page_template">' . wp_specialchars(get_post_meta( $post->ID, '_wp_page_template', true ), 1) . '</div>
+ <div class="menu_order">' . $post->menu_order . '</div>';
+
+ if( $post->post_type == 'post' )
+ echo '
+ <div class="tags_input">' . wp_specialchars( str_replace( ',', ', ', get_tags_to_edit($post->ID) ), 1) . '</div>
+ <div class="post_category">' . implode( ',', wp_get_post_categories( $post->ID ) ) . '</div>
+ <div class="sticky">' . (is_sticky($post->ID) ? 'sticky' : '') . '</div>';
+
+ echo '</div>';
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $posts
+ */
+function post_rows( $posts = array() ) {
+ global $wp_query, $post, $mode;
+
+ add_filter('the_title','wp_specialchars');
+
+ // Create array of post IDs.
+ $post_ids = array();
+
+ if ( empty($posts) )
+ $posts = &$wp_query->posts;
+
+ foreach ( $posts as $a_post )
+ $post_ids[] = $a_post->ID;
+
+ $comment_pending_count = get_pending_comments_num($post_ids);
+ if ( empty($comment_pending_count) )
+ $comment_pending_count = array();
+
+ foreach ( $posts as $post ) {
+ if ( empty($comment_pending_count[$post->ID]) )
+ $comment_pending_count[$post->ID] = 0;
+
+ _post_row($post, $comment_pending_count[$post->ID], $mode);
+ }
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $a_post
+ * @param unknown_type $pending_comments
+ * @param unknown_type $mode
+ */
+function _post_row($a_post, $pending_comments, $mode) {
+ global $post;
+ static $rowclass;
+
+ $global_post = $post;
+ $post = $a_post;
+ setup_postdata($post);
+
+ $rowclass = 'alternate' == $rowclass ? '' : 'alternate';
+ global $current_user;
+ $post_owner = ( $current_user->ID == $post->post_author ? 'self' : 'other' );
+ $edit_link = get_edit_post_link( $post->ID );
+ $title = _draft_or_post_title();
+?>
+ <tr id='post-<?php echo $post->ID; ?>' class='<?php echo trim( $rowclass . ' author-' . $post_owner . ' status-' . $post->post_status ); ?> iedit' valign="top">
+<?php
+ $posts_columns = get_column_headers('edit');
+ $hidden = get_hidden_columns('edit');
+ foreach ( $posts_columns as $column_name=>$column_display_name ) {
+ $class = "class=\"$column_name column-$column_name\"";
+
+ $style = '';
+ if ( in_array($column_name, $hidden) )
+ $style = ' style="display:none;"';
+
+ $attributes = "$class$style";
+
+ switch ($column_name) {
+
+ case 'cb':
+ ?>
+ <th scope="row" class="check-column"><?php if ( current_user_can( 'edit_post', $post->ID ) ) { ?><input type="checkbox" name="post[]" value="<?php the_ID(); ?>" /><?php } ?></th>
+ <?php
+ break;
+
+ case 'date':
+ if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
+ $t_time = $h_time = __('Unpublished');
+ } else {
+ $t_time = get_the_time(__('Y/m/d g:i:s A'));
+ $m_time = $post->post_date;
+ $time = get_post_time('G', true, $post);
+
+ $time_diff = time() - $time;
+
+ if ( ( 'future' == $post->post_status) ) {
+ if ( $time_diff <= 0 ) {
+ $h_time = sprintf( __('%s from now'), human_time_diff( $time ) );
+ } else {
+ $h_time = $t_time;
+ $missed = true;
+ }
+ } else {
+
+ if ( $time_diff > 0 && $time_diff < 24*60*60 )
+ $h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
+ else
+ $h_time = mysql2date(__('Y/m/d'), $m_time);
+ }
+ }
+
+ echo '<td ' . $attributes . '>';
+ if ( 'excerpt' == $mode )
+ echo apply_filters('post_date_column_time', $t_time, $post, $column_name, $mode);
+ else
+ echo '<abbr title="' . $t_time . '">' . apply_filters('post_date_column_time', $h_time, $post, $column_name, $mode) . '</abbr>';
+ echo '<br />';
+ if ( 'publish' == $post->post_status ) {
+ _e('Published');
+ } elseif ( 'future' == $post->post_status ) {
+ if ( isset($missed) )
+ echo '<strong class="attention">' . __('Missed schedule') . '</strong>';
+ else
+ _e('Scheduled');
+ } else {
+ _e('Last Modified');
+ }
+ echo '</td>';
+ break;
+
+ case 'title':
+ $attributes = 'class="post-title column-title"' . $style;
+ ?>
+ <td <?php echo $attributes ?>><strong><?php if ( current_user_can( 'edit_post', $post->ID ) ) { ?><a class="row-title" href="<?php echo $edit_link; ?>" title="<?php echo attribute_escape(sprintf(__('Edit "%s"'), $title)); ?>"><?php echo $title ?></a><?php } else { echo $title; }; _post_states($post); ?></strong>
+ <?php
+ if ( 'excerpt' == $mode )
+ the_excerpt();
+
+ $actions = array();
+ if ( current_user_can('edit_post', $post->ID) ) {
+ $actions['edit'] = '<a href="' . get_edit_post_link($post->ID, true) . '" title="' . attribute_escape(__('Edit this post')) . '">' . __('Edit') . '</a>';
+ $actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="' . attribute_escape(__('Edit this post inline')) . '">' . __('Quick Edit') . '</a>';
+ $actions['delete'] = "<a class='submitdelete' title='" . attribute_escape(__('Delete this post')) . "' href='" . wp_nonce_url("post.php?action=delete&post=$post->ID", 'delete-post_' . $post->ID) . "' onclick=\"if ( confirm('" . js_escape(sprintf( ('draft' == $post->post_status) ? __("You are about to delete this draft '%s'\n 'Cancel' to stop, 'OK' to delete.") : __("You are about to delete this post '%s'\n 'Cancel' to stop, 'OK' to delete."), $post->post_title )) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
+ }
+ if ( in_array($post->post_status, array('pending', 'draft')) ) {
+ if ( current_user_can('edit_post', $post->ID) )
+ $actions['view'] = '<a href="' . get_permalink($post->ID) . '" title="' . attribute_escape(sprintf(__('Preview "%s"'), $title)) . '" rel="permalink">' . __('Preview') . '</a>';
+ } else {
+ $actions['view'] = '<a href="' . get_permalink($post->ID) . '" title="' . attribute_escape(sprintf(__('View "%s"'), $title)) . '" rel="permalink">' . __('View') . '</a>';
+ }
+ $action_count = count($actions);
+ $i = 0;
+ echo '<div class="row-actions">';
+ foreach ( $actions as $action => $link ) {
+ ++$i;
+ ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
+ echo "<span class='$action'>$link$sep</span>";
+ }
+ echo '</div>';
+
+ get_inline_data($post);
+ ?>
+ </td>
+ <?php
+ break;
+
+ case 'categories':
+ ?>
+ <td <?php echo $attributes ?>><?php
+ $categories = get_the_category();
+ if ( !empty( $categories ) ) {
+ $out = array();
+ foreach ( $categories as $c )
+ $out[] = "<a href='edit.php?category_name=$c->slug'> " . wp_specialchars(sanitize_term_field('name', $c->name, $c->term_id, 'category', 'display')) . "</a>";
+ echo join( ', ', $out );
+ } else {
+ _e('Uncategorized');
+ }
+ ?></td>
+ <?php
+ break;
+
+ case 'tags':
+ ?>
+ <td <?php echo $attributes ?>><?php
+ $tags = get_the_tags($post->ID);
+ if ( !empty( $tags ) ) {
+ $out = array();
+ foreach ( $tags as $c )
+ $out[] = "<a href='edit.php?tag=$c->slug'> " . wp_specialchars(sanitize_term_field('name', $c->name, $c->term_id, 'post_tag', 'display')) . "</a>";
+ echo join( ', ', $out );
+ } else {
+ _e('No Tags');
+ }
+ ?></td>
+ <?php
+ break;
+
+ case 'comments':
+ ?>
+ <td <?php echo $attributes ?>><div class="post-com-count-wrapper">
+ <?php
+ $pending_phrase = sprintf( __('%s pending'), number_format( $pending_comments ) );
+ if ( $pending_comments )
+ echo '<strong>';
+ comments_number("<a href='edit-comments.php?p=$post->ID' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('0') . '</span></a>', "<a href='edit-comments.php?p=$post->ID' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('1') . '</span></a>', "<a href='edit-comments.php?p=$post->ID' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('%') . '</span></a>');
+ if ( $pending_comments )
+ echo '</strong>';
+ ?>
+ </div></td>
+ <?php
+ break;
+
+ case 'author':
+ ?>
+ <td <?php echo $attributes ?>><a href="edit.php?author=<?php the_author_ID(); ?>"><?php the_author() ?></a></td>
+ <?php
+ break;
+
+ case 'control_view':
+ ?>
+ <td><a href="<?php the_permalink(); ?>" rel="permalink" class="view"><?php _e('View'); ?></a></td>
+ <?php
+ break;
+
+ case 'control_edit':
+ ?>
+ <td><?php if ( current_user_can('edit_post', $post->ID) ) { echo "<a href='$edit_link' class='edit'>" . __('Edit') . "</a>"; } ?></td>
+ <?php
+ break;
+
+ case 'control_delete':
+ ?>
+ <td><?php if ( current_user_can('delete_post', $post->ID) ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&post=$id", 'delete-post_' . $post->ID) . "' class='delete'>" . __('Delete') . "</a>"; } ?></td>
+ <?php
+ break;
+
+ default:
+ ?>
+ <td <?php echo $attributes ?>><?php do_action('manage_posts_custom_column', $column_name, $post->ID); ?></td>
+ <?php
+ break;
+ }
+}
+?>
+ </tr>
+<?php
+ $post = $global_post;
+}
+
+/*
+ * display one row if the page doesn't have any children
+ * otherwise, display the row and its children in subsequent rows
+ */
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $page
+ * @param unknown_type $level
+ */
+function display_page_row( $page, $level = 0 ) {
+ global $post;
+ static $rowclass;
+
+ $post = $page;
+ setup_postdata($page);
+
+ $page->post_title = wp_specialchars( $page->post_title );
+ $pad = str_repeat( '— ', $level );
+ $id = (int) $page->ID;
+ $rowclass = 'alternate' == $rowclass ? '' : 'alternate';
+ $posts_columns = get_column_headers('edit-pages');
+ $hidden = get_hidden_columns('edit-pages');
+ $title = _draft_or_post_title();
+?>
+<tr id="page-<?php echo $id; ?>" class="<?php echo $rowclass; ?> iedit">
+<?php
+
+foreach ($posts_columns as $column_name=>$column_display_name) {
+ $class = "class=\"$column_name column-$column_name\"";
+
+ $style = '';
+ if ( in_array($column_name, $hidden) )
+ $style = ' style="display:none;"';
+
+ $attributes = "$class$style";
+
+ switch ($column_name) {
+
+ case 'cb':
+ ?>
+ <th scope="row" class="check-column"><input type="checkbox" name="post[]" value="<?php the_ID(); ?>" /></th>
+ <?php
+ break;
+ case 'date':
+ if ( '0000-00-00 00:00:00' == $page->post_date && 'date' == $column_name ) {
+ $t_time = $h_time = __('Unpublished');
+ } else {
+ $t_time = get_the_time(__('Y/m/d g:i:s A'));
+ $m_time = $page->post_date;
+ $time = get_post_time('G', true);
+
+ if ( ( abs(time() - $time) ) < 86400 ) {
+ if ( ( 'future' == $page->post_status) )
+ $h_time = sprintf( __('%s from now'), human_time_diff( $time ) );
+ else
+ $h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
+ } else {
+ $h_time = mysql2date(__('Y/m/d'), $m_time);
+ }
+ }
+ echo '<td ' . $attributes . '>';
+ echo '<abbr title="' . $t_time . '">' . apply_filters('post_date_column_time', $h_time, $page, $column_name, '') . '</abbr>';
+ echo '<br />';
+ if ( 'publish' == $page->post_status || 'future' == $page->post_status )
+ _e('Published');
+ else
+ _e('Last Modified');
+ echo '</td>';
+ break;
+ case 'title':
+ $attributes = 'class="post-title page-title column-title"' . $style;
+ $edit_link = get_edit_post_link( $page->ID );
+ ?>
+ <td <?php echo $attributes ?>><strong><?php if ( current_user_can( 'edit_post', $page->ID ) ) { ?><a class="row-title" href="<?php echo $edit_link; ?>" title="<?php echo attribute_escape(sprintf(__('Edit "%s"'), $title)); ?>"><?php echo $pad; echo $title ?></a><?php } else { echo $pad; echo $title; }; _post_states($page); ?></strong>
+ <?php
+ $actions = array();
+ if ( current_user_can('edit_page', $page->ID) ) {
+ $actions['edit'] = '<a href="' . $edit_link . '" title="' . attribute_escape(__('Edit this page')) . '">' . __('Edit') . '</a>';
+ $actions['inline'] = '<a href="#" class="editinline">' . __('Quick Edit') . '</a>';
+ $actions['delete'] = "<a class='submitdelete' title='" . attribute_escape(__('Delete this page')) . "' href='" . wp_nonce_url("page.php?action=delete&post=$page->ID", 'delete-page_' . $page->ID) . "' onclick=\"if ( confirm('" . js_escape(sprintf( ('draft' == $page->post_status) ? __("You are about to delete this draft '%s'\n 'Cancel' to stop, 'OK' to delete.") : __("You are about to delete this page '%s'\n 'Cancel' to stop, 'OK' to delete."), $page->post_title )) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
+ }
+ if ( in_array($post->post_status, array('pending', 'draft')) ) {
+ if ( current_user_can('edit_page', $page->ID) )
+ $actions['view'] = '<a href="' . get_permalink($page->ID) . '" title="' . attribute_escape(sprintf(__('Preview "%s"'), $title)) . '" rel="permalink">' . __('Preview') . '</a>';
+ } else {
+ $actions['view'] = '<a href="' . get_permalink($page->ID) . '" title="' . attribute_escape(sprintf(__('View "%s"'), $title)) . '" rel="permalink">' . __('View') . '</a>';
+ }
+ $action_count = count($actions);
+
+ $i = 0;
+ echo '<div class="row-actions">';
+ foreach ( $actions as $action => $link ) {
+ ++$i;
+ ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
+ echo "<span class='$action'>$link$sep</span>";
+ }
+ echo '</div>';
+
+ get_inline_data($post);
+ echo '</td>';
+ break;
+
+ case 'comments':
+ ?>
+ <td <?php echo $attributes ?>><div class="post-com-count-wrapper">
+ <?php
+ $left = get_pending_comments_num( $page->ID );
+ $pending_phrase = sprintf( __('%s pending'), number_format( $left ) );
+ if ( $left )
+ echo '<strong>';
+ comments_number("<a href='edit-comments.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('0') . '</span></a>', "<a href='edit-comments.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('1') . '</span></a>', "<a href='edit-comments.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('%') . '</span></a>');
+ if ( $left )
+ echo '</strong>';
+ ?>
+ </div></td>
+ <?php
+ break;
+
+ case 'author':
+ ?>
+ <td <?php echo $attributes ?>><a href="edit-pages.php?author=<?php the_author_ID(); ?>"><?php the_author() ?></a></td>
+ <?php
+ break;
+
+ default:
+ ?>
+ <td <?php echo $attributes ?>><?php do_action('manage_pages_custom_column', $column_name, $id); ?></td>
+ <?php
+ break;
+ }
+}
+?>
+
+</tr>
+
+<?php
+}
+
+/*
+ * displays pages in hierarchical order with paging support
+ */
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since unknown
+ *
+ * @param unknown_type $pages
+ * @param unknown_type $pagenum
+ * @param unknown_type $per_page
+ * @return unknown
+ */
+function page_rows($pages, $pagenum = 1, $per_page = 20) {
+ global $wpdb;
+
+ $level = 0;
+
+ if ( ! $pages ) {
+ $pages = get_pages( array('sort_column' => 'menu_order') );
+
+ if ( ! $pages )
+ return false;
+ }
+
+ /*
+ * arrange pages into two parts: top level pages and children_pages
+ * children_pages is two dimensional array, eg.
+ * children_pages[10][] contains all sub-pages whose parent is 10.
+ * It only takes O(N) to arrange this and it takes O(1) for subsequent lookup operations