<ol>
<li><p>Yes. Kind of. Have you had a look at the <a href="http://buildwithcraft.com/docs/templating/entry-form" rel="nofollow">Entry Form example</a> in the docs? It looks like Craft will always need an entry to begin with, so you can't have a draft version without first creating a normal entry. That being said, you can set this new this entry as disabled, which also can be queried against by using </p>

<p>craft.entries.status('disabled')</p></li>
<li><p>I cannot see a documented example on how to list drafted entries, though.</p></li>
</ol>

<p>Either way, to build on the Entry Form example, instead of having the action set to <strong>entries/saveEntry</strong>, change it to <strong>entryRevisions/saveDraft</strong>.</p>

<p>Something like:</p>

<pre><code>&lt;input type="hidden" name="action" value="entryRevisions/saveDraft"&gt;
&lt;input type="hidden" name="redirect" value="draft?id={id}&amp;draft={draftId}"&gt;
&lt;input type="hidden" name="sectionId" value="1" /&gt;
&lt;input type="hidden" name="enabled" value="0"&gt;
</code></pre>

<p>Note that you're now posting to the EntryRevisionsController@saveDraft, and that I here set entries to be disabled by default.</p>

<p>Does having them disabled help you do what you want, or do they have to be in Draft mode for some reason?</p>

CC BY-SA 3.0
2014-09-17T22:23:14.093Z
I have all entries submitted by frontend entry form disabled until an editor reviews them and publishes them. What I am looking for is a way to save an entry and flag it as a draft so that I can 1) not display it to the editor (again a frontend activity) and 2) the user can still save their work. I am thinking about adding a custom field and using that to query off of. Then creating another submit button name="fields[draftMode]" value="draft". Thoughts on this approach?
David A McInnis
CC BY-SA 3.0
2014-09-17T22:29:13.093Z
Sounds good. The P&T guys might have some tips on how to use those drafts in that way, but if not, I would also go for a custom field.
Fred Carlsen
CC BY-SA 3.0
2014-09-17T21:43:56.600Z
2014-09-17T21:43:56.600Z
Fred Carlsen
<p>Old Question I know, but kept coming across it and I've been digging around as I had the same use case.</p>

<p>With regards, to Q1; if you don't give the user's group permission to publish live changes, their new entries will go in as disabled entries (Not a draft, but disabled entries ready for moderation).</p>

<p>Once the admin approves, the entry will be open and the user will not be able to update it. (They receive a permission denied message) You can however use the code as Fred posted to send the action to <code>entryRevisions/saveDraft</code> and that will store a proper 'draft' in Craft, without affecting the live entry.</p>

<p>It's not documented, but after poking around I found and tested a way of retrieving drafts by entry ID on the front-end;</p>

<pre><code>{% set drafts = craft.entryRevisions.getDraftsByEntryId(229) %}

{% for draft in drafts %}
    &lt;h2&gt;{{ draft.title }}&lt;/h2&gt;
    ...
{% endfor %}
</code></pre>

<p>You can then check for existing drafts and prevent the user submitting further changes until the draft has been approved/deleted.</p>

<p>Hopefully someone will find this useful!</p>

CC BY-SA 3.0
2015-03-08T10:05:09.823Z
2015-03-08T10:05:09.823Z
Iain Urquhart
<p>A two part question here.</p>

<ol>
<li><p>When saving an entry from front-end entry form, can I designate it to save as a draft? If so, how?</p></li>
<li><p>If the answer to #1 is true, can I query against that to list only entries that are not in 'draft' mode.</p></li>
</ol>

<entry><draft>
Creating Drafts from Frontend Entry Form
# Creating Drafts from Frontend Entry Form

(Asked by: username_0 on 2014-09-17)

A two part question here.

1. When saving an entry from front-end entry form, can I designate it to save as a draft? If so, how?
2. If the answer to #1 is true, can I query against that to list only entries that are not in 'draft' mode.

**Tags:** entry, draft

---

## 2 answers

### Answer by username_1 on 2014-09-17. Score: 4 | Accepted answer

Yes. Kind of. Have you had a look at the Entry Form example in the docs? It looks like Craft will always need an entry to begin with, so you can't have a draft version without first creating a normal entry. That being said, you can set this new this entry as disabled, which also can be queried against by using 
craft.entries.status('disabled')
I cannot see a documented example on how to list drafted entries, though.

Either way, to build on the Entry Form example, instead of having the action set to entries/saveEntry, change it to entryRevisions/saveDraft.
Something like:





Note that you're now posting to the EntryRevisionsController@saveDraft, and that I here set entries to be disabled by default.
Does having them disabled help you do what you want, or do they have to be in Draft mode for some reason?

> **Comments:**
> **username_0**: I have all entries submitted by frontend entry form disabled until an editor reviews them and publishes them. What I am looking for is a way to save an entry and flag it as a draft so that I can 1) not display it to the editor (again a frontend activity) and 2) the user can still save their work. I am thinking about adding a custom field and using that to query off of. Then creating another submit button name="fields[draftMode]" value="draft". Thoughts on this approach?  
> **username_1**: Sounds good. The P&T guys might have some tips on how to use those drafts in that way, but if not, I would also go for a custom field.  

---

### Answer by username_2 on 2015-03-08. Score: 2

Old Question I know, but kept coming across it and I've been digging around as I had the same use case.
With regards, to Q1; if you don't give the user's group permission to publish live changes, their new entries will go in as disabled entries (Not a draft, but disabled entries ready for moderation).
Once the admin approves, the entry will be open and the user will not be able to update it. (They receive a permission denied message) You can however use the code as Fred posted to send the action to entryRevisions/saveDraft and that will store a proper 'draft' in Craft, without affecting the live entry.
It's not documented, but after poking around I found and tested a way of retrieving drafts by entry ID on the front-end;
{% set drafts = craft.entryRevisions.getDraftsByEntryId(229) %}

{% for draft in drafts %}
    {{ draft.title }}
    ...
{% endfor %}

You can then check for existing drafts and prevent the user submitting further changes until the draft has been approved/deleted.
Hopefully someone will find this useful!


---

