Nouveautés (squelette)
This commit is contained in:
parent
8242faeab8
commit
e2093ed37a
|
@ -1,6 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// TODO : gestion du renomage (pseudo-réécriture d'URL).
|
// TODO : gestion du renomage (pseudo-réécriture d'URL).
|
||||||
|
// TODO : méthode if_perm("R" ou "W", nom_propriété)
|
||||||
|
// TODO : méthode if_perm("List" ou "Create" ou "Delete", enfant)
|
||||||
|
|
||||||
class Page {
|
class Page {
|
||||||
public static $types = array();
|
public static $types = array();
|
||||||
|
@ -27,6 +29,7 @@ class Page {
|
||||||
"publier" => false,
|
"publier" => false,
|
||||||
"nom_systeme" => "",
|
"nom_systeme" => "",
|
||||||
"composant_url" => "page",
|
"composant_url" => "page",
|
||||||
|
"groupe" => "main"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,15 +77,26 @@ class Page {
|
||||||
niy("select");
|
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.
|
// Renvoie un objet de la classe CollectionPages.
|
||||||
// Si $condition === true, il n'y a pas de condition
|
// Si $condition === true, il n'y a pas de condition
|
||||||
// ex: $condition = "@apercu = true"
|
// ex: $condition = "@apercu = true"
|
||||||
// ordre = null => ordre = "date desc"
|
// ordre = null => ordre = "date_creation desc"
|
||||||
// limit = null || limit = 0 => pas de limite
|
// limit = null || limit = 0 => pas de limite
|
||||||
// offset = null => offset = 0
|
// offset = null => offset = 0
|
||||||
niy("enfants");
|
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) {
|
public function __get($nom) {
|
||||||
// s'il y a un getter (trigger), on l'appelle, sinon on appelle get_prop_direct();
|
// 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();
|
// 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();
|
// le setter fait ce qu'il veut, puis appelle set_prop_direct();
|
||||||
if (is_callable(array($this,"get_".$nom))) {
|
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 {
|
} else {
|
||||||
return $this->set_prop_direct($nom, $val);
|
return $this->set_prop_direct($nom, $val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,8 @@ abstract class GalerieBase extends Page {
|
||||||
return array(
|
return array(
|
||||||
"titre" => self::$texte_titre,
|
"titre" => self::$texte_titre,
|
||||||
"description" => "",
|
"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) {
|
public function res_h_page($d) {
|
||||||
$d->w_en_tete(); // En-tête standard.
|
$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());
|
$a = $li->a($e->uid());
|
||||||
$e->rendu("h_miniature", $a);
|
$e->rendu("h_miniature", $a);
|
||||||
});
|
});
|
||||||
$nouveau = $l->li();
|
$nouveau = $l->li();
|
||||||
$nouveau->span("miniature")->img("", $this->url("i_icône_nouvelle_page"));
|
$nouveau->span("miniature")->img("", $this->url("i_icône_nouvelle_page"));
|
||||||
$nouveau->span("titre")->text(self::$texte_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;
|
return $d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,11 +56,17 @@ abstract class GalerieBase extends Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function res_h_mini_miniature($d) {
|
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)
|
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);;
|
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 {
|
class GalerieIndex extends GalerieBase {
|
||||||
|
|
5
cms2/modules/nouveautes/include.php
Normal file
5
cms2/modules/nouveautes/include.php
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once(dirname(__FILE__) . "/nouveautes.php");
|
||||||
|
|
||||||
|
?>
|
49
cms2/modules/nouveautes/nouveautes.php
Normal file
49
cms2/modules/nouveautes/nouveautes.php
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
abstract class Nouveautes extends Page {
|
||||||
|
protected static $texte_titre = "Nouveautés";
|
||||||
|
protected static $texte_nouvelle_page = "Ajouter un article aux nouveautés";
|
||||||
|
protected static $icône_nouvelle_page = "nouvelle_source.png";
|
||||||
|
|
||||||
|
public static function ressources_statiques() {
|
||||||
|
return qw("i_icône_nouvelle_page c_style");
|
||||||
|
}
|
||||||
|
public static function ressources_dynamiques() {
|
||||||
|
return qw("h_page");
|
||||||
|
}
|
||||||
|
public static function types_enfants() {
|
||||||
|
return qw("NouveautesSource");
|
||||||
|
}
|
||||||
|
public static function attributs() {
|
||||||
|
return array(
|
||||||
|
"titre" => 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");
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
BIN
cms2/modules/nouveautes/nouvelle_source.png
Normal file
BIN
cms2/modules/nouveautes/nouvelle_source.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Loading…
Reference in New Issue
Block a user