Opdracht G1 isUri(...)

In ons menu is niet te zien op welke pagina we op dit moment zijn. We gaan dit wijzigen. Aan het eind van deze opdracht zal er een streep staan onder de huidige pagina.

De eerste functie die we gaan toevoegen heet isUri(...)

Deze functie kijkt of de huidige uri hetzelfde is als een gegeven uri. De functie aanroep doen we in het navigatie-menu.view.php

<a href="/contact" class="<?= isUri("contact") ? 'underline ' : '' ?>text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md font-medium">Contact</a>

In de class voegen we deze code toe

<?= isUri("contact") ? 'underline ' : '' ?>

Dit is een inline if-statement. Het werkt bijna hetzelfde als een normale vraag

isUri("contact")?

De eerste waarde is bij true, na de dubbele punt komt de false waarde

Dus bij true wordt er op het scherm geschreven underline

Bij false wordt er een lege string (niets) op het scherm geschreven. Let op de spatie achter 'underline ' als deze er niet zou staan dan wordt het resultaat underlinetext-gray-300 en dan werkt de opmaak niet.

Nu moet de functie nog worden gemaakt

functions.php

Maak een bestand /src/functions.php en voeg aan index.php een require toe zodat functies worden ingeladen. Doe dit tussen de require van config.php en router.php.

//handige functies
require __DIR__ . "/../src/functions.php";

In onze router.php hadden we al een stukje code die bij een REQUEST_URI de uri uitleest. Dus indien het verzoek http://localhost/contact is wordt er contact van gemaakt.

trim(parse_url($_SERVER['REQUEST_URI'])['path'], "/")

Schrijf de functie

function isUri(string $uri)
{
    if ( ... hier komt jou code ...) {
        return true;
    }
    return false;
}