MilanLucas / educom-webshop-database-1708004726

0 stars 0 forks source link

Er zit wat business logica in de presentatie laag van `showMenu` #16

Open JeroenHeemskerk opened 8 months ago

JeroenHeemskerk commented 8 months ago

In de code hieronder zit wat business layer logica namelijk !isset($_SESSION['userName'] en getSessionUser() in de presentatie laag: https://github.com/MilanLucas/educom-webshop-database-1708004726/blob/d900ffa652908049b7aff2159ff54e4c88d3c7ce/index.php#L201-L219

Je kan beter een lijst (lees: associative array) met "menuitems" (link en label) onderin processRequest creëren.

  // ...
  $data['menu'] = array('home' => 'Home', 'about' => 'Over mij', 'contact' => 'Contact', 'webshop => 'WEBSHOP');
  if (isUserLoggedIn()) {
    $data['menu']['cart'] = "Winkelwagen";
    $data['menu']['password'] = "Wachtwoord";
    $data['menu']['logout'] = "Uitloggen " . getSessionUser()); 
  } else {
    $data['menu']['register'] = "Registreren";
    /* ... */
  }
  return $data;
}

Je kan nu in de showMenu een foreach loop maken en door alle velden in het 'menu'-array te lopen

 function showMenu() {  
     echo '<ul class="menu">'; 
     foreach($data['menu'] as $link => $label) { 
         showMenuItem($link, $label); 
     } 
     echo '</ul>';  
 }
JeroenHeemskerk commented 8 months ago

Plaats deze code return isset($_SESSION['userName']; in een functie isUserLoggedIn() in de session_manager.php. Zo hou je alle code die iets doet met $_SESSION in de session_manager