Auto update users

Auto update users

Saturday 09 July 2005 2:31:09 am - 5 replies

Author Message

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 :(

You must be logged in to post messages in this topic!

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