Forums / Setup & design / create new node in subfolder
paul bolger
Sunday 14 October 2007 6:27:18 pm
I have a button on some pages on my site which allows users to create a new object, a calendar item. To reduce clutter in the future I need to organise the items into subfolders named by year ("2007", "2008" etc).
Without knowing the node ids for these folders is there a way to make ezpublish create objects in the correct folder?
NodeID doesn't seem to work with friendly URLs.
If you can't specify the node where the object should be created by URL the solution would seem to be to:
Get current node URL; Concatenate the subfolder name;Convert the result to a node id... and that's the bit I'm lost with - how get the ID of a node by specifying its URL?
Paul Bolger
André R.
Monday 15 October 2007 1:19:09 am
Why not fetch the children and use the id the of the one with the current year as name?
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
Monday 15 October 2007 9:42:50 pm
Ok, thanks.
I was wondering if there was a more direct way, but that'll work.
Friday 19 October 2007 12:50:09 am
And this is what ended up working for me.
<bold>Note</bold>: This is in a calendar template based on Agenda2, and $curr_year is defined earlier.
{*tests for the node which contains this years events*} {foreach $node.children as $years} {if eq($curr_year,$years.name)}{def $this_years_node=$years.node_id}{/if} {/foreach} <div class="interaction-box" style="margin-top: 1em;text-align:center"> <p style="width: 200px">Create a new Calendar event</p> <form method="post" action={'/content/action'|ezurl} style="margin: .2em 0"> <input type="submit" name="NewButton" value="Create" class="button" /> <input type="hidden" name="ClassID" value="29" /> <input type="hidden" name="NodeID" value="{$this_years_node}" /> <input type="hidden" name="RedirectURIAfterPublish" value="/community/community_calendar" /> </form> </div>