Revision: 17949
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 17, 2009 13:20 by awellis
Initial Code
/** * Get Menu * * Builds a menu based on what the current user has access to. * * @return string */ public function get_menu() { // Load the available paths from the database. $crm = url::is_admin() ? '1' : '0'; $sql = 'SELECT p.id, p.parent_id, p.path, p.text FROM paths AS p, path_users AS u WHERE u.user_id='.$this->user->id.' AND u.path_id=p.id ORDER BY p.parent_id ASC, p.display ASC'; $query = $this->db->query($sql); // Loop through the results and build a new array. $pages = array(); foreach ($query as $row) { $data = array( 'path' => $row->path, 'text' => $row->text ); // Parent page? if ($row->parent_id == 0) { $pages[$row->id] = $data; } else { $pages[$row->parent_id]['children'][] = $data; } } // Build the output $output = ''; foreach ($pages as $page) { $output .= '<ul><li><a href="'.$page['path'].'">'.$page['text'].'</a>'; // Build children. $total = isset($page['children']) ? count($page['children']) : 0; if ($total > 0) { $output .= '<ul>'; for ($i = 0; $i < $total; ++$i) { $output .= '<li><a href="'.$page['children'][$i]['path'].'">'.$page['children'][$i]['text'].'</a></li>'; } $output .= '</ul>'; } $output .= '<li></ul>'; } return $output; }
Initial URL
Initial Description
Initial Title
Build Menu Based on User Permissions
Initial Tags
Initial Language
PHP