File: message.inc.php

package info (click to toggle)
zoph 1.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 16,632 kB
  • sloc: php: 28,044; javascript: 10,435; sql: 527; sh: 153; makefile: 4
file content (112 lines) | stat: -rw-r--r-- 3,216 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
/**
 * Message, display an informational or error message
 *
 * This file is part of Zoph.
 *
 * Zoph is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Zoph is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with Zoph; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @package Zoph
 * @author Jeroen Roos
 */

namespace template;

use conf\conf;

/**
 * Message template
 *
 * @package Zoph
 * @author Jeroen Roos
 */
class message {

    /** @var int message::SUCCESS - this message shows a succesful action  */
    public const SUCCESS=0;
    /** @var int message::INFO - this message is informational  */
    public const INFO=1;
    /** @var int message::WARNING - this message gives a warning */
    public const WARNING=2;
    /** @var int message::ERROR - this message displays an error */
    public const ERROR=3;
    /** @var int message::UNDEFINED - this message's status is unknown */
    public const UNDEFINED=99;

    /** @var int store message status */
    private $status=99;
    /** @var string store message text */
    private $msg = "";
    /** @var string store message class */
    private $class = "unknown";
    /** @var string store message title */
    private $title = null;

    /**
     * Create message object
     * @param int status: message::SUCCESS, message::INFO, message::WARNING or message::ERROR
     * @param string message
     */
    public function __construct(int $status, string $msg, string $title = null) {
        $this->status   = $status;
        $this->msg      = $msg;
        $this->title    = $title;
        $this->processStatus();
    }

    /**
     * Return block
     * @return block template
     */
    public function view() : block {
        return new block("message", array(
            "class" => $this->class,
            "title" => $this->title,
            "text"   => $this->msg,
        ));
    }

    /**
     * Display message
     * @return string template output
     */
    public function __toString() : string {
        return (string) $this->view();
    }

    /**
     * Process status, set class
     * this will determine colour and icon
     */
    private function processStatus() : void {
        switch ($this->status) {
            case self::SUCCESS:
                $this->class = "success";
                break;
            case self::INFO:
                $this->class = "info";
                break;
            case self::WARNING:
                $this->class = "warning";
                break;
            case self::ERROR:
                $this->class = "error";
                break;
            default:
                $this->class = "unknown";
                break;
        }
    }

}