Se connecter avec
S'enregistrer | Connectez-vous

boxe défilante

Dernière réponse : dans Programmation

Bonjour,

j' ai mis un flux rss dans une boxe pour afficher les informations provenant de presencepc, mon soucis c'est que ces informations sont fixes, je voudrais pouvoir les faires défilés mais je ne connais pas le code pour faire ça.
J' ai glané quelques infos sur le web avec la fonction <queree mais je n' arrive pas à y mettre en place, peut-être connaissez vous un moyen facile et efficace à mettre en oeuvre.

Par avnce merci.

Bon week end

Bart42

Autres pages sur : boxe defilante

Lassé par la pub ? Créez un compte

C'est quoi ton soucis ? Tu n'as pas d'ascenceur de défilement sur ta boîte ou ce sont les infos RSS qui ne se réactualisent pas ?

Pour le défilement du contenu d'une boîte, on utilise le paramètre CSS 'overflow= auto;'.. Tout ce qu'il faut dans le topic pinné en tête de liste.. Pour le reste, sans code de ta part, ce n'est pas très évident..

:jap: 

Bonsoir,
Ce qui me pose problème c'est effectivement que je n' ais pas d'ascenseur sur ma boîte et je ne sais pas comment faire pour en rajouter un.
Je peux mette le code de ma boite par contre je tape ce message dans réponse rapide du coup je ne sais pas comment faire pour mettre mon code en surbrillance mais bon le voilà:

<?php
/*
$Id: actualites.php,v 1.6 2003/02/10 22:31:00 hpdl Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2003 osCommerce

Released under the GNU General Public License
*/
?>
<!-- actualites //-->
<tr>
<td>
<?php
$info_box_contents = array();
$info_box_contents[] = array('text' => Actualités);

new infoBoxHeading($info_box_contents, false, false);
require_once("magpierss-0.72/rss_fetch.inc");
$urlfeed = "http://www.presence-pc.com/feeds/1454-rss2-consommables...";
$nb_actus_a_afficher = 3;
$fil = fetch_rss($urlfeed);
if(is_array($fil->items)) // Teste si le fil a bien été récupéré
{
$actus = array_slice($fil->items, 0, $nb_actus_a_afficher);
foreach($actus as $actu)
echo "- <a href=\"" . $actu['link'] . "\">" . $actu['title'] . "</a> " . $actu['description'] ."<br /> <br />";
}
?>
</td>
</tr>
<!-- actualites_eof //-->

Merci pour votre aide.

Bart42

C'est encore moi,
En fait je viens de voir ce que vous appellez un ascenseur et ce n' est pas ça que je veux, moi je voudrais un truc plus du genre scroll box, que les infos défilent toutes seules, qu' au passage de la souris elle s'arrêtent, et qu' elle marquent un temps de pause entre deux titres histoire que les gens puissent avoir le temps de lire les titres.

Voilà j' espères que j' ai était plus clair.

Merci de vos réponses.

Bart42

Bonsoir KangOl,
merci pour l'info, ça marche, j' ai adapté le code ensuite pour la vitesse de lecture, largeur et hauteur de boxe, par contre il y a un dernier réglage que j' aimerais faire mais je ne trouve pas où, en fait quand le dernier article défile, on a à peine le temps de finir de le lire que ça recommence au premier article et donc là pareil on a pas le temps de lire le début de celui-ci, donc est-ce que tu sais comment faire pour mettre un temps de pause entre les articles?

En tout cas merci bien c'est déjà bien sympa de m' avoir aidé, car ouf... ça marche quand même.

Bonne fin de soirée.

Bart42.

Et oui c'est encore moi,
encore un petit soucis avec cette boxe défilante, en fait elle, elle fonctionne correctement, par contre sur mon site, j' avais une autre boxe qui affiche les derniers produits défilante elle aussi, mais elle se gère par l' admin du site, et bien elle doit être en confliot avec cette dernière car depuis elle ne défile plus, donc en gros:

