summaryrefslogtreecommitdiff
path: root/src/view
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2022-12-20 03:31:33 +0100
committerpolo <ordipolo@gmx.fr>2022-12-20 03:31:33 +0100
commit7d564efbccc4b361d2fa2db2902fb35882304aae (patch)
treeefc28d94a1387f918c84201318880d74a52adf84 /src/view
parentdedbe2f5cee33431c1299c7f0dbef4e247dc2447 (diff)
downloadAppliGestionPHP-7d564efbccc4b361d2fa2db2902fb35882304aae.zip
recherche de clients
Diffstat (limited to 'src/view')
-rw-r--r--src/view/Zenity.php62
-rw-r--r--src/view/zenity_setup.php2
2 files changed, 50 insertions, 14 deletions
diff --git a/src/view/Zenity.php b/src/view/Zenity.php
index 04c9221..1299d1c 100644
--- a/src/view/Zenity.php
+++ b/src/view/Zenity.php
@@ -9,7 +9,7 @@ abstract class ZenityCmd
9 protected $command_type = ''; 9 protected $command_type = '';
10 protected $rows = []; 10 protected $rows = [];
11 private $title = 'ORDIPOLO'; 11 private $title = 'ORDIPOLO';
12 private $text = ''; 12 protected $text = '';
13 protected $width = 300; 13 protected $width = 300;
14 protected $height = 200; // recalculée en fonction du contenu, vaut au minimum 150 14 protected $height = 200; // recalculée en fonction du contenu, vaut au minimum 150
15 15
@@ -31,35 +31,71 @@ abstract class ZenityCmd
31 31
32class ZenityList extends ZenityCmd 32class ZenityList extends ZenityCmd
33{ 33{
34 public function __construct(string $text, array $rows) 34 private $columns = 1; // tableau simple ou multidimensionnel?
35
36 public function __construct(string $text, array $rows = [], int $columns = 1)
35 { 37 {
36 $this->command_type = ' --list'; 38 $this->command_type = ' --list';
37 parent::__construct($text, $rows); 39 parent::__construct($text, $rows);
40 $this->columns = $columns;
38 $this->height = 80 + count($this->rows) * 25; 41 $this->height = 80 + count($this->rows) * 25;
39 $this->command .= ' --width=' . $this->width;
40 $this->command .= ' --height=' . $this->height; 42 $this->command .= ' --height=' . $this->height;
41 $this->command .= ' --hide-header'; // ligne inutile, il y a déjà le --text 43 $this->command .= ' --hide-header'; // ligne inutile, il y a déjà le --text
42 self::oneColumnZenityList($this->rows); 44 if($this->rows !== [])
45 {
46 $this->command .= ' --width=' . $this->width;
47 $this->fillZenityList();
48 }
43 } 49 }
44 50
45 // cas ou $this->rows est renseignée après 51 // cas ou $this->rows est renseignée après
46 public function setEntries(array $rows_set) 52 // la valeur de $columns n'est plus nécessairement celle apr défaut
53 public function setListRows(array $rows, string $table)
47 { 54 {
48 $this->rows = $rows_set; 55 $this->rows = $rows;
56 $this->columns = count(StructTablesDB::$structureOfTables[$table]);
57 $this->width = 600;
58 $this->command .= ' --width=' . $this->width;
59 $this->fillZenityList();
49 } 60 }
50 61
51 // cas où on veut une seule colonne 62 // noter que la syntaxe de zentity --list est déroutante!
52 private function oneColumnZenityList(array $rows) 63 // le remplissage est horizontal et le nombre de colonne dépend du nombre d'occurence de --column=""
64 public function fillZenityList()
53 { 65 {
54 $output = ' --column=""'; 66 $output = '';
55 foreach($rows as $entry) 67 if($this->columns === 1)
56 { 68 {
57 $output .= ' "' . $entry . '"'; // forme: ' "choix 1" "choix 2"' 69 $output .= ' --column=""';
70 // remplissage vertical
71 foreach($this->rows as $one_row)
72 {
73 $output .= ' "' . $one_row . '"'; // forme: ' "choix 1" "choix 2"'
74 }
75 }
76 elseif($this->columns >= 2) // marche quelque soit le nombre de colonnes
77 {
78 for($i = 0; $i < $this->columns; $i++)
79 {
80 $output .= ' --column=""';
81 }
82 // remplissage horizontal, un sous-tableau = une ligne
83 foreach($this->rows as $one_row)
84 {
85 foreach($one_row as $one_field)
86 {
87 $output .= ' "' . $one_field . '"';
88 }
89 }
58 } 90 }
59 $this->command .= $output; 91 $this->command .= $output;
60 } 92 }
61 93
62 // cas où on veut plusieurs colonnes, le remplissage est horizontal, oui c'est tordu! 94 public function cleanCommand()
95 {
96 $this->command = 'zenity';
97 $this->__construct($this->text);
98 }
63} 99}
64 100
65class ZenityQuestion extends ZenityCmd 101class ZenityQuestion extends ZenityCmd
@@ -74,7 +110,7 @@ class ZenityQuestion extends ZenityCmd
74 } 110 }
75} 111}
76 112
77// note: le formulaire renvoie une chaine avecdes pipes | entre les zones de texte (qui peuvent être vides) 113// note: le formulaire renvoie une chaine avec des pipes | entre les zones de texte (qui peuvent être vides)
78// si on clique sur 'Annuler', renvoie une chaine vide 114// si on clique sur 'Annuler', renvoie une chaine vide
79class ZenityForms extends ZenityCmd 115class ZenityForms extends ZenityCmd
80{ 116{
diff --git a/src/view/zenity_setup.php b/src/view/zenity_setup.php
index 503ae71..042d1ab 100644
--- a/src/view/zenity_setup.php
+++ b/src/view/zenity_setup.php
@@ -30,7 +30,7 @@ $MenuEnregistrement = new ZenityList($menu_enregistrement_text, $menu_enregistre
30$MenuDocuments = new ZenityList($menu_documents_text, $menu_documents_entrees); 30$MenuDocuments = new ZenityList($menu_documents_text, $menu_documents_entrees);
31$MenuCommunication = new ZenityList($menu_communication_text, $menu_communication_entrees); 31$MenuCommunication = new ZenityList($menu_communication_text, $menu_communication_entrees);
32$RechercheClient = new zenityEntry($recherche_client_text); 32$RechercheClient = new zenityEntry($recherche_client_text);
33$ResultatsRechercheClient = new zenityList($resultats_recherche_client_text, []); 33$ResultatsRechercheClient = new ZenityList($resultats_recherche_client_text, [], 2);
34$NouveauClient = new ZenityForms($nouveau_client_text, $nouveau_client_entrees); 34$NouveauClient = new ZenityForms($nouveau_client_text, $nouveau_client_entrees);
35$Calendrier = new ZenityCalendar($calendar_text); 35$Calendrier = new ZenityCalendar($calendar_text);
36$FormulairePrestation = new ZenityForms($formulaire_text, $formulaire_entrees); 36$FormulairePrestation = new ZenityForms($formulaire_text, $formulaire_entrees);