Fork me on GitHub




(1) 2 »


Image plus grande dans module aléatoire
Supporter Xoops
Inscrit: 17/08/2005 22:31
De Savoie
Messages: 74
Bonjour,
je souhaite mettre un bloc avec des images aléatoires, j'ai essayé d'installer Babe2 et mypinup mais en vain par contre le module aléatoire fonctionne
Je voudrais proposer des images aléatoires d'environ 400 pixels de coté, mais ce module présente une vignette

Serait il possible en modifiant quelques lignes de code dans le module d'augmenter la taille de l'image?
Et si oui,lesquelles?

merci d'avance

Posté le : 08/11/2005 17:50
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Supporter Xoops
Inscrit: 17/08/2005 22:31
De Savoie
Messages: 74
Bonjour
Si personne n'a répondu, c'est qu'il n'y a surement pas de solution à cette question...

Du coup je formule une autre question qui devrait me permettre d'obtenir ce que je cherche:

Dans un bloc personnalisé, je peux mettre une image, mais je voudrais que ce bloc propose plusieurs images, soit de façon aléatoire (à chaque rechargement de la page l'image change), soit défilante, mais ça me semble plus difficile

J'ai tenté d'inclure dans un bloc personalisé un script php "tout fait" trouvé sur le web (étant donné que je suis nulle en php), mais ça ne fonctionne pas

Connaissez vous un script qui fonctionne avec xoops pour faire ça?

Ou sinon comment inclure un script pour qu'il fonctionne?
Faut-il des balises spéciales?

Merci d'avance pour vos réponses

Posté le : 10/11/2005 09:59
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Salut, voilà ce que j'ai fait pour un collègue :

http://prince-baudouin.be/modules/news/

tu verras des images en diaporama en haut de page.

Si ce genre de trucs te va, je pose le script et la méthode ici.
ce n'est pas trop compliqué (bon par contre la gestion des images t'imposera de passer par ton client ftp pour les mettre en ligne)

Posté le : 10/11/2005 10:05
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Team FrXoops
Inscrit: 01/11/2004 13:00
Messages: 1823
hello

Le module Random quotepermet d'afficher une citation aléatoire, (à la place d'un texte tu mets un lien qui pointe vers une image d'un répertoire mais pas d'upload ,raffraichissement à chaque page
xoopsotron de solo permet de gérer du texte et des images alétaoires mais ne l'ayant pas utilisé (aïe pas la tête!!)je ne peux t'en dire plus.
Tu peux voir si tu peux dans le bloc positionner des balises de défilement type marquée pour faire défiler ton texte ou des images

Posté le : 10/11/2005 10:19
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
En attendant je viens de tester le module 'aléatoire'.

La gestion de la taille des images affichées se fait dans le fichier :
aleatoire/blocks/aleatoire.php

ligne 30

Citation :

$block['content'] .="width='$l_vign' height='$h_vign'>";


Les valeurs utilisées pour le width et height sont des valeurs proportionnelles basées sur la taille d'origine de l'image.

taille de l'image trouvée un peu plus haut grâce à cette ligne :
Citation :

$taille = getimagesize($urlphoto."/".$row[2]);


Il faudrait préciser en fait ce que tu souhaiterais faire.
Est-ce que toutes tes images font la même taille, et tu veux les afficher dans leur taille d'origine, où est-ce que tu veux que toutes tes images soient redimensionnées aux valeurs que tu voudrais indiquer ? (par exemple : 400*300)
sachant que dans ce cas, les images plus petites seront étirées il me semble (à tester)


Un dernier point concernant mon diaporama sur le lien de mon précédent post :
Il affiche les images dans leur taille d'origine, charge à l'utilisateur de les retailler avant de les envoyer sur le serveur ftp.

Posté le : 10/11/2005 10:21
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Encore moi, voici donc le résultat de mon test avec le module 'aléatoire' :

Dans le fichier aleatoire/blocks/aleatoire.php

j'édite la ligne 30

Citation :

$block['content'] .="width='$l_vign' height='$h_vign'>";


et je la remplace par :

Citation :

$block['content'] .="width='400'>";