j' ai bien mais news de presencepc qui défilent par contre je n' ai plus mes derniers produits à moi qui défilent.

Ou la la compliqué tout ça...

ma question est:

Est-ce qu'il est possible que ce nouveau code rentre en confilt avec ma boxe des derniers produits, précision ces deux boxes ne sont pas dans la même colonne, une à gauche, une à droite.

Par avnce merci.

Bart42

Bonjour,
Ok et donc comment il faut faire pour qu'ils ne rentrent plus en conflit?
Qu'est-ce que c'est des variables, est-il possible des les modifiées sur une des deux boxes et que tout fonctionne?
Merci de vos réponses.

Bart42

Bonjour,

Voici le code de ma boxe d'infos :

  1. <?php
  2. /*
  3. $Id: actualites.php,v 1.6 2003/02/10 22:31:00 hpdl Exp $
  4.  
  5. osCommerce, Open Source E-Commerce Solutions
  6. <a href="http://www.oscommerce.com" target="_blank">http://www.oscommerce.com</a>
  7.  
  8. Copyright (c) 2003 osCommerce
  9.  
  10. Released under the GNU General Public License
  11. */
  12. ?>
  13. <!-- actualites //-->
  14. <tr>
  15. <td>
  16. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">http://www.w3.org/TR/html4/loose.dtd</a>">
  17.  
  18. <?php
  19. $info_box_contents = array();
  20. $info_box_contents[] = array('text' => Actualités);
  21.  
  22. new infoBoxHeading($info_box_contents, false, false);
  23. ?>
  24.  
  25. <html>
  26. <head>
  27. <title></title>
  28. <style>
  29. #blocktoscroll {
  30. border:1px solid black;
  31. width:150px;
  32. height:300px;
  33. overflow:auto; /*Tu mets hidden si tu ne veux pas avoir de scrollbar*/
  34. }
  35. </style>
  36. <script>
  37. var scrolltimer;
  38. function initScroll(BlockId, speedScroll) {
  39. var MonObjet = document.getElementById(BlockId);
  40. MonObjet.onmouseover = function(){
  41. clearTimeout(scrolltimer);
  42. scrollBlock(BlockId,speedScroll*2);
  43. }
  44. MonObjet.onmouseout = function(){
  45. clearTimeout(scrolltimer);
  46. scrollBlock(BlockId,speedScroll);
  47. }
  48. scrollBlock(BlockId,speedScroll);
  49. }
  50.  
  51. function scrollBlock(BlockId,speedScroll){
  52. speedincrement = 1;
  53. var monObjet = document.getElementById(BlockId)
  54. if (speedScroll=='' | speedScroll==null | speedScroll <= 3) speedScroll = 40;
  55.  
  56. //ScrollTop = ScrollTop + speed;
  57. monObjet.scrollTop = monObjet.scrollTop + speedincrement;
  58. if (monObjet.scrollTop >= monObjet.scrollHeight-monObjet.clientHeight) monObjet.scrollTop = 1;
  59. scrolltimer = setTimeout("scrollBlock('"+ BlockId + "'," + speedScroll + ")", speedScroll);
  60. }
  61.  
  62.  
  63.  
  64. //C'est ici que tu initialise la fonction
  65. //initScroll('identifiantdemonobjet',vitesse); Vitesse est le temps en millisecond qu'il faut attendre pour avancer d'un pixel;
  66. window.onload = function(){
  67. initScroll('blocktoscroll',70);
  68. }
  69. </script>
  70. </head>
  71.  
  72. <body>
  73. <div id="blocktoscroll">
  74.  
  75. <?php
  76.  
  77. require_once("magpierss-0.72/rss_fetch.inc");
  78. $urlfeed = "<a href="http://www.presence-pc.com/feeds/1454-rss2-consommables.xml" target="_blank">http://www.presence-pc.com/feeds/1454-rss2-consommables...</a>";
  79. $nb_actus_a_afficher = 10;
  80. $fil = fetch_rss($urlfeed);
  81. if(is_array($fil->items)) // Teste si le fil a bien été récupéré
  82. {
  83. $actus = array_slice($fil->items, 0, $nb_actus_a_afficher);
  84. foreach($actus as $actu)
  85. echo "- <a href=\"" . $actu['link'] . "\">" . $actu['title'] . "</a> " . $actu['description'] ."<br /> <br />";
  86. }
  87.  
  88. ?>
  89. </td>
  90. </tr>
  91. <!-- actualites_eof //-->


