JTableNested/getTree: Difference between revisions
From Joomla! Documentation
m clean up |
m preparing for archive only |
||
| Line 4: | Line 4: | ||
===Syntax=== | ===Syntax=== | ||
| Line 62: | Line 62: | ||
===Examples=== | ===Examples=== | ||
=== Code Examples === | |||
<dpl> | <dpl> | ||
noresultsheader=\n | noresultsheader=\n | ||
category=getTree | category=getTree | ||
category=JTableNested | category=JTableNested | ||
namespace=CodeExample | |||
category=MethodExample | category=MethodExample | ||
include=* | include=* | ||
format= ,,, | format= ,,, | ||
</dpl> | </dpl> | ||
Latest revision as of 02:11, 25 March 2017
Description
Method to get a node and all its child nodes.
Syntax
getTree($pk=null, $diagnostic=false)
| Parameter Name | Default Value | Description |
|---|---|---|
| $pk | null | Primary key of the node for which to get the tree. |
| $diagnostic | false | Only select diagnostic data for the nested sets. |
Returns
mixed Boolean false on failure or array of node objects on success.
Defined in
libraries/joomla/database/tablenested.php
Importing
jimport( 'joomla.database.tablenested' );
Source Body
public function getTree($pk = null, $diagnostic = false)
{
// Initialise variables.
$k = $this->_tbl_key;
$pk = (is_null($pk)) ? $this->$k : $pk;
// Get the node and children as a tree.
$select = ($diagnostic) ? 'SELECT n.'.$k.', n.parent_id, n.level, n.lft, n.rgt' : 'SELECT n.*';
$this->_db->setQuery(
$select .
' FROM `'.$this->_tbl.'` AS n, `'.$this->_tbl.'` AS p' .
' WHERE n.lft BETWEEN p.lft AND p.rgt' .
' AND p.'.$k.' = '.(int) $pk .
' ORDER BY n.lft'
);
$tree = $this->_db->loadObjectList();
// Check for a database error.
if ($this->_db->getErrorNum()) {
$this->setError($this->_db->getErrorMsg());
return false;
}
return $tree;
}
Examples
Code Examples