public function path($field, $value, $column = null)
    {
        if (is_null($column)) {
            $column = $field;
        }
        $single = (!is_array($column)) ? $column : false;
        $path = array();
        if ($stmt = $this->db->query(array(
            'SELECT parent.'.$this->id.', '.$this->fields('parent', (array) $column),
            'FROM '.$this->table.' AS node',
            'INNER JOIN '.$this->table.' AS parent',
            'WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.'.$field.' = ?',
            'ORDER BY node.lft',
        ), $value, 'assoc')) {
            while ($row = $this->db->fetch($stmt)) {
                $path[array_shift($row)] = ($single) ? $row[$single] : $row;
            }
            $this->db->close($stmt);
        }

        return $path;
    }