1<?php
2
3/* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5/**
6 *
7 *
8 * @author Alex Killing <alex.killing@gmx.de>
9 * @version $Id$
10 * @ingroup
11 */
12class ilGlyphGUI
13{
14    const UP = "up";
15    const DOWN = "down";
16    const ADD = "add";
17    const REMOVE = "remove";
18    const PREVIOUS = "previous";
19    const NEXT = "next";
20    const CALENDAR = "calendar";
21    const CLOSE = "close";
22    const ATTACHMENT = "attachment";
23    const CARET = "caret";
24    const DRAG = "drag";
25    const SEARCH = "search";
26    const FILTER = "filter";
27    const NO_TEXT = "**notext**";
28    const INFO = "info";
29    const EXCLAMATION = "exclamation";
30
31    protected static $map = array(
32        "up" => array("class" => "glyphicon glyphicon-chevron-up", "txt" => "up"),
33        "down" => array("class" => "glyphicon glyphicon-chevron-down", "txt" => "down"),
34        "add" => array("class" => "glyphicon glyphicon-plus", "txt" => "add"),
35        "remove" => array("class" => "glyphicon glyphicon-minus", "txt" => "remove"),
36        "previous" => array("class" => "glyphicon glyphicon-chevron-left", "txt" => "previous"),
37        "next" => array("class" => "glyphicon glyphicon-chevron-right", "txt" => "next"),
38        "calendar" => array("class" => "glyphicon glyphicon-calendar", "txt" => "calendar"),
39        "close" => array("class" => "glyphicon glyphicon-remove", "txt" => "close"),
40        "attachment" => array("class" => "glyphicon glyphicon-paperclip", "txt" => "attachment"),
41        "caret" => array("class" => "", "txt" => ""),
42        "drag" => array("class" => "glyphicon glyphicon-share-alt", "txt" => "drag"),
43        "search" => array("class" => "glyphicon glyphicon-search", "txt" => "search"),
44        "filter" => array("class" => "glyphicon glyphicon-filter", "txt" => "filter"),
45        "exclamation" => array("class" => "glyphicon glyphicon-exclamation-sign ilAlert", "txt" => "exclamation"),
46        "info" => array("class" => "glyphicon glyphicon-info-sign", "txt" => "info")
47    );
48
49    /**
50     * Get glyph html
51     *
52     * @param string $a_glyph glyph constant
53     * @param string $a_text text representation
54     * @return string html
55     */
56    public static function get($a_glyph, $a_text = "")
57    {
58        global $DIC;
59
60        $lng = $DIC->language();
61
62        $html = "";
63        $text = ($a_text == "")
64            ? $lng->txt(self::$map[$a_glyph]["txt"])
65            : (($a_text == self::NO_TEXT)
66                ? ""
67                : $a_text);
68        switch ($a_glyph) {
69            case self::CARET:
70                $html = '<span class="caret"></span>';
71                break;
72
73            default:
74                $html = '<span class="sr-only">' . $text .
75                    '</span><span class="' . self::$map[$a_glyph]["class"] . '"></span>';
76                break;
77
78        }
79        return $html;
80    }
81}
82