summaryrefslogtreecommitdiff
path: root/model/Classes.php
diff options
context:
space:
mode:
Diffstat (limited to 'model/Classes.php')
-rw-r--r--model/Classes.php176
1 files changed, 176 insertions, 0 deletions
diff --git a/model/Classes.php b/model/Classes.php
new file mode 100644
index 0000000..d940e53
--- /dev/null
+++ b/model/Classes.php
@@ -0,0 +1,176 @@
1<?php
2// model/ArticlesManager.php
3
4class ArticlesManager
5{
6 private $page = ''; // page et donc dossier concerné
7 //private $Ascending = True; // ordre des éléments du tableau $files
8 private $files; // noms des fichiers d'un dossier
9 private $fileName; // correspond à $_SESSION['nomFichier']
10 private $nbArticles; // un fichier = un article
11 private $articles; // contenu des fichiers
12
13 // SET
14 public function setPage($page)
15 {
16 $this->page = $page;
17 }
18
19 //public function setAscending($croissant)
20 //{
21 // $this->Ascending = $croissant;
22 //}
23
24 public function findFileName($numArticle)
25 {
26 $this->fileName = $this->files[$numArticle - 1];
27 }
28
29 public function setFileName($nomFichier)
30 {
31 $this->fileName = $nomFichier;
32 }
33
34 // GET
35 public function getPage()
36 {
37 return($this->page);
38 }
39
40 public function getFileName()
41 {
42 return($this->fileName);
43 }
44
45 public function nbArticles()
46 {
47 return($this->nbArticles);
48 }
49
50
51 // tableau des noms des articles
52 public function getFiles()
53 {
54 if($this->page == '')
55 {
56 die("debug: la méthode setPage() doit être appelée avant toute autre.");
57 }
58
59 $this->files = glob('data/' . $this->page . '/html/*.html');
60
61 //$this->nbArticles = count($this->files);
62 }
63
64 // ordre du tableau des noms de fichiers
65 public function reverseFilesArray()
66 {
67 $this->files = array_reverse($this->files);
68 }
69
70
71 // fonctions CRUD (create - read - update - delete)
72 // ce sont les 4 opérations de base qu'un programme doit permettre pour être complet
73
74 // create
75 public function create($content)
76 {
77 if($this->page == '')
78 {
79 die("debug: la méthode setPage() doit être appelée avant toute autre.");
80 }
81
82 // nommer les fichiers avec le timestamp
83 // - trie par ordre chronologique
84 // - rendre quasi impossible d'avoir deux fois le même nom (à la condition de gérer la "concurrence")
85 $nom_fichier = 'data/' . $this->page . '/html/' . time() . '.html';
86
87 $fichier = fopen($nom_fichier, 'w'); // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu
88 fputs($fichier, $content);
89 fclose($fichier);
90 chmod($nom_fichier, 0666);
91 }
92
93 // read
94 public function getNumber()
95 {
96 return $this->nbArticles;
97 }
98
99 public function getOne()
100 {
101 return(file_get_contents($this->fileName));
102 }
103
104 public function getAll()
105 {
106 //$this->getFiles();
107
108 $i = 0;
109 $articles = array();
110 foreach ($this->files as $file)
111 {
112 $articles[$i] = file_get_contents($file);
113 $i++;
114 }
115
116 //print_r($articles);
117 return $articles;
118 }
119
120 public function getDate($fileNumber)
121 {
122 // le 2è paramètre exclut le suffixe .html
123 $timestamp = basename($this->files[$fileNumber], '.html');
124 return getdate($timestamp);
125 }
126
127 // update
128 public function update($content)
129 {
130 $file = fopen($this->fileName, 'w');
131 // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu
132 fputs($file, $content);
133 fclose($file);
134 //chown($this->fileName, 'http');
135 chmod($this->fileName, 0666);
136 }
137
138 // delete
139 public function delete()
140 {
141 unlink($this->fileName);
142 }
143}
144
145// note: les pros font de l'hydration
146// le code du modèle est orienté objet et "refactorisé" d'une manière précise:
147// on utilise un objet pour une chose (des articles, commentaires, etc),
148// un objet article contiendrait ainsi tout le nécessaire pour lire, écrire ou modifier un article
149// il y a pour ça un programme appelé "doctrine" (inclu dans symphony) qui est capable de lire une base de données et d'en écrire les objets PHP
150
151class AlbumsManager extends ArticlesManager
152{
153 // variables
154
155 // SET
156
157 // GET
158
159 // fonctions CRUD
160
161 // create
162 public function create()
163 {}
164
165 // read
166 public function read()
167 {}
168
169 // update
170 public function update()
171 {}
172
173 // delete
174 public function delete()
175 {}
176} \ No newline at end of file