API16

JTableNested/getPath

From Joomla! Documentation

< API16:JTableNested
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Method to get an array of nodes from a given node to its root.



Syntax[edit]

getPath($pk=null, $diagnostic=false)
Parameter Name Default Value Description
$pk null Primary key of the node for which to get the path.
$diagnostic false Only select diagnostic data for the nested sets.

Returns[edit]

mixed Boolean false on failure or array of node objects on success.

Defined in[edit]

libraries/joomla/database/tablenested.php

Importing[edit]

jimport( 'joomla.database.tablenested' );

Source Body[edit]

public function getPath($pk = null, $diagnostic = false)
{
        // Initialise variables.
        $k = $this->_tbl_key;
        $pk = (is_null($pk)) ? $this->$k : $pk;

        // Get the path from the node to the root.
        $select = ($diagnostic) ? 'SELECT p.'.$k.', p.parent_id, p.level, p.lft, p.rgt' : 'SELECT p.*';
        $this->_db->setQuery(
                $select .
                ' FROM `'.$this->_tbl.'` AS n, `'.$this->_tbl.'` AS p' .
                ' WHERE n.lft BETWEEN p.lft AND p.rgt' .
                ' AND n.'.$k.' = '.(int) $pk .
                ' ORDER BY p.lft'
        );
        $path = $this->_db->loadObjectList();

        // Check for a database error.
        if ($this->_db->getErrorNum()) {
                $this->setError($this->_db->getErrorMsg());
                return false;
        }

        return $path;
}



Examples[edit]

Code Examples[edit]