diff --git a/cms2/code/TODO b/cms2/code/TODO new file mode 100644 index 0000000..1bc364b --- /dev/null +++ b/cms2/code/TODO @@ -0,0 +1,9 @@ + +- Valeur de retour des res_t_xxx ? + Lorsqu'on appelle GalerieIndex::res_i_icône_nouvelle_page(), ça fait un sendfile alors que GalerieIndex::res_h_page() renvoie un objet + ElementDocument, et GalerieIndex::res_c_style() renvoie du texte (CSS) pour inclusion dans le CSS principal... alors que + res_c_style_supplémentaire() fait je-sais-pas-quoi... + + Comment gérer tout ça ? Tout le monde envoie directement et on intercepte avec un ob_start() / ob_end() ? Selon le type d'image on envoie + direct ou on récupère (html,css => récup, img => envoi) ? Une option à chaque fois (bêrk) ? Selon la valeur de retour (Direct => envoyé + directement, autre => récupéré), mais ça pose des pbs (la fonction X appelle un envoi direct alors qu'elle voulait une récup) ? diff --git a/cms2/code/debug.php b/cms2/code/debug.php index 31b5a8b..5bf840c 100644 --- a/cms2/code/debug.php +++ b/cms2/code/debug.php @@ -1,7 +1,22 @@ "; + echo "Erreurs:\n"; + foreach (self::$errors as $e) { + echo $e . "\n"; + } + echo ""; + } +} + function niy($name) { - echo "Not implemented yet : $name"; + Debug::niy($name); } ?> \ No newline at end of file diff --git a/cms2/code/include.php b/cms2/code/include.php index 3ac5938..27b8c5c 100644 --- a/cms2/code/include.php +++ b/cms2/code/include.php @@ -6,6 +6,7 @@ require_once(dirname(__FILE__) . "/page.php"); require_once(dirname(__FILE__) . "/bdd.php"); require_once(dirname(__FILE__) . "/document.php"); require_once(dirname(__FILE__) . "/main.php"); +require_once(dirname(__FILE__) . "/stockage_fichiers.php"); require_once(dirname(__FILE__) . "/../modules/include.php"); diff --git a/cms2/code/main.php b/cms2/code/main.php index 45ad4e6..e6a0b5b 100644 --- a/cms2/code/main.php +++ b/cms2/code/main.php @@ -1,10 +1,10 @@ "; $g = new GalerieIndex(); - var_dump($g); - echo ""; + $g->res_h_page(); + + Debug::afficher(); } ?> \ No newline at end of file diff --git a/cms2/code/stockage_fichiers.php b/cms2/code/stockage_fichiers.php index 5964aeb..ce449b2 100644 --- a/cms2/code/stockage_fichiers.php +++ b/cms2/code/stockage_fichiers.php @@ -5,20 +5,26 @@ class StockageFichiers { // Stocker $fichier avec le nom $uid dans Config::get('chemin_base_stockage') niy("stocker fichier"); } + public static function stocker_upload($fichier, $id) { // Stocker $fichier avec le nom $uid dans Config::get('chemin_base_stockage') // Utiliser move_uploaded_file(). } - public static function récupérer_fichier($uid) { - // sendfile ? + + public static function envoyer_fichier($uid) { + // sendfile + niy("récupérer_fichier($chemin);"); } - public static function url_fichier($uid) { - } - public static function récupérer_fichier_statique() { - // sendfile ? - } - public static function url_fichier_statique($chemin) { - // chemin relatif à __cms__. Utile pour récupérer les icônes définies par les modules etc. + + public static function envoyer_fichier_statique($chemin) { + // TODO : utiliser http://www.php.net/manual/en/function.readfile.php#86244 pour les téléchargements partiels + // TODO : utiliser http://www.php.net/manual/en/function.readfile.php#52722 pour les types mimes + // TODO : ou bien http://www.php.net/manual/en/function.header.php#48538 pour les types mimes + // (ou mieux, l'utiliser au cas où on ne trouve pas dans le fichier d'apache). + // TODO : stocker le type mime dans $chemin_fs . '__mime' et utiliser celui-là si possible, sinon les méthodes ci-dessus. + // Licence des bouts de code du manuel PHP : CC-Attribution http://php.net/manual/en/about.notes.php + header("Content-Type: image/jpg"); + return readfile($chemin); } } diff --git a/cms2/modules/galerie/galerie-index.php b/cms2/modules/galerie/galerie-index.php index 57e6a05..3658feb 100644 --- a/cms2/modules/galerie/galerie-index.php +++ b/cms2/modules/galerie/galerie-index.php @@ -10,9 +10,10 @@ abstract class GalerieBase extends Page { protected static $enfants = "GalerieÉvènement"; protected static $texte_nouvelle_page = "Nouvel élément"; + protected static $fichier_nouvelle_page = "nouvelle_periode.png"; public function res_i_icône_nouvelle_page() { - niy("res_i_icône_nouvelle_page"); + return StockageFichiers::envoyer_fichier_statique(Path::combine(dirname(__FILE__), self::$fichier_nouvelle_page)); } public function res_c_style() { @@ -29,7 +30,8 @@ abstract class GalerieBase extends Page { }); $nouveau = $l->li(); $nouveau->span("miniature")->img("", $this->url("i_icône_nouvelle_page")); - $nouveau->span("titre")->texte($this->texte_nouvelle_page); + $nouveau->span("titre")->texte(self::$texte_nouvelle_page); + return $d; } public function res_h_miniature() { @@ -48,26 +50,17 @@ abstract class GalerieBase extends Page { class GalerieIndex extends GalerieBase { protected static $texte_nouvelle_page = "Nouvelle période"; - - public function res_i_icône_nouvelle_page() { - return StockageFichiers::fichier_statique(/*TODO*/); - } + protected static $fichier_nouvelle_page = "nouvelle_periode.png"; } class GaleriePériode extends GalerieBase { protected static $texte_nouvelle_page = "Nouvel événement"; - - public function res_i_icône_nouvelle_page() { - return StockageFichiers::fichier_statique(/*TODO*/); - } + protected static $fichier_nouvelle_page = "nouvel_evenement.png"; } class GalerieÉvénement extends GalerieBase { protected static $texte_nouvelle_page = "Nouvelle photo"; - - public function res_i_icône_nouvelle_page() { - return StockageFichiers::fichier_statique(/*TODO*/); - } + protected static $fichier_nouvelle_page = "nouvelle_photo.png"; } Page::ajouter_type("GalerieIndex"); diff --git a/cms2/modules/galerie/nouvel_evenement.png b/cms2/modules/galerie/nouvel_evenement.png new file mode 100644 index 0000000..b894dec Binary files /dev/null and b/cms2/modules/galerie/nouvel_evenement.png differ diff --git a/cms2/modules/galerie/nouvelle_periode.png b/cms2/modules/galerie/nouvelle_periode.png new file mode 100644 index 0000000..b894dec Binary files /dev/null and b/cms2/modules/galerie/nouvelle_periode.png differ diff --git a/cms2/modules/galerie/nouvelle_photo.png b/cms2/modules/galerie/nouvelle_photo.png new file mode 100644 index 0000000..b894dec Binary files /dev/null and b/cms2/modules/galerie/nouvelle_photo.png differ