Ce qui a pour effet de forcer toute tes images à une largeur de 400 pixels (même les plus petites donc attention), et d'afficher la hauteur de l'image de manière proportionnelle.


Et un dernier point de paramétrage qui peut servir, le poids des images (et leur hauteur/largeur maxi).
Tu pourras paramétrer ça, dans le fichier :

aleatoire/admin/index.php (ligne 60 et suivantes)

Citation :

$max_imgsize = 5242880; // grosso-modo 500 ko
$max_imgwidth = 800;
$max_imgheight = 600;


Tu peux aussi ajouter des types d'image uploadables, ligne 64

Citation :

$allowed_mimetypes = array('image/gif', 'image/jpeg', 'image/jpg', 'image/pjpeg', 'image/x-png');


Par défaut, le .jpg n'y étais pas, je l'ai ajouté dans la ligne ci-dessus.
Attention aux extensions de tes images qui doivent être en minuscules.

Posté le : 10/11/2005 10:25
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Supporter Xoops
Inscrit: 17/08/2005 22:31
De Savoie
Messages: 74
:banane: merci pour toutes ces pistes! je vais potasser tout ça, en fait au départ, je voulais un effet alléatoire, mais en voyant les images changer sur le site que tu as indiqué, blueteen, j'aimerais bien cet effet, si ce n'est pas trop te demander... sachant que je me rend compte que 400 pixels c'est un peu trop grand

Je vais tester aussi les modules que tu indiques, patz, car on ne sait jamais...

Posté le : 10/11/2005 10:36
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Team FrXoops
Inscrit: 01/11/2004 13:00
Messages: 1823
je ne t'ai pas parlé de multimenu dont tu peux détourner l'usage très facilement , il te suffit d'afficher une image comme lien du menu (dans les param du bloc tu détermines la taille du bloc)et tu as plusieurs possibilité de défilement

Et si c'est juste la possibilité de faire défiler des images qui t'interesse tu peux regarder des modules de photos (xcgal par exemple) il y des blocs de défilement d'images.(format vignettes)

L'avantage c'est que l'upload peut se faire à partir du module et pas seulement par ftp

Posté le : 10/11/2005 10:48

Edité par patz sur 10/11/2005 11:05:39
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Ce sont de bonnes pistes que tu donnes Patz :)

Sinon pour répondre à Marmotte voici la méthode utilisée sur le site donné en début de sujet.

Voilà le script de diaporama à placer entre les balises < head > de ton thème (theme.html)

<SCRIPT LANGUAGE="JavaScript">
<!--

var 
dimages=new Array();
var 
numImages=10;

for (
i=0i<numImagesi++)
{
  
dimages[i]=new Image();
  
dimages[i].src="../../slideshow/image"+(i+1)+".jpg";
}
var 
curImage=-1;

function 
swapPicture()
{
  if (
document.images)
  {
    var 
nextImage=curImage+1;
    if (
nextImage>=numImages)
      
nextImage=0;
    if (
dimages[nextImage] && dimages[nextImage].complete)
    {
      var 
target=0;
      if (
document.images.myImage)
        
target=document.images.myImage;
      if (
document.all && document.getElementById("myImage"))
        
target=document.getElementById("myImage");
  
      
// make sure target is valid.  It might not be valid
      //   if the page has not finished loading
      
if (target)
      {
        
target.src=dimages[nextImage].src;
        
curImage=nextImage;
      }

      
setTimeout("swapPicture()"3000);

    }
    else
    {
      
setTimeout("swapPicture()"1000);
    }
  }
}

setTimeout("swapPicture()"3000);

//-->
</SCRIPT>



var numImages=10; correspond au nombre d'images se trouvant dans le dossier.

Si tu ne mets pas le bon nombre, la boucle du diaporama ne parcoureras pas toutes les images.

Créé toi ensuite un bloc personnalisé, où tu insèreras ce code, qui appelle la fonction inscrite précédement, dans le thème.

Citation :

<img src="../../slideshow/image1.jpg" name="myImage" id="myImage" />


Dans un dossier à la racine de ton site, tu créés un dossier "slideshow", qui contiendra les images que tu veux voir défiler sur ton site.
Les images devront impérativement avoir des noms tels que :
image1.jpg, image2.jpg, ....., image15.jpg

