Completed
Push — master ( 3845e2...5afe3b )
by Jean-Christophe
02:10
created

Gui::getOne()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.8666
c 0
b 0
f 0
cc 3
nc 3
nop 2
1
<?php
2
3
namespace Ubiquity\views;
4
5
/**
6
 * Classe technique destinée à la conception des interfaces
7
 * @author jc
8
 *
9
 */
10
class Gui {
11
12
	/**
13
	 * Affiche un objet ou un tableau d'objets en appliquant au préalable la méthode $method à chacun d'entre eux
14
	 * @param mixed $values Valeur(s) à afficher
15
	 * @param string $method Méthode de la classe GUI ou de la classe de $value
16
	 * @param string $implode séparateur
17
	 */
18
	public static function show($values, $method='toString', $implode="<br/>") {
19
		if (is_array($values)) {
20
			foreach ( $values as $v ) {
21
				Gui::showOne($v, $method);
22
				echo $implode;
23
			}
24
		} else
25
			Gui::showOne($values, $method);
26
	}
27
28
	/**
29
	 * Retourne un objet ou un tableau d'objets en appliquant au préalable la méthode $method à chacun d'entre eux
30
	 * @param mixed $values Valeur(s) à afficher
31
	 * @param string $method Méthode de la classe GUI ou de la classe de $value
32
	 * @param string $implode séparateur
33
	 */
34
	public static function get($values, $method='toString', $implode="<br/>") {
35
		$result="";
36
		if (is_array($values)) {
37
			foreach ( $values as $v ) {
38
				$result.=Gui::getOne($v, $method) . $implode;
39
			}
40
		} else
41
			$result=Gui::getOne($values, $method);
42
		return $result;
43
	}
44
45
	/**
46
	 * Affiche un objet $value en lui ayant au préalable appliqué la méthode $method
47
	 * @param Object $value
48
	 * @param string $method Méthode de la classe GUI ou de la classe de $value
49
	 */
50
	public static function showOne($value, $method='toString') {
51
		echo Gui::getOne($value, $method);
52
	}
53
54
	/**
55
	 * Retourne un objet $value en lui ayant au préalable appliqué la méthode $method
56
	 * @param Object $value
57
	 * @param string $method Méthode de la classe GUI ou de la classe de $value
58
	 */
59
	public static function getOne($value, $method='toString') {
60
		if (method_exists("GUI", $method)) {
61
			$value=GUI::$method($value);
62
		} else {
63
			if (method_exists($value, $method)) {
64
				$value=$value->$method();
65
			} else {
66
				$value=$value . '';
67
			}
68
		}
69
		return $value;
70
	}
71
72
	/**
73
	 *
74
	 * @param object $value
75
	 * @return string
76
	 */
77
	public static function addDelete($value) {
78
		return "<tr><td class='element'><input title='Sélectionner' type='checkbox' class='ck' id='ck" . $value->getId() . "' value='" . $value->getId() . "'><span title='Modifier...' class='update' id='update" . $value->getId() . "'>&nbsp;" . $value->toString() . "<span></td><td><span title='Supprimer...' class='delete' id='delete" . $value->getId() . "'>&nbsp;</span></td></tr>";
79
	}
80
81
	/**
82
	 *
83
	 * @param object $value
84
	 * @return string
85
	 */
86
	public static function toSelect($value) {
87
		return "<option class='element' id='element" . $value->getId() . "' value='" . $value->getId() . "'>" . $value->toString() . "</option>";
88
	}
89
90
	/**
91
	 * Retourne un objet ou un tableau d'objets sous forme de liste HTML (select)
92
	 * @param mixed $values Valeur(s) à afficher
93
	 * @param string $value Valeur actuelle
94
	 */
95
	public static function select($values, $value, $first=null) {
96
		$result="";
97
		if ($first) {
98
			$result.="<option class='element'>" . $first . "</option>";
99
		}
100
		foreach ( $values as $v ) {
101
			$selected="";
102
			$id=$v;
103
			if (is_object($v) === true) {
104
				$id=$v->getId();
105
			}
106
			if ($id === $value) {
107
				$selected="selected";
108
			}
109
			$result.="<option " . $selected . " class='element' id='element" . $id . "' value='" . $id . "'>" . $v . "</option>";
110
		}
111
		return $result;
112
	}
113
114
	/**
115
	 * Retourne l'expression $singulier au pluriel en fonction du nombre $nb
116
	 * @param string $singulier
117
	 * @param string $pluriel
118
	 * @param int $nb
119
	 */
120
	public static function pluriel($singulier, $pluriel, $nb) {
121
		if ($nb == 0) {
122
			$result="Aucun " . $singulier;
123
		} else {
124
			$result=sprintf(ngettext("%d " . $singulier, "%d " . $pluriel, $nb), $nb);
125
		}
126
		return $result;
127
	}
128
}
129