📋
M307 - Interaktive Webseiten mit Form
  • Interaktive Webseite mit Formular erstellen
  • Tag 1
    • 01-Interaktive Websites
    • 02-Client-Server-Infrastruktur
    • 03 Einrichtung Entwicklungsumgebung
    • 04 PHP
      • 01 Einführung
      • 02 PHP Konfiguration
      • 03 PHP Übersicht
      • 04 Variablen
      • 05 Script Einbindung
      • 06 Arrays
      • 07 Kontrollstrukturen
      • 08 Interne Funktionen
      • 09 Benutzerdefinierte Funktionen
      • 10 Klassen
      • 11 Best Practices
      • 12 Links
    • 05 Strukturierung
      • Aufbau eines MVC (Schritt für Schritt)
    • 06 PHP Aufgaben
      • 01 Bottles of Beer
      • 02 Einfacher Spamfilter
      • 03 Clowns
      • 04 Pixelgenerator
      • 05 Todo-Liste
      • 06 Login-Funktion
      • 07 Navigation
      • 08 Gemeinsames Template
  • Tag 2
    • 01 Formulare Theorie
      • 01 Informationsgruppierung
      • 02 Design- und Strukturgrundlagen
      • 03 Verarbeiten von Formulardaten
      • 04 Validieren von Formulardaten
    • 02 JavaScript Theorie
      • 01 Einfuehrung
      • 02 JavaScript Übersicht
    • 03 Übungsaufgaben zu JavaScript
      • 01 Schere, Stein, Papier
      • 02 Whack-a-Button
    • 04 JavaScript Validierung
      • 01 Validierung
      • 02 Vor- und Nachteile
      • 03 Aufgabe
  • Tag 3
    • 01 Datenbankanbindung
      • 01 Datenbankanbindung
      • 02 Datenbankverbindung
      • 03 Datenbankabfragen
      • 05 Datenlöschung
      • 04 Datenspeicherung
      • 06 Datenmanipulation
      • 07 Refactoring
    • 02 Testing
    • 03 Security Aufgaben
      • 01 Gruppenarbeit
        • 01 Arbeitsauftrag
        • 02 Cross-Site-Scripting (XSS)
        • 03 SQL-Injections
        • 04 Local File Inclusion
      • 02 Eigenes Formular absichern
      • 03 Karl's Website
    • 04 Applikationssicherheit
Powered by GitBook
On this page
  • Aufgabenstellung
  • Lösungsschritte

Was this helpful?

Export as PDF
  1. Tag 1
  2. 06 PHP Aufgaben

07 Navigation

Aufgabenstellung

Erstelle eine Startseite für deine Übungen für alle deine Routes-Einträge eine gemeinsame Navigation.

Lösungsschritte

Schritt 1

Füge einen neuen Routes-Eintrag mit Pfad "/" ein:

$routes = [
  '/' => 'NavigationController@home', /* NEU */
  '/aufgabe/spam' => 'AufgabenController@spam',
  // ... alle weiteren bestehenden Routes ...
];

Erstelle einen Controller NavigationController und eine Methode home() und eine View home.view.php dazu. Erstelle erst mal manuell ein Array $navigation mit allen bisherigen Links, die du als Menü haben willst:

class NavigationController {
  public function home() {
    $navigation = [
      '/'             => 'Navigation - Home',
      '/aufgabe/spam' => 'Aufgaben - Spam',
      // ... weitere Menüpunkte
    ];
  }
}

Gib alle Links als Liste in home.view.php aus:

<ul>
  <?php foreach($navigation as $url => $label) : ?>
    <li><a href=".<?= $url ?>"><?= $label ?></a></li>
  <?php endforeach; ?>
</ul>

Schritt 2

Fülle nun das Array $navigation dynamisch aus der Routes-Tabelle. Für lesbare Beschriftungen kannst du z.B. die Stringfunktionen explode(), str_replace() und ucfirst() benutzen.

class NavigationController {

  public function home() {

    global $routes;
    $navigation = [];

    foreach ($routes as $url => $ControllerMethod) {
      // Aus $ControllerMethod ein lesbares Link-Label erzeugen.
      // Aus 'AufgabenController@spam' soll z.B. 'Aufgaben - Spam' werden.
      $navigationLabel = '...';

      $navigation[$url] = $navigationLabel;
    }
  }

Testing

  1. Prüfe nun in der View, ob die Links vernünftige Beschriftungen haben und die Links korrekt funktionieren.

  2. Füge einen neuen Routes-Eintrag hinzu und schau, ob das neue Menü korrekt erscheint und funktioniert.

Previous06 Login-FunktionNext08 Gemeinsames Template

Last updated 4 years ago

Was this helpful?