PHP Classes

File: examples/custom.php

Recommend this page to a friend!
  Classes of Yuriy Tkachenko   Simple Flash Messages   examples/custom.php   Download  
File: examples/custom.php
Role: Example script
Content type: text/plain
Description: Demo Custom
Class: Simple Flash Messages
Display message with different CSS frameworks
Author: By
Last change: Update code
Date: 1 year ago
Size: 1,941 bytes
 

Contents

Class file image Download
<?php

use Tamtamchik\SimpleFlash\BaseTemplate;
use
Tamtamchik\SimpleFlash\TemplateInterface;
use function
Tamtamchik\SimpleFlash\flash;

session_start();

require_once
__DIR__ . '/../vendor/autoload.php';

class
CustomTemplate extends BaseTemplate implements TemplateInterface
{
    protected
$prefix = '<li>'; // every line prefix
   
protected $postfix = '</li>'; // every postfix
   
protected $wrapper = '<ul class="a a-%s">%s</ul>'; // wrapper over messages of same type

    /**
     * @param string $messages - message text
     * @param string $type - message type: success, info, warning, error
     *
     * @return string
     */
   
public function wrapMessages(string $messages, string $type): string
   
{
        return
sprintf($this->getWrapper(), $type, $messages);
    }
}

flash()->setTemplate(new CustomTemplate)->error(['Invalid email!', 'Invalid username!'])
    ->
warning('Warning message.')
    ->
info('Info message.')
    ->
success('Success message!');
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test custom template example.</title>

    <style>
        .container {
            max-width: 600px;
            margin: 0 auto;
            font-family: -apple-system, --sans-serif, sans-serif;
        }

        .a {
            border: 1px solid;
            border-radius: 10px;
            padding: 1em;
            margin: 0.25em 0;
        }

        .a li {
            list-style: none;
        }

        .a-info {
            background: lightblue;
        }

        .a-error {
            background: lightpink;
        }

        .a-warning {
            background: lightgoldenrodyellow;
        }

        .a-success {
            background: lightgreen;
        }
    </style>
</head>
<body>

<?php include_once '_ribbon.php'; ?>

<div class="container" style="width: 600px;">

    <?php include_once '_menu.php'; ?>

    <?= flash() ?>

</div>

</body>
</html>