<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[15691] trunk/wp-includes/post.php: wp_quickpress_form, first pass.</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/15691">15691</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2010-10-03 07:41:48 +0000 (Sun, 03 Oct 2010)</dd>
</dl>
<h3>Log Message</h3>
<pre>wp_quickpress_form, first pass. props jorbin. see <a href="http://trac.wordpress.org/ticket/14966">#14966</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpincludespostphp">trunk/wp-includes/post.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpincludespostphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/post.php (15690 => 15691)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/post.php        2010-10-03 07:29:44 UTC (rev 15690)
+++ trunk/wp-includes/post.php        2010-10-03 07:41:48 UTC (rev 15691)
</span><span class="lines">@@ -4771,3 +4771,147 @@
</span><span class="cx">
</span><span class="cx">         return $post;
</span><span class="cx"> }
</span><ins>+
+/**
+ * Returns or echos a form containing a post box.
+ *
+ * Used for the QuickPress dashboard module.
+ *
+ * @since 3.1.0
+ *
+ * @param array $args Arguments.
+ * @param string $post_type Post type.
+ */
+function wp_quickpress_form( $args = array(), $post_type = 'post'){
+        global $post_ID;
+
+        $fields = array(
+                'title' => array(
+                        'capability' => '', // Capability to check before outputing field
+                        'output' => '<h4 id="%s-title"><label for="title">'. __('Title') .'</label></h4>
+                <div class="input-text-wrap">
+                        <input type="text" name="post_title" id="%s-title" tabindex="%d" autocomplete="off" value="'. esc_attr( $post->post_title ).'" />
+                </div>'
+                ),
+                'media_buttons' => array(
+                        'capability' => 'upload_files',
+                        'output' => '<div id="%s-media-buttons" class="hide-if-no-js">'. get_media_buttons() .'</div>',
+                ),
+                'content' => array(
+                        'capability' => '',
+                        'output' => '<h4 id="%s-content-label"><label for="content">'. __('Content') .'</label></h4>
+                <div class="textarea-wrap">
+                        <textarea name="content" id="%s-content" class="mceEditor" rows="3" cols="15" tabindex="%d">'. $post->post_content.'</textarea>
+                </div>
+                        '." <script type='text/javascript'>edCanvas = document.getElementById('content');edInsertContent = null;</script>
+                "
+
+                ),
+                'tags' => array(
+                        'capability' =>'',
+                        'output' => '
+                        <h4><label for="%s-tags-input">'. __('Tags') .'</label></h4>
+                        <div class="input-text-wrap">
+                                <input type="text" name="%s-tags_input" id="tags-input" tabindex="%d" value="'. get_tags_to_edit( $post->ID ) .'" />
+                        </div>
+'
+                ),
+
+        );
+
+        $hidden_fields = array(
+                'action' => '<input type="hidden" name="action" id="quickpost-action" value="'.$post_type.'-quickpress-save" />',
+                'post_id' => '<input type="hidden" name="quickpress_post_ID" value="'. $post_ID .'" />',
+                'post_type' => '<input type="hidden" name="post_type" value="'.$post_type.'" />',
+        );
+
+        $submit_fields = array(
+                'save' => '<input type="submit" name="save" id="save-post" class="button" tabindex="%s" value="'. esc_attr('Save Draft') .'" />',
+                'reset' => '<input type="reset" tabindex="%s" value="'. esc_attr( 'Reset' ).'" class="button" />',
+        );
+
+        $publishing_action = current_user_can('publish_posts') ? esc_attr('Publish') : esc_attr('Submit for Review');
+
+        $publishing_fields = array(
+        'submit' => '<input type="submit" name="publish" id="publish" accesskey="p" tabindex="%s" class="button-primary" value="' . $publishing_action . '" />',
+        /*'test' => '<input type="submit" name="publish" id="publish" accesskey="p" tabindex="%n" class="button-primary" value="'. esc_attr('Publish') .'" />', */
+
+        );
+
+        $defaults = array(
+                'action' => admin_url( 'post.php' ),
+                'fields' => $fields,
+                'form_id' => '',
+                'default_cap' => 'edit_posts',
+                'tabindex_start' => '1',
+                'ajax' => true,
+                'hidden_fields' => $hidden_fields,
+                'submit_fields' => $submit_fields,
+                'publishing_fields' => $publishing_fields,
+                'submit_class' => 'submit',
+                'publish_action_container' => 'span',
+                'publish_action_id' => 'publishing-action',
+                'hidden_and_submit_fields_container' => 'p',
+                'hidden_and_submit_fields_container_class' => 'submit',
+        );
+
+        $args = wp_parse_args($args, $defaults);
+
+        $tabindex = apply_filters( 'quickpress_tabindex_start', $args['tabindex_start'], $args['form_id'] );
+
+        if ( current_user_can( $args['default_cap'] ) ): ?>
+                <?php do_action('quickpress_form_before_form', $args['form_id'] ); ?>
+                <form name="post" action="<?php echo $args['action'] ?>" method="post" id="<?php echo $args['form_id']; ?>">
+                        <?php do_action('quickpress_form_before_fields', $args['form_id']);
+
+                        $fields = apply_filters( 'quickpress_fields', $args['fields'], $args['form_id'] );
+                        foreach ($fields as $title => $field){
+                                if ( empty( $field['capability'] ) || current_user_can( $field['capability'] ) ){
+                                        printf( $field['output'], $args['form_id'], $args['form_id'], $tabindex );
+                                        $tabindex++;
+                                }
+                        }
+                        //Hidden Fields
+                        do_action('quickpress_form_after_fields', $args['form_id'] );
+
+                        echo "<{$args['hidden_and_submit_fields_container']} class='{$args['hidden_and_submit_fields_container_class']}'>";
+
+                        $hidden_fields = apply_filters( 'quickpress_hidden_fields', $args['hidden_fields'] , $args['form_id'] );
+
+                        foreach( $hidden_fields as $hidden_field )
+                                echo $hidden_field;
+
+                        // nonce
+                        wp_nonce_field('add-post');
+
+                        // submit
+                        foreach( $args['submit_fields'] as $submit_field )
+                                printf( $submit_field, $tabindex++ );
+
+                        // publish
+                        echo "<{$args['publish_action_container']} id='{$args['publish_action_id']}'>";
+
+                        $publishing_fields = apply_filters( 'quickpress_publishing_fields', $args['publishing_fields'] , $args['form_id'] );
+
+                        foreach( $publishing_fields as $publishing_field) {
+                                printf( $publishing_field, $tabindex );
+                                        $tabindex++;
+                        }
+
+                        if ($args['ajax'] == true)
+                                echo '<img class="waiting" src="'. esc_url( admin_url( 'images/wpspin_light.gif' ) ) .'" />';
+
+                        echo "</{$args['publish_action_container']}>";
+                        echo "<br class='clear' />";
+                        do_action( 'quickpress_form_after_submit_fields', $args['form_id']);
+
+                        echo "</{$args['hidden_and_submit_fields_container']}";
+                do_action( 'quickpress_form_after_form_content', $args['form_id']);
+                echo '</form>';
+                do_action('quickpress_form_after_form', $args['form_id'] );
+        else:
+                do_action( 'quickpress_form_no_form', $args['form_id'] );
+        endif;
+}
+
+?>
</ins><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>
</body>
</html>