This repository has been archived on 2024-06-20. You can view files and clone it, but cannot push or open issues or pull requests.
peryoudow/vendor/league/plates/docs/extensions/uri.md
2020-01-06 14:23:12 +01:00

2.5 KiB

layout permalink title
default extensions/uri/ URI extension

URI

The URI extension is designed to make URI checks within templates easier. The most common use is marking the current page in a menu as "selected". It only has one function, uri(), but can do a number of helpful tasks depending on the parameters passed to it.

Installing the URI extension

The URI extension comes packaged with Plates but is not enabled by default, as it requires an extra parameter passed to it at instantiation.

// Load URI extension using global variable
$engine->loadExtension(new League\Plates\Extension\URI($_SERVER['PATH_INFO']));

// Load URI extension using a HttpFoundation's request object
$engine->loadExtension(new League\Plates\Extension\URI($request->getPathInfo()));

URI example

<ul>
    <li <?=$this->uri('/', 'class="selected"')?>><a href="/">Home</a></li>
    <li <?=$this->uri('/about', 'class="selected"')?>><a href="/about">About</a></li>
    <li <?=$this->uri('/products', 'class="selected"')?>><a href="/products">Products</a></li>
    <li <?=$this->uri('/contact', 'class="selected"')?>><a href="/contact">Contact</a></li>
</ul>

Using the URI extension

Get the whole URI.

<?=$this->uri()?>

Get a specified segment of the URI.

<?=$this->uri(1)?>

Check if a specific segment of the URI (first parameter) equals a given string (second parameter). Returns true on success or false on failure.

<?php if ($this->uri(1, 'home')): ?>

Check if a specific segment of the URI (first parameter) equals a given string (second parameter). Returns string (third parameter) on success or false on failure.

<?=$this->uri(1, 'home', 'success')?>

Check if a specific segment of the URI (first parameter) equals a given string (second parameter). Returns string (third parameter) on success or string (fourth parameter) on failure.

<?=$this->uri(1, 'home', 'success', 'fail')?>

Check if a regular expression string matches the current URI. Returns true on success or false on failure.

<?php if($this->uri('/home')): ?>

Check if a regular expression string (first parameter) matches the current URI. Returns string (second parameter) on success or false on failure.

<?=$this->uri('/home', 'success')?>

Check if a regular expression string (first parameter) matches the current URI. Returns string (second parameter) on success or string (third parameter) on failure.

<?=$this->uri('/home', 'success', 'fail')?>