Maintenant voici le code de ma boxe des derniers produits à mettre en avant :

  1. <!-- boxe_defilante//-->
  2. <tr>
  3. <td>
  4.  
  5.  
  6.  
  7.  
  8.  
  9. <?php
  10. require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
  11. ?>
  12. <tr><td class="smallText"><div align="center"><?php
  13. $info_box_contents = array();
  14. $info_box_contents[] = array('text' => 'Actualités');
  15.  
  16. new infoBoxHeading($info_box_contents, false, false);
  17.  
  18. $featured_products_query = "select pd.products_name, p.products_id, p.products_image, p.products_tax_class_id, s.status as specstat, s.specials_new_products_price, p.products_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id left join " . TABLE_FEATURED . " f on p.products_id = f.products_id where p.products_status = '1' and p.products_id = pd.products_id and f.status = '1' and pd.language_id = '" . (int)$languages_id . "'";
  19. $featured_products = new splitPageResults($featured_products_query, 10);
  20. $featured_query = tep_db_query($featured_products->sql_query);
  21.  
  22. echo "<script>\n";
  23. echo "ejs_scroll_largeur = 110\n;ejs_scroll_hauteur = 150;\nejs_scroll_bgcolor = '#ffffff';\nejs_scroll_background = '#ffffff';\nejs_scroll_pause_seconde = 5;\nejs_scroll_message = new Array;\n";
  24. $x=0;
  25. while ($featured = tep_db_fetch_array($featured_query)) {
  26. $row++;
  27. $PROMO = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $featured['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $featured['products_image'], $featured['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a class="smallText" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $featured['products_id']) . '">' . $featured['products_name'] . '</a><br>' . $currencies->display_price($featured['products_price'], tep_get_tax_rate($featured['products_tax_class_id'])) . '</font>';
  28. echo "ejs_scroll_message[$x]='$PROMO'\n";
  29. $x=$x+1;
  30. }
  31. ?>
  32.  
  33. function d(texte)
  34. {
  35. document.write(texte);
  36. }
  37.  
  38. d('<DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
  39. d('<DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
  40. d('<div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[0]+'</DIV>');
  41. d('<div id=ejs_scroller_2 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';" CLASS=ejs_scroll>'+ejs_scroll_message[1]+'</DIV>');
  42. d('</DIV></DIV>');
  43.  
  44. ejs_scroll_mode =1;
  45. ejs_scroll_actuel = 0;
  46.  
  47. function ejs_scroll_start()
  48. {
  49. if(ejs_scroll_mode == 1)
  50. {
  51. ejs_scroller_haut = "ejs_scroller_1";
  52. ejs_scroller_bas = "ejs_scroller_2";
  53. ejs_scroll_mode = 0;
  54. }
  55. else
  56. {
  57. ejs_scroller_bas = "ejs_scroller_1";
  58. ejs_scroller_haut = "ejs_scroller_2";
  59. ejs_scroll_mode = 1;
  60. }
  61. ejs_scroll_nb_message = ejs_scroll_message.length-1;
  62. if(ejs_scroll_actuel == ejs_scroll_nb_message)
  63. ejs_scroll_suivant = 0;
  64. else
  65. ejs_scroll_suivant = ejs_scroll_actuel+1;
  66. if(document.getElementById)
  67. document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
  68. ejs_scroll_top = 0;
  69. if(document.getElementById)
  70. setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
  71. }
  72.  
  73. function ejs_scroll_action()
  74. {
  75. ejs_scroll_top -= 1;
  76. document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
  77. document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
  78. if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
  79. setTimeout("ejs_scroll_action()",10)
  80. else
  81. ejs_scroll_stop()
  82. }
  83.  
  84. function ejs_scroll_stop()
  85. {
  86. ejs_scroll_actuel = ejs_scroll_suivant;
  87. ejs_scroll_start()
  88. }
  89. window.onload = ejs_scroll_start;
  90. </script></div>
  91. <div align="right"><?php echo $boxpromo . "  "; ?>
  92. </div></td></tr>
  93.  
  94. </td>
  95. </tr>
  96.  
  97. <!-- boxe_defilante//-->



Voilà, par contre j' avoues que je préfèrerais quand même modifier le premier code et ne pas toucher au deuxième... car il fonctionne avec la partie administration de mon site.

Merci

Bart42


Oui entre temps j' ai trouvé comment faire, donc le résultat est quand javascript est désactivé, les produits à mettre en avant n' apparaissent plus du tout dans la boxe, elle vide en gros, et pour la boxe d'infos ça ne défile plus.

Oui justement, j' aimerais bien trouver la solution pour que tout fonctionne correctement avec le js activé, car je pense que le plus souvent ils l'ont après le top serait que tout fonctionne avec le js d'activé ou non.
Mais bon pour l'instant je préfère avoir mes produits en avant qui défilent normalement et essayer de trouver la solution pour intégrer ce défilement de news sans que ça crée de conflits entre les deux.

c' est encore moi,

sinon pour éviter le conflit entre ces deux boxes, est-ce qu'il n' est pas possible de mettre juste un ascenseur pour les news et voir si ma boxe des produits à mettre en avant refonctionne correctement?

j' avoues que là je suis un peu perdu, je te rappelle que je ne connais pas grand chose au php, si on remonte plus haut on va dire qu'il y le code de la boxe1 et celui de la boxe2, dans celui de la boxe1 je vois bien qu'il a une fonction initscroll, mais je ne sais pas ce que je dois en faire, mais peut-être que c'est dans la boxe 2 qu'il faut commenter ces lignes?

Citation :
j' avoues que là je suis un peu perdu, je te rappelle que je ne connais pas grand chose au php,
ca tombe bien, c'est pas du php mais du javascript

Citation :
si on remonte plus haut on va dire qu'il y le code de la boxe1 et celui de la boxe2, dans celui de la boxe1 je vois bien qu'il a une fonction initscroll, mais je ne sais pas ce que je dois en faire, mais peut-être que c'est dans la boxe 2 qu'il faut commenter ces lignes?

ca dépend ce que tu veux faire, tu as dis que tu voulais désactiver le premier pour voir si le second allait refonctionner :o 

Ok,
je viens d'enlever le mot blocktoscrool, ça a pour effet de désactivé la fonction de défilement automatique, par contre l' autre boxe ne défile toujours pas...
J' ai remarqué aussi qu' en faisant ça maintenant en bas de ma page ça me marque terminé mais il existe des erreurs sur la page alors que ça ne le faisait pas.
Enfin bref, donc pour l'instant je vois que ça n' arrange pas mon soucis, je sais pas trop ou donné de la tête.
Mon frère m' a dit au tel tout à l' heure que je dois surement avoir un fichier quelque part normalement à la racine du site dans lequel se trouve une ligne qui indique le nombre autorisé de boxe à scroller, est-ce que ça te parle ou pas du tout?

on est donc arrivé a la conclusion que c'est pas le scrolling bien fait qui empeche le scrolling mal fait de fonctionner ...

maintenant si tu avais les bon outils, tu aurais peut etre trouvé une erreur js !
et oui, je parie que tu n'as meme pas installé le débuggeur js pour ie...

et que tu n'as meme pas configurer php pour etre bavard sur les erreurs...

En fait le scrolling de ma boxe pour mettre en avant fonctionnait très bien avant de mettre celui là en route.
Après j' avoue que pour moi c'est un peu du chinois les outils dont tu parles.
Petite précision, mon site est fait avec la base de oscommerce et que tout ce qui est dessus c'est des contributions oscommerce y compris ma boxe avec les produits qui défilent.
Peut-être qu' il me faut un script adapté à oscommerce...
Malheureusement ça fait plusieurs jours que leur forum est fermé et je ne peux donc pas avoir mieux d'infos de ce coté là.
Sinon quand il y a la moindre erreur de code , ça le dit tout de suite quand tu vas sur le site, là apperemment ça ne donne pas d'erreur particulière par contre il y a qu'une boxe sur deux qui fonctionne.
J' ai fait le test aussi, j' ai une fonction sur mon site pour mettre des produits en promo dans une boxe défilante et elle , ça marche même en même temps que le scrolling de la boxe de news...

Je n' y comprend plus rien...

Il n' est pas tout bricolé... c'est juste ce code là que je viens de rajouter qui ne fait pas partie d'oscommerce, sinon tout le reste est propre, mais je pensais qu' il était possible de rajouter des scripts ou autre code extérieur de oscommerce c'est tout.

Bin disons que pour apprendre le php, le js et tout ça à ta place je n'aurais pas commençé par un tel monument qu'est oscommerce.

Sans vouloir te vexer, il te manques les bases.

  1. <tr>
  2. <td>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">http://www.w3.org/TR/html4/loose.dtd</a>">
  4.  
  5. <?php
  6. ....
  7. ?>
  8.  
  9. <html>
  10. <head>
  11. <title></title>


Avoir une entête de fichier en plein milieu ça ne te choque pas ?

ce qui me choque surtout c'est qu'il joue avec l'argent des gens sans savoir ce que fait le code...

s'il utiliserait un oscommerce sans toucher au code source ca irai mais, la, il change tout sans rien connaitre et puis il s'etonnera que sont site s'est fait hacker par ce qu'il a laisser plein de trous de sécurité ou que sont site ne fonctionne que sous IE 6.003.20020423 sous WinXP sp2 et sans anti popup :o 

non mais apprenez le xhtml avant de jouer avec le fric des gens....

Effectivement,
mais j' ai juste essayer d' adapter ce nouveau code avec celui que j' avais, mais là en fait, je viens de virer cette boxe, je viens de trouver une contribution oscommerce, qui me semble sera mieux adapter, pour l'instant elle marche et du coup l' autre refonctionne aussi.
par contre tout de suite je cherche comment éditer ma boxe avec les explications en Anglais que j' ai du site d' oscommerce.

Sinon c'est vrais que osc est génial, compliqué mais classe, en ce momment ils ont leur forum qui est fermé pour des raisons que je ne connais point dites "techniques", mais quand c'est ouvert, il y a toujours quelqu'un pour vous guidez même si vous n' y connaissez vraiment quasi rien au php. mais à force ça rentre... doucement mais surement.

Merci en tout cas de vos réponses

Bart42

Petite rectification,
Je ne change ,pas tout, j' ai changé juste le code que j' ai trouvé Grâce à vous!!!
Tout le reste est celui de oscommerce, et comme je viens de le dire, depuis que j' ai viré ce code de m.... et installé la contrib d'osc que je viens de trouver, hop c'est magique ça refonctionne comme il faut...

Pour le fait que je ne sais pas forcément bien l' adapter OK, mais vu que vous savez le faire et que je suis là pour solliciter des gens compétents, vous auriez pu éventuellement me le faire remarquer dès que vous avez vu mon code et me dire, ou lala ça va pas il faut pas faire comme ça, essaye comme ça.
On aurait pas perdu tout ce temps de bla bla...
Mais bon merci quand même.
Lassé par la pub ? Créez un compte
  • Contenus similaires :
Tags :