Updating the modified by field on a content object using eZ API / PHP

Author Message

Conrad Decker

Friday 08 October 2010 1:57:49 am

Does anyone have any pointers on how I can update the modified by field on a content object using PHP and the eZ API. I've got the update and publish functionality working, but I'm curious how I would go about setting the user who modified the object.

I thought it would be similar to the creation process:

$params = array();
$params['class_identifier'] = 'image';
$params['creator_id'] = $user->attribute( 'contentobject_id' ); //using the user extracted above
$params['parent_node_id'] = $parent_node->attribute( 'node_id' ); //pulling the node id out of the parent

but I thought I'd just have to update the modifier_id field, so I tried this:

<span class="Apple-style-span" style="font-size: 13px; " mce_style="font-size: 13px;" mce_fixed="1">$params = array();</span><span class="Apple-style-span" style="font-size: 13px; " mce_style="font-size: 13px;" mce_fixed="1">
</span><span class="Apple-style-span" style="font-size: 13px; " mce_style="font-size: 13px;" mce_fixed="1">$params['modifier_id'] = $user->attribute( 'contentobject_id' ); //using the user extracted above</span><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="" mce_fixed="1">
</span></font>

Unfortunately...no such luck. Any pointers would be appreciated.

Thanks!

Jérôme Vieilledent

Moderated by: Jérôme Vieilledent

Friday 08 October 2010 4:23:56 am

Hi Conrad

If you're talking about the modified timestamp, here's the tip :

$myContentObject->setAttribute( 'modified', $myTimestamp );
$myContentObject->store( array( 'modified' ) ) ;

Quoc Huy Nguyen Dinh

Friday 08 October 2010 6:08:41 am

@Jerome, I think what Conrad want is to be able to set the modifier(person) id for the edit of an object.

@Conrad, if I'm not wrong there is no modifier_id as the modifier of an object is the creator of the new version of an object.

For example you create a complete new object and publish it:

version #1, creator id=45 => object_id=5454, current version = 1

Then you edit the object (means you should create a new version of the object):

version #2, creator id=46 => object_id=5454, current version = 2

So currently the object of id 5454 is at current version set to #2, the creator of version #2 is of id 46. So this means the current modifier of object id 5454 is of id 46. See what I mean?

If you are trying to edit an object in PHP by directly accessing the attributes then store it without creating a new version, you're doing it wrong, or would I say not in the recommended way.

You can have a look at the file:

kernel/content/edit.php

Conrad Decker

Wednesday 13 October 2010 10:12:08 am

(Sorry for the delayed response, didn't have the notifications enabled)

Ahhh...gotcha, that's perfect guys! Thank you so much.

@Jerome, I was in fact looking for a way to set the id of the user that modified the object, but I think what Quoc mentioned makes sense. I'm going to give that a shot...however, I just came across a need to update the modified timestamp, so thank you as well for your input.

@Quoc, I see what you're saying...that does indeed make sense. I'm going to try it that way and see how I make out.

Cheers!

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 18 2025 02:59:51
Script start
Timing: Jan 18 2025 02:59:51
Module start 'layout'
Timing: Jan 18 2025 02:59:51
Module start 'content'
Timing: Jan 18 2025 02:59:51
Module end 'content'
Timing: Jan 18 2025 02:59:51
Script end

Main resources:

Total runtime0.4873 sec
Peak memory usage4,096.0000 KB
Database Queries64

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0039 588.2031152.6563
Module start 'layout' 0.00390.0021 740.859439.5000
Module start 'content' 0.00600.4799 780.3594586.5703
Module end 'content' 0.48590.0013 1,366.929716.0938
Script end 0.4873  1,383.0234 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00300.6149160.0002
Check MTime0.00120.2425160.0001
Mysql Total
Database connection0.00050.103910.0005
Mysqli_queries0.432688.7723640.0068
Looping result0.00050.1079620.0000
Template Total0.465595.520.2327
Template load0.00200.407620.0010
Template processing0.463595.114420.2317
Template load and register function0.00010.022210.0001
states
state_id_array0.00070.137710.0007
state_identifier_array0.00080.166320.0004
Override
Cache load0.00170.3389350.0000
Sytem overhead
Fetch class attribute can translate value0.00080.164530.0003
Fetch class attribute name0.00100.200170.0001
XML
Image XML parsing0.00140.284430.0005
class_abstraction
Instantiating content class attribute0.00000.002680.0000
General
dbfile0.00110.2286310.0000
String conversion0.00000.001140.0000
Note: percentages do not add up to 100% because some accumulators overlap

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
4content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
4content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
6content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
3content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 19
 Number of unique templates used: 6

Time used to render debug report: 0.0001 secs