Forums / Developer / forbid several drafts

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

forbid several drafts

Author Message

Jerome Despatis

Friday 28 January 2011 9:04:46 am

Hi,

I'd like to forbid a user to create a draft when another draft exists. I prefer that the user modify the existing draft.

Any idea how to do that ? I haven't seen any trigger before the content/edit

Any idea is welcome :)

Edi Modrić

Friday 28 January 2011 12:28:11 pm

Hi Jerome,

You can place the following two lines in your site.ini.append.php to allow the creation of only one draft.

[ContentSettings]
EditDirtyObjectAction=usecurrent

eZ Publish certified developer

http://ez.no/certification/verify/350658

Jerome Despatis

Friday 28 January 2011 12:45:17 pm

Hi Edi,

You're sure about this ?

I've tested this setting in fact already, and it avoids the user to ask him which draft he wants to modify, it seems to create all the time a new draft.

But in that way, even with 'usecurrent' selected, several drafts can exist for a single object

Edi Modrić

Friday 28 January 2011 1:16:07 pm

Yes, you're right. I kinda assumed this always uses the existing draft. Instead, it is indeed creating a new draft without showing the list. I never bothered to check what this setting does exactly, but now I see it loud and clear in the database.

The following in content.ini.append.php could be what you're after:

[VersionManagement]
DefaultVersionHistoryLimit=2

This setting should tell Exponential to only allow two versions of any object to exist (one published and one draft)

You can also use this per class with the following:

VersionHistoryClass[class_id]=2

eZ Publish certified developer

http://ez.no/certification/verify/350658

Jerome Despatis

Friday 28 January 2011 11:21:19 pm

Could be a solution.

But I have another process that performs automatic translation triggered on post publish (in a workflow), it creates a new version per language

So when a draft is published, 5 new versions are created and last one contains the object translated in 5 languages

so I can't use a history limited to 2, i can only use at less 5 + 1

And that way, at the right beginning, when the automatic translation has not et performed, on a new object for example that has never been published. In that case, the user could be able to create several drafts (up to 6 drafts), and I don't want that...

A hook somewhere before the draft creation would be perfect indeed, but I don't see any of this kind in kernel/edit.php

Any idea is welcome !