Se connecter / S'enregistrer

Résolu Custom slideshow en random

Solutions (4)
Tags :
  • Programmation
|

Bonjour,
je souhaiterais modifier le pluging suivant (voir code ci-dessous) pour obtenir un random d'images. Avec une possibilité de gérer le temps entre chaque image, ainsi que le fondu.

Le random se lancerait automatiquement lors du chargement de la page.

Quelqu'un peut-il m'aider ?
Merci pour vos conseils !
Bonne soirée


  1. <?php if (!defined('SITE')) exit('No direct script access allowed');
  2.  
  3. /**
  4. * Slideshow
  5. *
  6. * Exhibition format
  7. *
  8. * @version 1.0.0.0.0.0.0.0.0.0.1 (Because Simon ate a banana for lunch)
  9. * @author Simon Lagneaux
  10. * @author Vaska
  11. */
  12.  
  13.  
  14. // defaults from the general libary - be sure these are installed
  15. $exhibit['dyn_css'] = dynamicCSS();
  16. $exhibit['lib_js'] = array('jquery.cycle.all.js');
  17. $exhibit['dyn_js'] = dynamicJS();
  18. $exhibit['exhibit'] = createExhibit();
  19.  
  20.  
  21. function dynamicJS()
  22. {
  23. global $timeout;
  24. return "$(document).ready(function(){
  25. $('#s1').cycle({
  26. fx:'fade',
  27. speed:'2000',
  28. timeout: 0,
  29. next:'#next', prev:'#prev'});
  30. });";
  31. }
  32.  
  33.  
  34. function createExhibit()
  35. {
  36. $OBJ =& get_instance();
  37. global $rs;
  38.  
  39. $pages = $OBJ->db->fetchArray("SELECT *
  40. FROM ".PX."media, ".PX."objects_prefs
  41. WHERE media_ref_id = '$rs[id]'
  42. AND obj_ref_type = 'exhibit'
  43. AND obj_ref_type = media_obj_type
  44. ORDER BY media_order ASC, media_id ASC");
  45.  
  46.  
  47. // ** DON'T FORGET THE TEXT ** //
  48. $s = $rs['content'];
  49.  
  50. if (!$pages) return $s;
  51.  
  52. $i = 1; $a = '';
  53.  
  54. // people will probably want to customize this up
  55. foreach ($pages as $go)
  56. {
  57. $title = ($go['media_title'] == '') ? '' : $go['media_title'] . ' ';
  58. $caption = ($go['media_caption'] == '') ? ' ' : $go['media_caption'];
  59.  
  60. //$x = getimagesize(BASEURL . GIMGS . '/' . $go['media_file']);
  61.  
  62. $a .= "\n<div><img src='" . BASEURL . GIMGS . "/$go[media_file]' class='img-bot' /><p>{$title}{$caption}</p></div>\n";
  63.  
  64. $i++;
  65. }
  66.  
  67. // images
  68. $s .= "<div id='img-container'>\n";
  69. $s .= "<p class='nav'><a id='prev' href='#'>Prev</a> | <a id='next' href='#'>Next</a>
  70. <span id='num'></span></p>";
  71. $s .= "<div id='s1' class='pics'>\n";
  72. $s .= $a;
  73. $s .= "</div>\n";
  74. $s .= "</div>\n\n";
  75.  
  76. return $s;
  77. }
  78.  
  79.  
  80. function dynamicCSS()
  81. {
  82. return "#num {padding-left: 6px;}
  83. .img-bot {margin-bottom: 6px; display: block; }";
  84. }
  85.  
  86.  
  87.  
  88. ?>
Contenus similaires
  • Autres pages sur : custom slideshow random
Meilleure solution
partage
, Modérateur |
J'imagine que c'est ce plugin: http://jquery.malsup.com/cycle/begin.html
Tu as toutes les valeurs possibles à mettre à la propriété "fx" pour avoir l'effet que tu veux (là tu as l'effet 'fade')
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par donzus.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci pour ta réponse rapide,
désolé pour ma réponse tardive.

En faite je me suis mal exprimé,
je ne souhaitais pas un random mais tout simplement que les images défilent par elles-même, lors du chargement de la page.

Du coup il suffisait de modifier le timeout: 0, par timeout: 4000, (pour exemple).

  1. function dynamicJS()
  2. {
  3. global $timeout;
  4. return "$(document).ready(function(){
  5. $('#s1').cycle({
  6. fx:'fade',
  7. speed:'2000',
  8. timeout: 4000,
  9. next:'#next', prev:'#prev'});
  10. });";
  11. }


Petit soucis:
Le fondu manque de fluidité, je n'arrive pas à avoir un effet plus "agréable ou esthétique à l'oeil ? Quelqu'un aurait-il une idée pour arranger cela ?
Est-il possible de rajouter du code pour gérer le fondu ?

Autre besoin: quelqu'un sait-il comment faire pour rajouter un Full Background à ce pluging ?

Merci pour vos aides future!
Bonne soirée

  • Commenter cette réponse |
Score
0
òh
òi
|
Comment cela un random ? Sur l'ordre des images ?
Il suffit de modifier ta requête et de remplacer ORDER BY media_order ASC, media_id ASC par ORDER BY RAND().

Pour le temps et le fondu, c'est global, donc tu ne peux le modifier qu'à chaque chargement de la page.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS