create new node in subfolder

Author Message

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

paul bolger

Monday 15 October 2007 9:42:50 pm

Ok, thanks.

I was wondering if there was a more direct way, but that'll work.

Paul Bolger

paul bolger

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>

Paul Bolger

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 31 2025 04:21:47
Script start
Timing: Jan 31 2025 04:21:47
Module start 'layout'
Timing: Jan 31 2025 04:21:47
Module start 'content'
Timing: Jan 31 2025 04:21:47
Module end 'content'
Timing: Jan 31 2025 04:21:47
Script end

Main resources:

Total runtime0.0173 sec
Peak memory usage2,048.0000 KB
Database Queries3

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0054 588.1328151.2109
Module start 'layout' 0.00540.0035 739.343836.6484
Module start 'content' 0.00890.0070 775.992294.2656
Module end 'content' 0.01600.0013 870.257833.9922
Script end 0.0172  904.2500 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.002413.9881140.0002
Check MTime0.00116.3211140.0001
Mysql Total
Database connection0.00053.121210.0005
Mysqli_queries0.004023.057730.0013
Looping result0.00000.127010.0000
Template Total0.00095.210.0009
Template load0.00074.203510.0007
Template processing0.00020.944210.0002
Override
Cache load0.00053.034210.0005
General
dbfile0.002212.751280.0003
String conversion0.00000.045640.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs