BaseF3nr.php 1.58 KB
<?php
/**
 *
 * @author Adhidarma <adhisimon@gmail.com>
 */
class BaseF3nr {
    protected $f3;
    protected $test;

    function __construct() {
        $f3 = Base::instance();
        $this->f3 = $f3;

        $this->test = new Test();
    }

    protected function pushAlertToSession($message, $class = 'alert-error', $f3 = null) {
        if (!$f3) { $f3 = $this->f3; }

        $alerts = $this->getAlertsFromSession();
        $alerts[$class][] = $message;
        $f3->set('SESSION.alerts', $alerts);

        return $alerts;
    }

    final protected function addErrorMessageToSession($message, $class = 'alert-error', $f3 = null) {
        $this->pushAlertToSession($message, $class, $f3);
    }

    protected function getAlertsFromSession($f3 = null) {
        if (!$f3) { $f3 = $this->f3; }

        if (empty($f3->get('SESSION.alerts'))) {
            return array();
        }

        return $f3->get('SESSION.alerts');
    }

    protected function clearAlertsOnSession($f3 = null) {
        if (!$f3) { $f3 = $this->f3; }

        $f3->clear('SESSION.alerts');
    }

    /**
     * Get site name.
     */
    protected function getSiteName() {
        return $this->f3->get('SITE_NAME');
    }

    protected function dumpTestResult($test = null) {
        if (is_null($test)) { $test = $this->test; }

        foreach ($test->results() as $result) {
            echo $result['text'] . ": ";
            if ($result['status']) {
                echo 'PASS';
            } else {
                echo 'FAILED ('.$result['source'].')';
            }
            echo "<br/>\n";
        }
    }
}