Auto update users

Author Message

Steve P

Saturday 09 July 2005 2:31:09 am

I wonder if anyone can suggest a way for me to update my users from a script? I would like to update a field "payment_status" automatically on completion of a shop transaction ie to "paid_o5" or similar.

Best

Steve

Marco Zinn

Saturday 09 July 2005 3:28:39 am

Sounds to me as you would need some "Workflow event", which is triggered by some shop trigger.
This will involve PHP coding, AFAIK.
You will either need to changed an attribute value of some existing (user) object or create a new version of this. You cannot do this with pure template mechanims or so.
But: aren't there enough shop things available?
"Payment status" shouldn't be stored with a user, but with some order, i think. I'd expect, that this is availabe in ezPublish anyway (I never used shops myself yet).

Marco
http://www.hyperroad-design.com

Steve P

Saturday 09 July 2005 3:56:47 am

Thanks. In this case I am using the "shop" for a number of custom products including paid access to some areas of the site.

I was hoping for a short cut/example of using the store() function to update a single field in my [adapted] user group - I have not tried to use store() yet & need to get my head round the syntax.

Best wishes

Pål J Didriksen

Saturday 09 July 2005 5:26:38 am

I have used the following code to change an attribute value and store the change. Found most of the code somewhere on ez.no, so you should probaly thank someone else ;)

        // Fetch current version of the object (provided you have the objectID)
        $contentObject =& eZContentObject::fetch( $objectID );
        $contentObjectVersion =& $contentObject->version( $contentObject->attribute( 'current_version' ) );
        $contentObjectAttributes =& $contentObjectVersion->contentObjectAttributes();

        // Loop through the attributes, to find the right one (in this example, contentclassattribute_id=232)
        foreach (array_keys($contentObjectAttributes) as $key)
        {
            $contentObjectAttribute =& $contentObjectAttributes[$key];
            $contentClassAttribute =& $contentObjectAttribute->contentClassAttribute();

           if ($contentClassAttribute->attribute("id") == 232)
           {
               // Found it!
               $oldVal  = $contentObjectAttribute->attribute("data_int");
               $newVal  = $oldVal + 1;

               // Insert new value and store it
                                $contentObjectAttribute->setAttribute("data_int", $newVal);
               $contentObjectAttribute->store();
           }
        }

Steve P

Monday 11 July 2005 1:58:32 am

Great. I'll give it a try. Yhanks Pål

Steve P

Tuesday 12 July 2005 4:09:23 am

OK. Had a look at the code. I can see the logic but had hoped to use some code on a modified template [this looks like extension code?] simply to update one field without any action from the user ie when the page loads. Think i need more help :(

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 22:13:37
Script start
Timing: Jan 18 2025 22:13:37
Module start 'layout'
Timing: Jan 18 2025 22:13:37
Module start 'content'
Timing: Jan 18 2025 22:13:37
Module end 'content'
Timing: Jan 18 2025 22:13:37
Script end

Main resources:

Total runtime0.6763 sec
Peak memory usage4,096.0000 KB
Database Queries68

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0047 589.2422152.6094
Module start 'layout' 0.00470.0027 741.851639.4141
Module start 'content' 0.00740.6676 781.2656606.3594
Module end 'content' 0.67500.0013 1,387.625016.1875
Script end 0.6762  1,403.8125 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00310.4641160.0002
Check MTime0.00140.2006160.0001
Mysql Total
Database connection0.00060.093910.0006
Mysqli_queries0.620891.8020680.0091
Looping result0.00070.0984660.0000
Template Total0.646695.620.3233
Template load0.00200.299320.0010
Template processing0.644695.316020.3223
Template load and register function0.00030.038310.0003
states
state_id_array0.00160.232610.0016
state_identifier_array0.00120.181520.0006
Override
Cache load0.00180.2731250.0001
Sytem overhead
Fetch class attribute can translate value0.00120.184830.0004
Fetch class attribute name0.00140.206080.0002
XML
Image XML parsing0.00190.288230.0006
class_abstraction
Instantiating content class attribute0.00000.002680.0000
General
dbfile0.00160.2435220.0001
String conversion0.00000.001240.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
6content/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
2content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1content/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: 18
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs