Forums / Developer / Extension : How to retrieve a node_id sort_array ?

Extension : How to retrieve a node_id sort_array ?

Author Message

H-Works Agency

Tuesday 30 May 2006 4:26:47 am

Hi all

I am using 'fetchObjectTree' function to export contents to a CSV file in my modified "CSV Extract" extension.

I want to make shure that the sorting of the export is the same as the sorting of the parent folder.

I use 'fetchObjectTree' like this :

$list =& eZContentFunctionCollection::fetchObjectTree($Subtree, $sortBy, false, false, $Offset, $Limit,
$Class_id, false, false, 'include', array($Class_id),
false, false, true, true, true);

My problem is to retrieve the 'sort_array' of a certain node to force the function to order the results the same as the parent node with the $sortBy variable. '$Subtree' is the node_id integer.

This is the code i use to retrieve the sort_array for this node_id :

$myNode =& eZContentObjectTreeNode::fetch($Subtree, false, false);
$sortBy = eZContentObjectTreeNode::sortArrayBySortFieldAndSortOrder($myNode['sort_field'], $myNode['sort_order']);
$sortBy = $sortBy[0];

$sortBy give me the sort_array of the $Subtree node_id

It works but is there a shorter/cleaner way to do the same thing ? Why all those classes/php functions aren't documented ?

Thanx for every help :p

Martin

EZP is Great

Łukasz Serwatka

Thursday 01 June 2006 12:13:49 am

Hi,

You can get sort_array and node_id like:

include_once( 'kernel/classes/ezcontentobjecttreenode.php' );

// {def $node=fetch( 'content', 'node', hash( 'node_id', 2 ) )}
$node =& eZContentObjectTreeNode::fetch( 2 );

// {$node.node_id}
$node->attribute('node_id');

// {$node.sort_array}
$nodeSortArray =& $node->sortArray();
// {$node.parent.sort_array}
$parent =& $node->fetchParent();
$parentSortArray =& $parent->sortArray();

Hope it will help you.

Personal website -> http://serwatka.net
Blog (about eZ Publish) -> http://serwatka.net/blog

H-Works Agency

Thursday 01 June 2006 1:40:20 pm

Thanx Lukas, i am gonna try that.

But if i understand, if i want to only get a node sort_array i should use :

$node =& eZContentObjectTreeNode::fetch( 2 );
$nodeSortArray =& $node->sortArray();

Or do i have to include the following line inbetween :

$node->attribute('node_id');

Well i am gonna try anyway. Thanx a lot for your help.

Martin

EZP is Great

Łukasz Serwatka

Thursday 01 June 2006 1:47:21 pm

No, you don't need to put $node->attribute('node_id'); between. It was just an example how to get node id ;)

Personal website -> http://serwatka.net
Blog (about eZ Publish) -> http://serwatka.net/blog

H-Works Agency

Friday 02 June 2006 11:05:18 am

Ok thanx a lot...it works !

I finally use this code :

$node =& eZContentObjectTreeNode::fetch($node_id);
$sortBy =& $node->sortArray();
$sortBy = $sortBy[0];

I had to add '$sortBy = $sortBy[0];' otherwise it output 'array(array('published',false))' and not just 'array('published',false)' as needed.

Martin

EZP is Great

eZ debug

Timing: Jan 31 2025 03:35:43
Script start
Timing: Jan 31 2025 03:35:43
Module start 'content'
Timing: Jan 31 2025 03:35:43
Module end 'content'
Timing: Jan 31 2025 03:35:43
Script end

Main resources:

Total runtime0.2852 sec
Peak memory usage8,192.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0078 588.0625370.2734
Module start 'content' 0.00780.0138 958.33591,005.6094
Module end 'content' 0.02160.2635 1,963.94533,895.0391
Script end 0.2851  5,858.9844 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00451.5866200.0002
Check MTime0.00140.4985200.0001
Mysql Total
Database connection0.00070.246510.0007
Mysqli_queries0.182864.12181410.0013
Looping result0.00140.48541390.0000
Template Total0.263192.310.2631
Template load0.00090.302310.0009
Template processing0.262291.953010.2622
Override
Cache load0.00060.215010.0006
Sytem overhead
Fetch class attribute can translate value0.00140.507910.0014
XML
Image XML parsing0.00040.136110.0004
General
dbfile0.00672.3460200.0003
String conversion0.00000.002130.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/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