Gérer les "thèmes"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Gérer les "thèmes"

Re: Gérer les "thèmes"

par Dimistik » 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?

Re: Gérer les "thèmes"

par Dimistik » 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

Re: Gérer les "thèmes"

par sylvaing26 » 16 sept. 2009, 11:32

Ca serai pas plus simple avec un CSS ?

Gérer les "thèmes"

par Dimistik » 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 !