Finding the 'top but one' node id

Author Message

Ben Pirt

Saturday 12 July 2003 6:23:15 am

Hello all,
I have created a subnavigation element which will get all of the child nodes to the one which you are currently viewing.
What I would like to do is if the user is further down in the site, they will be shown the second level of navigation in that section.
e.g.

root
------ products
------ ------ red
------ ------ blue
------ ------ green
------ ------ ------ furry
------ ------ ------ smooth
------ contact
------ etc....

so when they are in:
products >> green >> furry

(or anywhere in the products section for that matter)

the subnavigation will show:
red
blue
green

hope this makes sense. The code I am currently using is:

subnav

{let folder_list=fetch( content, list, hash(parent_node_id, $node.node_id,sort_by, array( array( priority ))))}

<ul>

{section name=Folder loop=$folder_list}
<li><a href={concat("/",$Folder:item.url_alias)|ezroot}>{$Folder:item.name|wash}</a></li>

{/section}
</ul>

I am using the nice url technique (thanks Karsten), hence ezroot - The variable I need to replace is $node.node_id with the node_id for the top but one node (in this case products). Because I don't know how many levels deep the site will be, I can't just refer to the grandparent node. Any ideas?

Thanks in advance,
Ben Pirt

Paulo Almeida

Saturday 12 July 2003 6:44:30 am

If i understand your needs, I seen 2 ways (if anyone have another i'll thanks to seen it too)
You dont know the deep o site, but you know the level of top of your subnavigation. why don't use path too find the top level? something like this:
fetch('content','list',hash(parent_node_id,$module_result.path[2].node_id))

The other ir create an ini file, define there the id of top subnavigation and use ezini in template. or define directly in template (i really don't like this solution).

Hope helped

Paulo Almeida

PACPI.COM Internet Consulting
http://pacpi.com

Ben Pirt

Sunday 13 July 2003 5:06:34 am

i'll try the path version
thanks for your help,
Ben

Ibrahim Khachab

Friday 25 July 2003 4:27:52 am

I think that $node.path_array is an array of the parent nodes ids of the actual node. $node.path_array[0] if the id of root of the site $node.path_array[1] is the id of main folder.

You may use the following code to do what you are asking for.

{section name=parent_path offset=1 loop=$node.path_array}
{let parent_node=fetch('content',node,hash(node_id,$parent_path:item))}
{$parent_path:parent_node.name} >>
{/let}
{/section}

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 18 2025 16:20:25
Script start
Timing: Jan 18 2025 16:20:25
Module start 'layout'
Timing: Jan 18 2025 16:20:25
Module start 'content'
Timing: Jan 18 2025 16:20:26
Module end 'content'
Timing: Jan 18 2025 16:20:26
Script end

Main resources:

Total runtime0.6649 sec
Peak memory usage4,096.0000 KB
Database Queries62

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0066 587.9141152.6250
Module start 'layout' 0.00660.0029 740.539139.4609
Module start 'content' 0.00950.6542 780.0000589.6328
Module end 'content' 0.66370.0012 1,369.632812.1563
Script end 0.6649  1,381.7891 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00380.5746160.0002
Check MTime0.00190.2906160.0001
Mysql Total
Database connection0.00180.274510.0018
Mysqli_queries0.602190.5570620.0097
Looping result0.00070.1065600.0000
Template Total0.632695.120.3163
Template load0.00200.297220.0010
Template processing0.630694.836120.3153
Template load and register function0.00020.035610.0002
states
state_id_array0.00140.213010.0014
state_identifier_array0.00080.127120.0004
Override
Cache load0.00180.2639540.0000
Sytem overhead
Fetch class attribute can translate value0.00260.394330.0009
Fetch class attribute name0.00110.160850.0002
XML
Image XML parsing0.00090.133930.0003
class_abstraction
Instantiating content class attribute0.00000.001750.0000
General
dbfile0.00080.1182160.0000
String conversion0.00000.000940.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
4content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
10content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
11content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
1content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 28
 Number of unique templates used: 6

Time used to render debug report: 0.0001 secs