Advertisement
Guest User

CNavigation

a guest
Dec 21st, 2015
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.26 KB | None | 0 0
  1. src/CNavigation.php
  2. <?php
  3. class CNavigation
  4. {
  5.     public static function GenerateMenu($menu, $class)
  6.     {
  7.         if(isset($menu['callback']))
  8.         {
  9.             $items = call_user_func($menu['callback'], $menu['items']);
  10.         }
  11.         $html = "<nav class='$class'>\n";
  12.         foreach($items as $item)
  13.         {
  14.             $html .= "<a href='{$item['url']}' class='{$item['class']}'>{$item['text']}</a>\n";
  15.         }
  16.         $html .= "</nav>\n";
  17.         return $html;
  18.     }
  19. }
  20. ?>
  21.  
  22. theme/functions.php
  23. /**
  24. * Navigation bar
  25. */
  26.  
  27. function modifyNavbar($items)
  28. {
  29.     $ref = isset($_GET['p']) && isset($items[$_GET['p']]) ? $_GET['p'] : null;
  30.     if($ref) {
  31.         $items[$ref]['class'] .= 'selected';
  32.     }
  33.     return $items;
  34. }
  35.  
  36. $menu = array(
  37.   'callback' => 'modifyNavbar',
  38.   'items' => array(
  39.     'hem'  => array('text'=>'Hem',  'url'=>'me.php', 'class'=>null),
  40.     'redovisning'  => array('text'=>'Redovisning',  'url'=>'redovisning.php', 'class'=>null),
  41.     'källkod' => array('text'=>'Källkod', 'url'=>'source.php', 'class'=>null),
  42.   ), 'callback_selected' => function($url) {
  43.     if(basename($_SERVER['SCRIPT_FILENAME']) == $url) {
  44.       return true;
  45. );
  46.  
  47. theme\index.tpl.php
  48.  
  49. <?php echo CNavigation::GenerateMenu($menu); ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement