Forums / Developer / forbid several drafts

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 eZ Publish 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 !

eZ debug

Timing: Jan 18 2025 01:56:19
Script start
Timing: Jan 18 2025 01:56:19
Module start 'content'
Timing: Jan 18 2025 01:56:20
Module end 'content'
Timing: Jan 18 2025 01:56:20
Script end

Main resources:

Total runtime0.8478 sec
Peak memory usage4,096.0000 KB
Database Queries200

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0070 588.6797181.6797
Module start 'content' 0.00710.7038 770.3594562.4063
Module end 'content' 0.71090.1369 1,332.7656337.3828
Script end 0.8477  1,670.1484 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00380.4486210.0002
Check MTime0.00140.1629210.0001
Mysql Total
Database connection0.00080.098310.0008
Mysqli_queries0.772391.09332000.0039
Looping result0.00190.22791980.0000
Template Total0.819796.720.4099
Template load0.00170.199220.0008
Template processing0.818096.488420.4090
Template load and register function0.00020.025710.0002
states
state_id_array0.00060.072010.0006
state_identifier_array0.00070.085220.0004
Override
Cache load0.00140.1676350.0000
Sytem overhead
Fetch class attribute can translate value0.00130.155030.0004
Fetch class attribute name0.00130.150560.0002
XML
Image XML parsing0.00250.295330.0008
class_abstraction
Instantiating content class attribute0.00000.001670.0000
General
dbfile0.00650.7618270.0002
String conversion0.00000.000930.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
5content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
7content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
2content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 18
 Number of unique templates used: 6

Time used to render debug report: 0.0001 secs