Forum OpenACS Development: Re: Modifying xowiki page content from a script

Posted by Gustaf Neumann on
Do i understand correctly that you are updating the revision on a change instead of creating a new revision? You have to be aware of the side effects of this and you have to manage this on your own.

To check, whether my guess is right, browse to http://YOURMACHINE/xotcl/cache?cache=xotcl_object_cache
and flush the cache, and retry.

If this helps, then do in your script
::xo::clusterwide ns_cache flush xotcl_object_cache ::$item_id
(and maybe as well with the revision_id, if you fetch items in your program via revision_ids) after the update.

Posted by Alvaro Rodriguez on
It worked!

I'm not sure if this is the way to go, I'm trying to update the content of every Page Instance, is it better to do a new revision every time?, is there a way to get the attributes from the Page Instance, setting the value the way I want and putting it back, treating the Page Instance as an object.

Thanks in advance,

Posted by Byron Linares on
If I’m understanding correctly, what you want to do .
You can do it like this

set page [xowiki::Package instantiate_page_from_id -item_id $item_id]

set instance_attributes "ATTRIBUTE ATTRIBUTE_value ...."}

$page set page_template $tmp_item_id
$page set instance_attributes $instance_attributes
$template save
$template initialize_loaded_object

try it,

how do you solved the first problem ?

Posted by Alvaro Rodriguez on
Right, I was getting kind of confused, but of course this would be the right way of doing it, creating a new revision every time.


The first problem was solved with doing the flush like Gustaf said.

Posted by Gustaf Neumann on
you had any doubts?

in the "stable branch", the best thing is to load the page instance (or FormPage) object, read/write the "instance_attributes", and call "save" on the object. This cares about everything. The cache-page from my last posting is quite convenient to see, what is stored where in these objects.

I am working on improved support for FormPages, but the best thing is to wait for the new stuff until the release in case you are working on a product.

-gustaf neumann