Gérer les "thèmes"

Dimistik
Invité n'ayant pas de compte PHPfrance

16 sept. 2009, 09:41

Bonjour,

Je suis actuellement en train d'apprendre le PHP en cours (BTS informatique) en réalisant un petit site web. Sur mon site, je souhaite donc faire un petit truc en plus, c'est à dire permettre au visiteur de choisir son "thème".

Quand je parle de thème, il s'agit uniquement de mon image de fond. Voiçi comment elle est créée :
$imgfond = new Calque ($id="imgfond", $left=0, $top=0, $width=1680, $height=1050, $align="left", $centre=true, $image = $cheminImage."/fond.jpg", $color="", $deplace=false, $redim=false, $efface=false, $visible=true) ;
Et voiçi Calque.php (en gros) :
class Calque {

   //--- propriétés ---
   private $contenu ;        // contenu du calque
   private $left, $top ;       // position du calque
   private $width, $height ;   // largeur et hauteur du calque
   private $centre ;           // booléen pour centrer ou non le calque dans la page
   private $image, $color ;    // image et couleur de fond du calque
   private $deplace ;          // booléen pour savoir si le calque peut être déplacé
   private $redim ;            // booléen pour savoir si le calque peut être redimensionné
   private $efface ;           // booléen pour savoir si le calque peut être supprimé
   private $visible ;          // booléen pour la visibilité du calque
   private $id ;               // id du calque
   private $align ;            // alignement dans le calque
   private $marge = 20 ;       // taille de la marge pour la zone de clic pour agrandir
   
   
   //--- constructeur ---
   public function Calque ($id, $left, $top, $width, $height, $align="left", $centre=false, $image="", $color="", $deplace=false, $redim=false, $efface=false, $visible=true) {
      $this->id = $id ;
      $this->left = $left ;
	  $this->top = $top ;
	  $this->width = $width ;
	  $this->height = $height ;
	  $this->align = $align ;
	  $this->centre = $centre ;
	  $this->image = $image ;
	  $this->color = $color ;
	  $this->deplace = $deplace ;
	  $this->redim = $redim ;
	  $this->efface = $efface ;
	  $this->visible = $visible ;
	  $this->contenu = "" ;
	  javascript ("margeX['".$id."']=0;margeY['".$id."']=0;") ;
   }
Pour choisir le thème, je crée mes vignettes :
for ($i=1 ; $i<=count(glob($cheminMini.'/*.jpg')) ; $i++) {
	$mini = new CalqueVide ($id="mini".$i, $left=(780-(25*$i)), $top=20, $width=20, $height=20, $image = $cheminMini.'/mini'.$i.'.jpg', $color="", $message="", $onclick="") ;
	$lescalquesmenu .= $mini->getComplet() ;
}
Donc ce que je cherche à faire, c'est que, lorsqu'on clique sur une vignette, il modifie le $image de $imgfond. Seulement, je vois pas trop comment je peux m'y prendre.
Auriez-vous une idée?

N.B: Pour les plus curieux, vous pouvez voir le site via ce lien.

Merci d'avance !

Mammouth du PHP | 686 Messages

16 sept. 2009, 11:32

Ca serai pas plus simple avec un CSS ?

Dimistik
Invité n'ayant pas de compte PHPfrance

16 sept. 2009, 12:29

Ça serai pas plus simple avec un CSS ?
Ben à la base je voulais l'afficher en CSS, le soucis c'est que je dois faire en sorte que l'image de fond soit toujours au même endroit que le site, pour qu'il reste dans le cadre flou, et hormis comme ça, j'ai pas trouvé d'autres moyen :s

Petit nouveau ! | 1 Messages

16 sept. 2009, 12:39

Désolé du double post (jétais pas inscrit)...

Pour modifier l'image de $imgfond, j'utilise :
$imgfond->setImage($cheminImage.'/fond'.$i.'.jpg') ;
Fonction setImage :
   public function setImage ($image) {
      $this->image = $image ;
      return "document.getElementById('".$this->id."').style.backgroundImage = 'url(".$this->image.")';" ;
   }
J'ai tenté de le mettre dans le onclick quand on crée les vignettes, mais ça fait rien (un peu logique mais bon...)

Avec un peu de javascript, y aurait pas moyen de réussir?