Les images sont parcourus dans leur ordre de numérotation.
Les images sont affichées dans leur taille réelle. Charge à toi donc, de les dimensionner à la taille voulue avant de les mettre en ligne.

je sais, cela fait beaucoup de contraintes pour la mise en place, mais je n'avais pas trouvé mieux à faire.
Et puis une fois que j'ai mes 15 images en lignes, elles y restent un certain temps :)

Si le javascript n'est pas activé sur la machine du visiteur, il aura juste la première image en fixe.
Sinon ça défilera.

Posté le : 10/11/2005 11:04

Edité par blueteen sur 03/12/2005 22:50:24
Partager Twitter Partagez cette article sur GG+
Re: Image plus grande dans module aléatoire
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Pour revenir un peu sur ce sujet, je viens de finaliser ce qui me génait.
A savoir, le fait qu'on devait rentrer manuellement dans le fichier de theme.html, le nombre d'images du dossier pour qu'elles soient toutes utilisées dans le diaporama.
C'est désormais chose corrigée.

Voici le code modifié à placer entre les balises HEAD du fichier theme.html

<SCRIPT LANGUAGE="JavaScript">
<!--

var 
dimages=new Array();
var 
numImages=<{$images_slideshow}>;

for (
i=0i<numImagesi++)
{
  
dimages[i]=new Image();
  
dimages[i].src="../../slideshow/image"+(i+1)+".jpg";
}
var 
curImage=-1;

function 
swapPicture()
{
  if (
document.images)
  {
    var 
nextImage=curImage+1;
    if (
nextImage>=numImages)
      
nextImage=0;
    if (
dimages[nextImage] && dimages[nextImage].complete)
    {
      var 
target=0;
      if (
document.images.myImage)
        
target=document.images.myImage;
      if (
document.all && document.getElementById("myImage"))
        
target=document.getElementById("myImage");
  
      
// make sure target is valid.  It might not be valid
      //   if the page has not finished loading
      
if (target)
      {
        
target.src=dimages[nextImage].src;
        
curImage=nextImage;
      }

      
setTimeout("swapPicture()"3000);

    }
    else
    {
      
setTimeout("swapPicture()"1000);
    }
  }
}

setTimeout("swapPicture()"3000);

//-->
</SCRIPT>


On remarque l'utilisation de <{$images_slideshow}>
valeur qui était à rentrer manuellement auparavant.
Je récupère à présent cette valeur grâce à un script php inséré dans le header.php

Voici ce code :

$d="../../slideshow/"//définition du dossier à parcourir (chemin par rapport à modules/news dans mon cas)
$type_image 2;    // Format des images à compter 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP
$cpt_images 0;    //initialise le compteur d'images
$rep opendir($d); // Ouverture du répertoire contenant les images
while($file readdir($rep)) //début du parcours du répertoire, tant que ce n'est pas fini
{
    
// Empèche de prendre les entrées . et .. du répertoire
    
if ($file != "." && $file != "..")
    {
        
$infos getimagesize($d.$file); //récupère des infos sur l'image
        
if($infos[2] == $type_image)  // Filtre les images qui ne correspondent pas aux critères
        
{
            
$cpt_images++; // Incrémentation du compteur d'images
        
}
    }
}
closedir($rep); // Fermeture du répertoire
$xoopsTpl->assign(array('images_slideshow' => $cpt_images)); //assigne le nombre d'image à une variable smarty


Et voici le code à coller dans un bloc personnalisé

<img src="../../slideshow/image1.jpg" name="myImage" id="myImage" />


De cette façon, si javascript est désactivé, le surfeur, verra la première image de la liste.

Dans un dossier à la racine du site, on créé un dossier "slideshow", qui contiendra les images qque l'on veut voir défiler sur le site.
Les images devront impérativement avoir des noms tels que :
image1.jpg, image2.jpg, ....., image15.jpg
Elles seront affichées dans l'ordre de numérotation.
je pense avoir tout noté.
J'en mettrai une démo sur mon site de test habituel.

Posté le : 02/12/2005 18:00

Edité par blueteen sur 03/12/2005 22:49:53
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

27 Personne(s) en ligne (25 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 27 | Plus ...