Forums / Developer / "number of days old" in fetch ('content','list') ?

"number of days old" in fetch ('content','list') ?

Author Message

David Zaoui

Thursday 28 June 2007 9:13:12 am

Hi,

I am trying to fetch the articles of some nodes, but with a date constraint : they must have been created less than x days ago ( x being a variable fixed by administrator).
How can i do to obtain the date x days ago from today's date ?
In the fetch("content","search"....) function there is the "publish_date" parameter where you can choose to fetch content which has been published 1day/1week/1month ago.

It's in fact what i want but for the ("content","list") function.
Does this parameter exists?and if not, is it easy to calculate this "publish_date" manually?

Thanks

paul bolger

Thursday 28 June 2007 7:19:10 pm

Assuming you are talking about the publication date take a look at this

http://ez.no/doc/ez_publish/technical_manual/3_9/reference/modules/content/fetch_functions/list#eztoc64251_0_0_1

All time calculations are in Unix time, 86400 seconds in a day, 'now' is currentdate(). For an online converter go to

http://www.esqsoft.com/javascript_examples/date-to-epoch.htm

This should give you "the sum of now and one day is less than the timestamp in the attribute $node.object.data_map.timestamp"

lt (sum ( currentdate (), 86400 ), $node.object.data_map.timestamp ) 

I find that it's often helpful to define variables for subcalculations, $now, $next_week etc as it means a) you can check the output (if {$next_week} doesn't return what you'd expect you can hardly expect anything based on it to be any use), and b) your rules look a lot more like english, and it's much easier to see if the problem is in the code or the logic. I'm not sure what the performance overhead of doing this is though.

Paul Bolger

André R.

Friday 29 June 2007 1:10:31 am

You can it in list / tree fetch as well, but you have to make the attribute filter your self, and it works with unix timestamps as pointed out above.
With attribute filter you can combine several filters to only fetch content within timestamp x and y.

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom