diff options
Diffstat (limited to 'model/Article.php')
| -rw-r--r-- | model/Article.php | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/model/Article.php b/model/Article.php index 33848bb..2ea80f8 100644 --- a/model/Article.php +++ b/model/Article.php | |||
| @@ -9,7 +9,8 @@ | |||
| 9 | class Article | 9 | class Article |
| 10 | { | 10 | { |
| 11 | // pour tous les articles | 11 | // pour tous les articles |
| 12 | public $page; // page et donc dossier concerné | 12 | public $page; // page du site |
| 13 | public $folder; // dossier des données (vaut souvent $page) | ||
| 13 | public $format = 'html'; // 'html' ou 'json' | 14 | public $format = 'html'; // 'html' ou 'json' |
| 14 | public $fileListCount; // pour les boucles "for" | 15 | public $fileListCount; // pour les boucles "for" |
| 15 | // pas de "foreach", on a besoin des compteurs $i | 16 | // pas de "foreach", on a besoin des compteurs $i |
| @@ -20,20 +21,29 @@ class Article | |||
| 20 | public $fileCode = ''; // $_SESSION['target'] | 21 | public $fileCode = ''; // $_SESSION['target'] |
| 21 | protected $time; // timestamp pour noms des fichiers créés | 22 | protected $time; // timestamp pour noms des fichiers créés |
| 22 | 23 | ||
| 23 | public function __construct($page) | 24 | public function __construct(string $page, string $folder) |
| 24 | { | 25 | { |
| 25 | $this->page = $page; | 26 | $this->page = $page; |
| 27 | $this->folder = $folder; | ||
| 26 | $this->time = time(); | 28 | $this->time = time(); |
| 27 | $this->makeFileList(); | 29 | $this->makeFileList(); |
| 28 | } | 30 | } |
| 29 | 31 | ||
| 32 | // GET | ||
| 33 | |||
| 34 | // SET | ||
| 35 | public function setFolder(string $folder) | ||
| 36 | { | ||
| 37 | $this->folder = $folder; | ||
| 38 | } | ||
| 39 | |||
| 30 | // tableaux des noms des fichiers | 40 | // tableaux des noms des fichiers |
| 31 | // noter que le chemin et l'extension ne varient pas | 41 | // noter que le chemin et l'extension ne varient pas |
| 32 | public function makeFileList() | 42 | public function makeFileList() |
| 33 | { | 43 | { |
| 34 | // noms des fichiers | 44 | // noms des fichiers |
| 35 | // globbing = utiliser un pattern pour cibler des fichiers | 45 | // globbing = utiliser un pattern pour cibler des fichiers |
| 36 | $nameList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); | 46 | $nameList = glob('data/' . $this->folder . '/' . $this->format . '/*.' . $this->format); |
| 37 | 47 | ||
| 38 | $this->fileListCount = count($nameList); | 48 | $this->fileListCount = count($nameList); |
| 39 | 49 | ||
| @@ -77,10 +87,10 @@ class Article | |||
| 77 | 87 | ||
| 78 | private function readPositionsJSON() // retourne array ou NULL | 88 | private function readPositionsJSON() // retourne array ou NULL |
| 79 | { | 89 | { |
| 80 | if(file_exists('data/' . $this->page . '/positions.json')) | 90 | if(file_exists('data/' . $this->folder . '/positions.json')) |
| 81 | { | 91 | { |
| 82 | // "true" pour retourner un tableau et non un objet | 92 | // "true" pour retourner un tableau et non un objet |
| 83 | $positions = json_decode(file_get_contents('data/' . $this->page . '/positions.json'), true); | 93 | $positions = json_decode(file_get_contents('data/' . $this->folder . '/positions.json'), true); |
| 84 | } | 94 | } |
| 85 | return $positions; | 95 | return $positions; |
| 86 | } | 96 | } |
| @@ -105,7 +115,7 @@ class Article | |||
| 105 | $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; | 115 | $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; |
| 106 | } | 116 | } |
| 107 | 117 | ||
| 108 | file_put_contents('data/' . $this->page . '/positions.json', json_encode($positions)); | 118 | file_put_contents('data/' . $this->folder . '/positions.json', json_encode($positions)); |
| 109 | } | 119 | } |
| 110 | 120 | ||
| 111 | private function sortFileListByPositions() | 121 | private function sortFileListByPositions() |
| @@ -157,10 +167,6 @@ class Article | |||
| 157 | 167 | ||
| 158 | return $content; | 168 | return $content; |
| 159 | } | 169 | } |
| 160 | |||
| 161 | // GET | ||
| 162 | |||
| 163 | // SET | ||
| 164 | 170 | ||
| 165 | // fonctions CRUD (create - read - update - delete) | 171 | // fonctions CRUD (create - read - update - delete) |
| 166 | 172 | ||
| @@ -177,7 +183,7 @@ class Article | |||
| 177 | { | 183 | { |
| 178 | // html version images normales | 184 | // html version images normales |
| 179 | $contentMaxi = $content; | 185 | $contentMaxi = $content; |
| 180 | $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; | 186 | $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; |
| 181 | $file = fopen($fileName, 'w'); // w pour créer ou écraser | 187 | $file = fopen($fileName, 'w'); // w pour créer ou écraser |
| 182 | fputs($file, $contentMaxi); | 188 | fputs($file, $contentMaxi); |
| 183 | fclose($file); | 189 | fclose($file); |
| @@ -187,7 +193,7 @@ class Article | |||
| 187 | $content = self::makeHtmlMiniImages($content); | 193 | $content = self::makeHtmlMiniImages($content); |
| 188 | } | 194 | } |
| 189 | 195 | ||
| 190 | $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; | 196 | $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->time . '.' . $this->format; |
| 191 | $file = fopen($fileName, 'w'); // w pour créer ou écraser | 197 | $file = fopen($fileName, 'w'); // w pour créer ou écraser |
| 192 | fputs($file, $content); | 198 | fputs($file, $content); |
| 193 | fclose($file); | 199 | fclose($file); |
| @@ -207,7 +213,7 @@ class Article | |||
| 207 | } | 213 | } |
| 208 | public function readOne() | 214 | public function readOne() |
| 209 | { | 215 | { |
| 210 | return(file_get_contents('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); | 216 | return(file_get_contents('data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); |
| 211 | } | 217 | } |
| 212 | 218 | ||
| 213 | // update | 219 | // update |
| @@ -217,7 +223,7 @@ class Article | |||
| 217 | { | 223 | { |
| 218 | // html version images normales | 224 | // html version images normales |
| 219 | $contentMaxi = $content; | 225 | $contentMaxi = $content; |
| 220 | $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; | 226 | $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; |
| 221 | if(file_exists($fileName) && empty($content)) | 227 | if(file_exists($fileName) && empty($content)) |
| 222 | { | 228 | { |
| 223 | $this->delete(); | 229 | $this->delete(); |
| @@ -235,7 +241,7 @@ class Article | |||
| 235 | } | 241 | } |
| 236 | 242 | ||
| 237 | // json ou html version petites images | 243 | // json ou html version petites images |
| 238 | $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 244 | $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
| 239 | if(file_exists($fileName) && empty($content)) | 245 | if(file_exists($fileName) && empty($content)) |
| 240 | { | 246 | { |
| 241 | $this->delete(); | 247 | $this->delete(); |
| @@ -252,11 +258,11 @@ class Article | |||
| 252 | // delete | 258 | // delete |
| 253 | public function delete() | 259 | public function delete() |
| 254 | { | 260 | { |
| 255 | $path = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 261 | $path = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
| 256 | unlink($path); | 262 | unlink($path); |
| 257 | 263 | ||
| 258 | // fichiers html dans html-maxi-images | 264 | // fichiers html dans html-maxi-images |
| 259 | $path_maxi = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; | 265 | $path_maxi = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; |
| 260 | if(file_exists($path_maxi)) | 266 | if(file_exists($path_maxi)) |
| 261 | { | 267 | { |
| 262 | unlink($path_maxi); | 268 | unlink($path_maxi); |
