From e2093ed37a3b345f7ae1b96b0a679e268050a441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Sat, 9 Oct 2010 17:22:47 +0200 Subject: [PATCH] =?UTF-8?q?Nouveaut=C3=A9s=20(squelette)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms2/code/page.php | 20 ++++++-- cms2/modules/galerie/galerie.php | 20 ++++++-- cms2/modules/nouveautes/include.php | 5 ++ cms2/modules/nouveautes/nouveautes.php | 49 ++++++++++++++++++++ cms2/modules/nouveautes/nouvelle_source.png | Bin 0 -> 1506 bytes 5 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 cms2/modules/nouveautes/include.php create mode 100644 cms2/modules/nouveautes/nouveautes.php create mode 100644 cms2/modules/nouveautes/nouvelle_source.png diff --git a/cms2/code/page.php b/cms2/code/page.php index e2402c3..1bb680d 100644 --- a/cms2/code/page.php +++ b/cms2/code/page.php @@ -1,6 +1,8 @@ false, "nom_systeme" => "", "composant_url" => "page", + "groupe" => "main" ); } @@ -74,15 +77,26 @@ class Page { niy("select"); }*/ - public function enfants($condition = true, $ordre = "date desc", $limit = 0, $offset = 0) { + public function enfants($condition = true, $ordre = "date_creation desc", $limit = 0, $offset = 0) { // Renvoie un objet de la classe CollectionPages. // Si $condition === true, il n'y a pas de condition // ex: $condition = "@apercu = true" - // ordre = null => ordre = "date desc" + // ordre = null => ordre = "date_creation desc" // limit = null || limit = 0 => pas de limite // offset = null => offset = 0 niy("enfants"); } + + public function ajouter_enfant() { + // ajouter l'enfant + // renvoyer un pointeur sur cet enfant + niy("ajouter_enfant"); + } + + public function lier_page($page_source, $groupe = "main") { + // ajouter un enfant contenant "@lien = page_source" et "@groupe = groupe" + niy("lier_page"); + } public function __get($nom) { // s'il y a un getter (trigger), on l'appelle, sinon on appelle get_prop_direct(); @@ -103,7 +117,7 @@ class Page { // s'il y a un setter (trigger), on l'appelle, sinon on appelle set_prop_direct(); // le setter fait ce qu'il veut, puis appelle set_prop_direct(); if (is_callable(array($this,"get_".$nom))) { - return call_user_func(array($this,"get_".$nom), $val); + return call_user_func(array($this,"set_".$nom), $val); } else { return $this->set_prop_direct($nom, $val); } diff --git a/cms2/modules/galerie/galerie.php b/cms2/modules/galerie/galerie.php index f1e79f9..b255bed 100644 --- a/cms2/modules/galerie/galerie.php +++ b/cms2/modules/galerie/galerie.php @@ -19,7 +19,8 @@ abstract class GalerieBase extends Page { return array( "titre" => self::$texte_titre, "description" => "", - "personnes" => LIENS // TODO + "personnes" => LIENS, // TODO + "dans_nouveautes" => "true" ); } @@ -33,13 +34,18 @@ abstract class GalerieBase extends Page { public function res_h_page($d) { $d->w_en_tete(); // En-tête standard. - $l = $d->article()->w_liste($this->enfants(true, "date desc"), function($e, $li) { + $l = $d->article()->w_liste($this->enfants(true, "date_creation desc"), function($e, $li) { $a = $li->a($e->uid()); $e->rendu("h_miniature", $a); }); $nouveau = $l->li(); $nouveau->span("miniature")->img("", $this->url("i_icône_nouvelle_page")); $nouveau->span("titre")->text(self::$texte_nouvelle_page); + + if ($this->if_perm("W", "dans_nouveautes")) { + $d->p()->w_form($this->dans_nouveautes); + } + return $d; } @@ -50,11 +56,17 @@ abstract class GalerieBase extends Page { } public function res_h_mini_miniature($d) { - $a = $this->enfants("@apercu = true", "date desc", 1); + $a = $this->enfants("@apercu = true", "date_creation desc", 1); if ($a->size() != 1) - $a = $this->enfants(true, "date desc", 1); + $a = $this->enfants(true, "date_creation desc", 1); return $a->get(0)->rendu("h_mini_miniature", $d);; } + + public function set_dans_nouveautes($val) { + //TODO : ajouter $this en tant qu'enfant de /nouveautes + $this->page_systeme("nouveautes")->lier_page("$this"); + $this->set_prop_direct("dans_nouveautes", $val); + } } class GalerieIndex extends GalerieBase { diff --git a/cms2/modules/nouveautes/include.php b/cms2/modules/nouveautes/include.php new file mode 100644 index 0000000..5f297d2 --- /dev/null +++ b/cms2/modules/nouveautes/include.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/cms2/modules/nouveautes/nouveautes.php b/cms2/modules/nouveautes/nouveautes.php new file mode 100644 index 0000000..eaf7c89 --- /dev/null +++ b/cms2/modules/nouveautes/nouveautes.php @@ -0,0 +1,49 @@ + self::$texte_titre, + "description" => "", + ); + } + + public function res_i_icône_nouvelle_page() { + return StockageFichiers::envoyer_fichier_statique(Path::combine(dirname(__FILE__), self::$icône_nouvelle_page)); + } + + public function res_c_style() { + niy("res_c_style"); + } + + public function res_h_page($d) { + $d->w_en_tete(); // En-tête standard. + + $l = $d->article()->w_liste($this->enfants(true, "date_creation desc", 10), function($e, $li) { + $a = $li->a($e->uid()); + $e->rendu("h_miniature", $a); + }); + $nouveau = $l->li(); + $nouveau->span("miniature")->img("", $this->url("i_icône_nouvelle_page")); + $nouveau->span("titre")->text(self::$texte_nouvelle_page); + return $d; + } +} + +Page::ajouter_type("Nouveautes"); + + +?> \ No newline at end of file diff --git a/cms2/modules/nouveautes/nouvelle_source.png b/cms2/modules/nouveautes/nouvelle_source.png new file mode 100644 index 0000000000000000000000000000000000000000..b894dec92e08557e8a85df713f3a70d86614e182 GIT binary patch literal 1506 zcmb7CcT|&i6#aeq5<-}MBtce~VF-<{s0zyW}P(P%V`5hM%-BZL(b#tI-QDvA?BB&DPf zNd&=5D{RLTdRtPI0EG(f&KnRNe8~mF9 z5e76sgCSLbLLeA{__u*P04VtD3f~}v!3v{Muz)n!1|S%QV5}&N`J0DOFdASGA*_^& zFrKJuRxr6;M%B^9)z^=e)mfPEesa)*Sd>>}Eqtz<$R^rUTLnbe1 zT|B*zsv=KBgZpYDZz`gF&ggV-rgcg3a8mon*}cZpJQt?|q=%WpSZ&a2&!x$FDnIn) zR63_$?mqvm-o6_jvZ?8LWT$(QN&K$6ZJnN_Kl^tMHx0mwaaO;?jJ z)S`j&RkdUwWJ6vh+$bxuEM99H{GrM$Bx`baw_dg9!9AiZmyCIJi)^ihpJbQIxO*&v z@w%)YbZSZ)r2%8TD?`Ob)+B$S|JZSpQSm1z&6!FZQb@PGMIV)rJdCY(_jZ@pc;F_V zd^%G)<{2S)qC?~o>v`1y9de|pNK(7kQLlv}>7{Jj0IkY~stmE*dwI2GOYa9`P=>yp zsdVhp7-^!l!PaQz*lgpIAsl#1f0_NFPQne|_qimG*^~Amz-7TpzOOdiRV`uXNal6s z3?C5A`mrk8r%PBi=29Z;Dg}T&qLFhg(L}ln)vt1AvSiZZbwl9nuZBd0t;8V%BBp)? zi5^MYs;}J0P|Tvh>AcKMC(|X9RQ#0vZjPKk^dU<2+)yr@^W6^3HwLac9XM_mm*7$C z=6}jQ2CgGdFF82jkB zVRx)LW0rb3G<)_vo2gx$q%AEyV_#n#xqqV>FrKoZwmSkQZX5`<#^g-m*@j$!A8qo~( zKxRHrB!9vrOg@Zv({YX+PH?;Ux`2>zHGYj;YU=Dn^av^vuiUY!6$!{t$wFz!^!}U( zUvvt^B8^6d&a=i0#`GQ5%jHLwNA}-HiumNDz4yc;tYP~JT~2Bv=|b-KWlK|@=2oaX zd;MHmi+X1nThnJ|=nNO=tL5nUNG(pRXeXXAJb9~3@-V~6`Z3V43Rc;dr^l-rBofOa zc7m^sQA>c$Ltlq1GJGqq6SCyQ<@n=fQTc;RC%#<8u@eY5o4_ zvvP)cRx_Jwv{;i&7vG@152d{G-SSy`N$8Go@@gDzY7Nitz1Uou5yH7&&G3qKS@JUodw!)KogQcAVa=h%a#9vkf|y?} z{E0W#=Cryr3%w~n_k9ez_xkei+(cqUaE5iEcv0deBie5Ds@u5p5`|IG_Al1H_rmjv zclEIabzy6ZZz)3oLi2+O)M?2=f3{(_;JH{+(>gRqW*vrm#a|>!tKzISm&c#_3qKNH A%m4rY literal 0 HcmV?d00001