paaa14/c-flash-message

There is no license information available for the latest version (v1.0) of this package.

Adding a Flash-Message function

v1.0 2016-03-18 09:25 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:03:16 UTC


README

build:passed

Scrut

CodeCoverage

This is an module for simple flash-messages. It contains in general three functions:

setFlash('type', 'message'): Types allowed: success, notice, warning and error.

hasFlash(): Returns true if flash is set, else false.

getFlash(): Get flashMessage.

How to use CFlashMessage

1. Install via composer

Install CFlashMessage via packagist and composer. Add

"require": {
    "php": ">=5.4",
    "paaa14/c-flash-message" : "dev-master"
},

in your composer.json.

2. Set FlashMessage-class

Set flashMessage in your base class implementing Dependency Injection / Service Locator- file. If you are using Anax-MVC, ex.

File:src/DI/CDIFactoryDefault.php

Add $this->setShared('flashMessage', '\Anax\FlashMessage\CFlashMessage') (you maybe want to change the namespace for CFlashMessage.php)

3. Implement code in your template-file

File: theme/anax-base/index.tpl.php

In your div#main, put code:

<?php if($this->flashMessage->hasFlash()) : ?> 
    <?php $message = $this->flashMessage->getFlash(); ?>
    <div class="<?=$message['type']?>"><?=$message['message']?></div>
<?php endif; ?>

to see if flash has been set. If it returns true, show flashMessage.

Exemple:

<div id='main'>
<?php if(isset($main)) echo $main?>
<?php $this->views->render('main')?>
<?php if($this->flashMessage->hasFlash()) : ?> 
    <?php $message = $this->flashMessage->getFlash(); ?>
    <div class="<?=$message['type']?>"><?=$message['message']?></div>
<?php endif; ?>
</div>

4. Add stylesheet

Copy flash.css to your css-archive and be sure that flash.css is activated in your framework.

5. Session

Be sure that Sessions is activated in your framework. If you var_dump($_SESSION) you should have an empty session. If you are using Anax-MVC you might have to start the session manually i your frontcontroller.

Put $app->session() in the top of your controller, after you assign $app

6. Router

Make sure your framework handles routes. If you are using Anax-MVC, put $app->router->handle() in the bottom of your frontcontroller, before it's being sent to render.

7. Create routes and use FlashMessage

Exemple in Anax-MVC:

$app->router->add('', function() use ($app) {
    $app->flashMessage->setFlash('success', "Success! Update page to make this message disappear.");
    $app->views->addString('Flash is set, click on the link to view the flash', 'main');  
    $app->views->addString("<a href='" . $app->url->create('flash') . "'>Link</a>", 'main');
});

$app->router->add('flash', function() use($app) {
    $app->views->addString('In your template-file, there is a if-statement that checks if a flash has been set. If it returns TRUE, this message is shown. Update page to remove this message.');
});

To get Anax-MVC, visit: https://github.com/mosbth/Anax-MVC

Enjoy :)