Changeset 2651

Show
Ignore:
Timestamp:
06/19/05 02:51:48 (3 years ago)
Author:
ryan
Message:

Add get_post_to_edit() and get_default_post_to_edit(). More post.php cleanup.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-admin/admin-functions.php

    r2650 r2651  
    11<?php 
    22 
    3 // Creates a new post from the "Write Post" form
     3// Creates a new post from the "Write Post" form using $_POST information
    44function write_post() { 
    55    global $user_ID; 
     
    5555} 
    5656 
     57// Update an existing post with values provided in $_POST. 
    5758function edit_post() { 
    5859    global $user_ID; 
     
    115116 
    116117    add_meta($post_ID); 
     118} 
     119 
     120// Get an existing post and format it for editing. 
     121function get_post_to_edit($id) { 
     122    $post = get_post($id); 
     123 
     124    $post->post_content = format_to_edit($post->post_content); 
     125    $post->post_content = apply_filters('content_edit_pre', $post->post_content); 
     126 
     127    $post->post_excerpt = format_to_edit($post->post_excerpt); 
     128    $post->post_excerpt = apply_filters('excerpt_edit_pre', $post->post_excerpt); 
     129 
     130    $post->post_title = format_to_edit($post->post_title); 
     131    $post->post_title = apply_filters('title_edit_pre', $post->post_title); 
     132 
     133    if ($post->post_status == 'static') 
     134        $post->page_template = get_post_meta($id, '_wp_page_template', true);    
     135 
     136    return $post; 
     137} 
     138 
     139// Default post information to use when populating the "Write Post" form. 
     140function get_default_post_to_edit() { 
     141    global $content, $excerpt, $edited_post_title; 
     142 
     143    $post->post_status = 'draft'; 
     144    $post->comment_status = get_settings('default_comment_status'); 
     145    $post->ping_status = get_settings('default_ping_status'); 
     146    $post->post_pingback = get_settings('default_pingback_flag'); 
     147    $post->post_category = get_settings('default_category'); 
     148    $content = wp_specialchars($content); 
     149    $post->post_content = apply_filters('default_content', $content); 
     150    $post->post_title = apply_filters('default_title', $edited_post_title); 
     151    $post->post_excerpt = apply_filters('default_excerpt', $excerpt); 
     152 
     153    return $post; 
    117154} 
    118155 
     
    673710} 
    674711 
    675 function generate_page_rewrite_rules() { 
    676     global $wpdb; 
    677     $posts = $wpdb->get_results("SELECT ID, post_name FROM $wpdb->posts WHERE post_status = 'static' ORDER BY post_parent DESC"); 
    678  
    679     $page_rewrite_rules = array(); 
    680      
    681     if ($posts) { 
    682         foreach ($posts as $post) { 
    683             // URI => page name 
    684             $uri = get_page_uri($post->ID); 
    685              
    686             $page_rewrite_rules[$uri] = $post->post_name; 
    687         } 
    688          
    689         update_option('page_uris', $page_rewrite_rules); 
    690          
    691         save_mod_rewrite_rules(); 
    692     } 
    693 } 
    694  
    695712function the_quicktags () { 
    696713// Browser detection sucks, but until Safari supports the JS needed for this to work people just assume it's a bug in WP 
  • trunk/wp-admin/edit-form-advanced.php

    r2639 r2651  
    2323$form_pingback = '<input type="hidden" name="post_pingback" value="' . get_option('default_pingback_flag') . '" id="post_pingback" />'; 
    2424 
    25 $form_prevstatus = '<input type="hidden" name="prev_status" value="'.$post_status.'" />'; 
    26  
    27 $form_trackback = '<input type="text" name="trackback_url" style="width: 415px" id="trackback" tabindex="7" value="'. str_replace("\n", ' ', $to_ping) .'" />'; 
     25$form_prevstatus = '<input type="hidden" name="prev_status" value="' . $post->post_status . '" />'; 
     26 
     27$form_trackback = '<input type="text" name="trackback_url" style="width: 415px" id="trackback" tabindex="7" value="'. str_replace("\n", ' ', $post->to_ping) .'" />'; 
    2828 
    2929if ('' != $pinged) { 
     
    3838$saveasdraft = '<input name="save" type="submit" id="save" tabindex="6" value="' . __('Save and Continue Editing') . '" />'; 
    3939 
    40 if (empty($post_status)) $post_status = 'draft'; 
     40if (empty($post->post_status)) $post->post_status = 'draft'; 
    4141 
    4242?> 
     
    4444<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" /> 
    4545<input type="hidden" name="action" value="<?php echo $form_action ?>" /> 
    46 <input type="hidden" name="post_author" value="<?php echo $post_author ?>" /> 
     46<input type="hidden" name="post_author" value="<?php echo $post->post_author ?>" /> 
    4747 
    4848<?php echo $form_extra ?> 
     
    6868<input name="advanced_view" type="hidden" value="1" /> 
    6969<label for="comment_status" class="selectit"> 
    70 <input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($comment_status, 'open'); ?> /> 
     70<input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($post->comment_status, 'open'); ?> /> 
    7171<?php _e('Allow Comments') ?></label>  
    72 <label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label> 
     72<label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($post->ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label> 
    7373</div> 
    7474</fieldset> 
     
    7676<fieldset id="passworddiv" class="dbx-box"> 
    7777<h3 class="dbx-handle"><?php _e('Password-Protect Post') ?></h3>  
    78 <div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post_password ?>" /></div> 
     78<div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post->post_password ?>" /></div> 
    7979</fieldset> 
    8080 
    8181<fieldset id="slugdiv" class="dbx-box"> 
    8282<h3 class="dbx-handle"><?php _e('Post slug') ?></h3>  
    83 <div class="dbx-content"><input name="post_name" type="text" size="13" id="post_name" value="<?php echo $post_name ?>" /></div> 
     83<div class="dbx-content"><input name="post_name" type="text" size="13" id="post_name" value="<?php echo $post->post_name ?>" /></div> 
    8484</fieldset> 
    8585 
     
    9292<h3 class="dbx-handle"><?php _e('Post Status') ?></h3>  
    9393<div class="dbx-content"><?php if ( user_can_create_post($user_ID) ) : ?> 
    94 <label for="post_status_publish" class="selectit"><input id="post_status_publish" name="post_status" type="radio" value="publish" <?php checked($post_status, 'publish'); ?> /> <?php _e('Published') ?></label> 
    95 <?php endif; ?> 
    96       <label for="post_status_draft" class="selectit"><input id="post_status_draft" name="post_status" type="radio" value="draft" <?php checked($post_status, 'draft'); ?> /> <?php _e('Draft') ?></label> 
    97       <label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="radio" value="private" <?php checked($post_status, 'private'); ?> /> <?php _e('Private') ?></label></div> 
     94<label for="post_status_publish" class="selectit"><input id="post_status_publish" name="post_status" type="radio" value="publish" <?php checked($post->post_status, 'publish'); ?> /> <?php _e('Published') ?></label> 
     95<?php endif; ?> 
     96      <label for="post_status_draft" class="selectit"><input id="post_status_draft" name="post_status" type="radio" value="draft" <?php checked($post->post_status, 'draft'); ?> /> <?php _e('Draft') ?></label> 
     97      <label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="radio" value="private" <?php checked($post->post_status, 'private'); ?> /> <?php _e('Private') ?></label></div> 
    9898</fieldset> 
    9999 
     
    113113foreach ($users as $o) : 
    114114$o = get_userdata( $o->ID ); 
    115 if ( $post_author == $o->ID || ( empty($post_ID) && $user_ID == $o->ID ) ) $selected = 'selected="selected"'; 
     115if ( $post->post_author == $o->ID || ( empty($post_ID) && $user_ID == $o->ID ) ) $selected = 'selected="selected"'; 
    116116else $selected = ''; 
    117117echo "<option value='$o->ID' $selected>$o->display_name</option>"; 
     
    128128<fieldset id="titlediv"> 
    129129  <legend><?php _e('Title') ?></legend>  
    130   <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $edited_post_title; ?>" id="title" /></div> 
     130  <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div> 
    131131</fieldset> 
    132132 
     
    140140 } 
    141141?> 
    142 <div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="5" id="content"><?php echo $content ?></textarea></div> 
     142<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="5" id="content"><?php echo $post->post_content ?></textarea></div> 
    143143</fieldset> 
    144144<script type="text/javascript"> 
     
    171171<fieldset id="postexcerpt" class="dbx-box"> 
    172172<h3 class="dbx-handle"><?php _e('Optional Excerpt') ?></h3> 
    173 <div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="4" id="excerpt"><?php echo $excerpt ?></textarea></div> 
     173<div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="4" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div> 
    174174</fieldset> 
    175175 
     
    203203 
    204204<?php if ('edit' == $action) : ?> 
    205 <p><input name="deletepost" class="button" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this post') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this post \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), addslashes($edited_post_title) ) . "')\""; ?> /></p> 
     205<p><input name="deletepost" class="button" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this post') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this post \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), addslashes($post->post_title) ) . "')\""; ?> /></p> 
    206206<?php endif; ?> 
    207207 
  • trunk/wp-admin/edit-form.php

    r2441 r2651  
    2323    <fieldset id="titlediv"> 
    2424      <legend><a href="http://wordpress.org/docs/reference/post/#title" title="<?php _e('Help on titles') ?>"><?php _e('Title') ?></a></legend>  
    25       <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $edited_post_title; ?>" id="title" /></div> 
     25      <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div> 
    2626    </fieldset> 
    2727 
    2828    <fieldset id="categorydiv"> 
    2929      <legend><a href="http://wordpress.org/docs/reference/post/#category" title="<?php _e('Help on categories') ?>"><?php _e('Categories') ?></a></legend>  
    30       <div><?php dropdown_categories($default_post_cat); ?></div> 
     30      <div><?php dropdown_categories($post->post_category); ?></div> 
    3131    </fieldset> 
    3232 
     
    4141 } 
    4242?> 
    43 <div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $content ?></textarea></div> 
     43<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $post->post_content ?></textarea></div> 
    4444</fieldset> 
    4545 
  • trunk/wp-admin/edit-page-form.php

    r2636 r2651  
    4242    <fieldset id="titlediv"> 
    4343      <legend><?php _e('Page Title') ?></legend>  
    44       <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $edited_post_title; ?>" id="title" /></div> 
     44      <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div> 
    4545    </fieldset> 
    4646<fieldset id="commentstatusdiv"> 
     
    4949      <input name="advanced_view" type="hidden" value="1" /> 
    5050      <label for="comment_status" class="selectit"> 
    51           <input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($comment_status, 'open'); ?> /> 
     51          <input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($post->comment_status, 'open'); ?> /> 
    5252         <?php _e('Allow Comments') ?></label>  
    53          <label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label> 
     53         <label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($post->ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label> 
    5454    </div> 
    5555</fieldset> 
    5656    <fieldset id="postpassworddiv"> 
    5757      <legend><?php _e('Page Password') ?></legend>  
    58       <div><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post_password ?>" /></div> 
     58      <div><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post->post_password ?>" /></div> 
    5959    </fieldset> 
    6060    <fieldset id="pageparent"> 
     
    6262      <div><select name="parent_id"> 
    6363      <option value='0'><?php _e('Main Page (no parent)'); ?></option> 
    64             <?php parent_dropdown($post_parent); ?> 
     64            <?php parent_dropdown($post->post_parent); ?> 
    6565        </select> 
    6666      </div> 
     
    7575 } 
    7676?> 
    77 <div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $content ?></textarea></div> 
     77<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $post->post_content ?></textarea></div> 
    7878</fieldset> 
    7979 
     
    9898        <td><div><select name="page_template"> 
    9999        <option value='default'><?php _e('Default Template'); ?></option> 
    100         <?php page_template_dropdown($page_template); ?> 
     100        <?php page_template_dropdown($post->page_template); ?> 
    101101        </select> 
    102102         
     
    107107    <tr valign="top"> 
    108108        <th scope="row" width="30%"><?php _e('Page slug') ?>:</th> 
    109         <td><input name="post_name" type="text" size="25" id="post_name" value="<?php echo $post_name ?>" /></td> 
     109        <td><input name="post_name" type="text" size="25" id="post_name" value="<?php echo $post->post_name ?>" /></td> 
    110110    </tr> 
    111111<?php if ($user_level > 7 && $users = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users WHERE user_level <= $user_level AND user_level > 0") ) : ?> 
     
    117117        foreach ($users as $o) : 
    118118            $o = get_userdata( $O->ID ); 
    119             if ( $post_author == $o->ID ) $selected = 'selected="selected"'; 
     119            if ( $post->post_author == $o->ID ) $selected = 'selected="selected"'; 
    120120            else $selected = ''; 
    121121            echo "<option value='$o->ID' $selected>$o->user_login ($o->first_name $o->last_name)</option>"; 
     
    128128    <tr> 
    129129        <th scope="row" width="25%"><?php _e('Page Order') ?>:</th> 
    130         <td><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo $menu_order ?>" /></td> 
     130        <td><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo $post->menu_order ?>" /></td> 
    131131    </tr> 
    132132    <tr> 
    133133        <th scope="row"><?php _e('Delete'); ?>:</th> 
    134134        <td><?php if ('edit' == $action) : ?> 
    135         <input name="deletepost" class="delete" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this page \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), addslashes($edited_post_title) ) . "')\""; ?> /> 
     135        <input name="deletepost" class="delete" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this page \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), addslashes($post->post_title) ) . "')\""; ?> /> 
    136136<?php endif; ?></td> 
    137137    </tr> 
  • trunk/wp-admin/post.php

    r2650 r2651  
    6565    require_once('admin-header.php'); 
    6666 
    67     $post = $post_ID = $p = (int) $_GET['post']; 
     67    $post_ID = $p = (int) $_GET['post']; 
    6868 
    6969    if ( !user_can_edit_post($user_ID, $post_ID) ) 
    7070        die ( __('You are not allowed to edit this post.') ); 
    71          
    72     $postdata = &get_post($post_ID); 
    73     $content = $postdata->post_content; 
    74     $content = format_to_edit($content); 
    75     $content = apply_filters('content_edit_pre', $content); 
    76     $excerpt = $postdata->post_excerpt; 
    77     $excerpt = format_to_edit($excerpt); 
    78     $excerpt = apply_filters('excerpt_edit_pre', $excerpt); 
    79     $edited_post_title = format_to_edit($postdata->post_title); 
    80     $edited_post_title = apply_filters('title_edit_pre', $edited_post_title); 
    81     $post_status = $postdata->post_status; 
    82     $comment_status = $postdata->comment_status; 
    83     $ping_status = $postdata->ping_status; 
    84     $post_password = $postdata->post_password; 
    85     $to_ping = $postdata->to_ping; 
    86     $pinged = $postdata->pinged; 
    87     $post_name = $postdata->post_name; 
    88     $post_parent = $postdata->post_parent; 
    89     $post_author = $postdata->post_author; 
    90     $menu_order = $postdata->menu_order; 
    91  
    92     if( 'private' == $postdata->post_status && $postdata->post_author != $user_ID ) 
    93         die ( __('You are not allowed to view other users\' private posts.') ); 
    94  
    95     if ($post_status == 'static') { 
    96         $page_template = get_post_meta($post_ID, '_wp_page_template', true); 
     71 
     72    if ( !user_can_edit_post($user_ID, $post_ID) ) 
     73        die ( __('You are not allowed to view other users\' private posts.') );      
     74 
     75    $post = get_post_to_edit($post_ID); 
     76     
     77    if ($post->post_status == 'static') 
    9778        include('edit-page-form.php'); 
    98     } else { 
     79    else 
    9980        include('edit-form-advanced.php'); 
    100     } 
    101  
    102     $post = &$postdata; 
     81 
    10382    ?> 
    10483    <div id='preview' class='wrap'> 
     
    10988    <div class="storycontent"> 
    11089    <?php  
    111     $content = apply_filters('the_content', $post->post_content); 
    112     echo $content; 
     90    echo apply_filters('the_content', $post->post_content); 
    11391    ?> 
    11492    </div> 
     
    154132    $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); 
    155133    header ('Location: ' . $sendback); 
    156     generate_page_rewrite_rules(); 
    157     do_action('delete_post', $post_id); 
    158134    break; 
    159135 
     
    406382            <?php 
    407383        } 
    408         //set defaults 
    409         $post_status = 'draft'; 
    410         $comment_status = get_settings('default_comment_status'); 
    411         $ping_status = get_settings('default_ping_status'); 
    412         $post_pingback = get_settings('default_pingback_flag'); 
    413         $default_post_cat = get_settings('default_category'); 
    414  
    415         $content = wp_specialchars($content); 
    416         $content = apply_filters('default_content', $content); 
    417         $edited_post_title = apply_filters('default_title', $edited_post_title); 
    418         $excerpt = apply_filters('default_excerpt', $excerpt); 
     384 
     385        $post = get_default_post_to_edit(); 
    419386 
    420387        include('edit-form-advanced.php'); 
  • trunk/wp-includes/functions-post.php

    r2650 r2651  
    304304 
    305305    $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = $postid"); 
     306 
     307    if ( 'static' == $post->post_status ) 
     308        generate_page_rewrite_rules(); 
     309 
     310    do_action('delete_post', $postid); 
    306311     
    307312    return $post; 
     
    655660} 
    656661 
     662function generate_page_rewrite_rules() { 
     663    global $wpdb; 
     664    $posts = $wpdb->get_results("SELECT ID, post_name FROM $wpdb->posts WHERE post_status = 'static' ORDER BY post_parent DESC"); 
     665 
     666    $page_rewrite_rules = array(); 
     667     
     668    if ($posts) { 
     669        foreach ($posts as $post) { 
     670            // URI => page name 
     671            $uri = get_page_uri($post->ID); 
     672             
     673            $page_rewrite_rules[$uri] = $post->post_name; 
     674        } 
     675         
     676        update_option('page_uris', $page_rewrite_rules); 
     677         
     678        save_mod_rewrite_rules(); 
     679    } 
     680} 
     681 
    657682?>