Redaxscript\Messenger::render PHP Method

render() public method

render
Since: 3.0.0
public render ( string $type = null, mixed $message = null, string $title = null ) : string
$type string type of the flash
$message mixed message of the flash
$title string title of the flash
return string
    public function render($type = null, $message = null, $title = null)
    {
        $output = Hook::trigger('messengerStart');
        $outputItem = null;
        /* html elements */
        if ($title) {
            $titleElement = new Html\Element();
            $titleElement->init('h2', ['class' => $this->_optionArray['className']['title'] . ' ' . $this->_optionArray['className']['notes'][$type]])->text($title);
        }
        $boxElement = new Html\Element();
        $boxElement->init('div', ['class' => $this->_optionArray['className']['box'] . ' ' . $this->_optionArray['className']['notes'][$type]]);
        /* create a list */
        if (is_array($message) && count($message) > 1) {
            $listElement = new Html\Element();
            $listElement->init('ul', ['class' => $this->_optionArray['className']['list']]);
            /* collect item output */
            foreach ($message as $value) {
                $outputItem .= '<li>' . $value . '</li>';
            }
            $boxElement->html($listElement->html($outputItem));
        } else {
            $boxElement->html(array_key_exists(0, $message) ? $message[0] : $message);
        }
        /* collect output */
        $output .= $titleElement . $boxElement . $this->_renderAction($type);
        $output .= Hook::trigger('messengerEnd');
        return $output;
    }

Usage Example

Example #1
0
 /**
  * testRender
  *
  * @since 3.0.0
  *
  * @param array $render
  * @param array $actionArray
  * @param string $expect
  *
  * @dataProvider providerRender
  */
 public function testRender($render = null, $actionArray = null, $expect = null)
 {
     /* setup */
     $messenger = new Messenger($this->_registry);
     $messenger->init();
     $messenger->setUrl($actionArray['text'], $actionArray['url'])->doRedirect($actionArray['timeout']);
     /* actual */
     $actual = $messenger->render($render['type'], $render['message'], $render['title']);
     /* compare */
     $this->assertEquals($expect, $actual);
 }