Module news à défilement automatique facon diaporama

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 : Module news à défilement automatique facon diaporama

Re: Module news à défilement automatique facon diaporama

par telnes » 16 juil. 2010, 09:39

hello

c'est possible => oui
mais disons que ... on à pas trop le temps :))

mais tu peux chercher un plug in jquery autre qui fait ce que tu demande, regarde sur le site de jquery ou demande sur leur forum.

++

Re: Module news à défilement automatique facon diaporama

par babyboy6492 » 15 juil. 2010, 16:00

Merci, j'ai réussit avec les liens de telnes mais par contre si il y a un lien sur l'image les boutons precedents et suivant ne fonctionnent pas car ils sont situés sur l'image, il n'y auarait pas moyen de les mettres à gauche et à droite de l'image (en dehors)??

C'est juste un plus, si pas possible je m'en comptenterai

Re: Module news à défilement automatique facon diaporama

par AB » 09 juil. 2010, 17:45

...Mon niveau en javascript étant proche du néant...
Donc si c'est le cas suis les liens de telnes (d'ailleurs il doit y avoir d'autres modules javascript pour jquery)

Sinon tu peux tester le code ci-dessous qui fait à peu près ce que tu demandes à partir d'un tableau php :
<?php
header('Content-type: text/html; charset=UTF-8');

$tab_news[0]['text'] = 'Avatar AB';
$tab_news[0]['image'] = 'http://www.laquadrature.net/wiki/images/4/48/Quadrature_black-out_HADOPI_50x50px_fixed_texte.png';

$tab_news[1]['text'] = 'Avatar Stopher';
$tab_news[1]['image'] = 'http://lindev.fr/public/images/bt-agents-color.jpg';

$tab_news[2]['text'] = 'Avatar Albat';
$tab_news[2]['image'] = 'http://albat.fr.free.fr/phpfrance/coccinelle_v3.png';


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>


<script type="text/javascript">

function Message(tab,id_message,id_photo)
{

        var id_mes = document.getElementById(id_message);
        var id_pho = document.getElementById(id_photo);

       
        var tab_news_js = tab;
       
        // nombre d'éléments du tableau
        var nb_tab_news_js = tab_news_js.length;
       

        // Si les éléments cibles existent et le tableau a plus d'un élément
        if (id_mes && id_pho && nb_tab_news_js > 1)
                {
                       
                        var Img_preload_src = new Array();
                       
                        // préchargement des images
                        for (var i=0; i < nb_tab_news_js; i++)
                                {
                                        if (typeof tab_news_js[i]['image'] != 'undefined')
                                        {
                                                Img_preload_src[tab_news_js[i]['image']] = new Image();
                                                Img_preload_src[tab_news_js[i]['image']].src = tab_news_js[i]['image'];
                                        }
                                }
                               
                       
                        function Boucle(inc)
                                {
                                        //je défini l'indice en fonction de la position dans le tableau
                                        var inc = inc < nb_tab_news_js ? inc : 0;
                                       
                                        // Je nettoie l'élément cible du texte
                                        var noeuds = id_mes.childNodes.length;
                                        for (var i = 0; i < noeuds; i++)          
                                                {                                  
                                                        id_mes.removeChild(id_mes.firstChild);
                                                }
                               
                                                                               
                                        // Je prend l'adresse de la photo enregistrée dans le tableau; il faudrait remplacer adresse_image_vide.jpg par l'adresse d'une image transparente (au cas ou l'image ne serait pas renseignée dans le tableau php)
                                        var image = typeof tab_news_js[inc]['image'] != 'undefined' ? tab_news_js[inc]['image'] : 'adresse_image_vide.jpg' ;
                                       
                                        // Je cherche le texte enregistré dans le tableau
                                        var texte = typeof tab_news_js[inc]['text'] != 'undefined' ? tab_news_js[inc]['text'] : '';
                                        // je crée un noeud texte avec le texte  récupéré
                                        texte = document.createTextNode(texte);
       
                                        // J'insère la photo dans l'élément cible
                                        id_pho.src = image;
                                       
                                        // J'insère le noeud texte dans l'élément cible
                                        id_mes.appendChild(texte);
                                       
                                        //j'incrémente
                                        inc++;
                                       
                                        //J'appelle la fonction Boucle toutes les quatre secondes
                                        setTimeout(function(){Boucle(inc)},'4000');  
       
                                }
                       

                Boucle(0);
               
                }                      
}


// Fonction de chargement onload
function AddLoad_JS(func) {

                if (window.addEventListener)
                {
                        window.addEventListener("load", func, false);
                }
       else if (document.addEventListener)
                {
                        document.addEventListener("load", func, false);
                }
       else if (window.attachEvent)
                {
                        window.attachEvent("onload", func);
                }
}


// Chargement onload de la fonction Message avec ses paramètres tab_news, id news_texte, et id news_photo
AddLoad_JS(function(){Message(<?php  echo (isset($tab_news) && is_array($tab_news))? json_encode($tab_news) : 'new Array' ?>, 'news_texte', 'news_photo')});


</script>
<style type="text/css">
.conteneur td {
        width : 200px;
}
.conteneur {
        height : 100px;
        width : 400px;
        border : 3px solid black;
}
</style>
</head>
<body>

<table class = "conteneur">
<tr>
<td id = "news_texte">

      <?php if (isset($tab_news[0]['text'])) echo $tab_news[0]['text'];?>

</td>

<td>

        <img id = "news_photo" src="<?php if (isset($tab_news[0]['image'])) echo $tab_news[0]['image']; else echo 'adresse_image_vide.jpg'?>" />
   
</td>

</tr>
</table>

</body>
</html>
Par contre il n'y a pas de boutons pour la navigation manuelle et j'ai pas le temps de les intégrer pour l'instant.

Re: Module news à défilement automatique facon diaporama

par telnes » 09 juil. 2010, 14:49

Re: Module news à défilement automatique facon diaporama

par babyboy6492 » 09 juil. 2010, 14:12

Mon niveau en javascript étant proche du néant, j'aurais besoin de beaucoup d'aide!! ^^

Si ca peut aider, j'ai récupérer puis afficher de manière simple dans un tableau les news contenues dans la base de données:
<?php
		$base = mysql_connect("localhost", "root", "");
		mysql_select_db("hockey", $base);
		
		$sql = 'SELECT news_ID, news_titre, news_date, news_texte, news_image FROM news ORDER BY news_date';  
		
		$req = mysql_query($sql) or die(mysql_error()) ;
		
?>
			<table>
<?php
		while($news=mysql_fetch_array($req))
		{
			$id = $news['news_ID'];
			$lien = "Images/news/$id/1.jpg";
			$lien_defaut = "Images/news/defaut.jpg";
			$date = $news['news_date'];
			
                    	echo '<tr>';
			echo '<td>';
				dateConv($date);
			echo '</td>';
                        echo "<td colspan='2'>". $news['news_titre'] . "</td>";
                        echo '</tr>';
                        echo '<tr>';
			if ($news['news_image'] == 1)
			{
                        	echo '<td colspan="3"><a href="details_news.php?news=' .$news['news_ID']. '"><img id="image" src="' . $lien . '" alt="image" width="400" height="300"/></a></td>';
			}
			else
			{
				echo '<td colspan="3"><a href="details_news.php?news=' .$news['news_ID']. '"><img id="image" src="' . $lien_defaut . '" alt="image" width="400" height="300"/></a></td>';
			}
                        echo '</tr>';
		}
?>
                    </table>
par contre du coup là ca affiche toutes les news les unes en dessous des autres!!

Re: Module news à défilement automatique facon diaporama

par telnes » 09 juil. 2010, 11:33

hello

regarde du coté de Jquery

++

Re: Module news à défilement automatique facon diaporama

par Nours312 » 09 juil. 2010, 10:30

salut !...

dans l'état, au niveau de javascript, il n'y a pas de difficulté, il te suffit d'avoir une div paret contenant x Div enfants dont chacun contient ta news.
lors du chargement de la page, tu compte le nb de div enfant, les places dans un Array et leur attribut un style display="none" (pour les masquer)
Ensuite, tu affiche la première div de ton tableau (display="block")
puis toutes les x secondes, tu masque la div affichée et affiche la suivante ....

Pour ce qui est des boutons, ce sera pareil, il te suffira de mettre à jour une variable "autoRun" (pour le défilement automatique) ou une variable "idDivEnCours" pour savoir quelle div afficher ... ( << / >>)

Voila pour les grandes lignes ;) @+

Module news à défilement automatique facon diaporama

par babyboy6492 » 08 juil. 2010, 20:34

Bonjour à tous!

Je suis en train de programmer un site web et j'aimerais pouvoir y mettre dans la page d'accueil un module où les news défileront de manière automatique ou manuelle à la façon d'un diaporama.
Comme un exemple vaut mieux que des discours voila en gros ce que j'aimerais: http://www.hockeyhebdo.com/

J'ai déjà fait une base de donnée et une page, nommée news.php permettant de récupérer le contenu de cette base de données:
<?php
// on se connecte à notre base
$base = mysql_connect("localhost", "root", "");
mysql_select_db("foot", $base);

$sql = 'SELECT news_titre, news_date, news_texte, news_image FROM news ORDER BY news_date ASC LIMIT 10';  

 
$req = mysql_query($sql) or die(mysql_error()) ;

$tab_news = array();

$i = 0;
while($resultat = mysql_fetch_assoc($req))
{
	$tab_news[$i]['image'] = $resultat['news_image'];
	$tab_news[$i]['text'] = $resultat['news_texte'];
	$i++;
}
?>

J'y ai construit un tableau qui servira pour le javascript je pense et limiter aux dix dernières news de la base de données...
Je souhaite voir avec vous comment créer le module permettant d'afficher et d'effectuer le défilement de ses news (pour ce qui est des ajouts, suppression je m'en occupe: aucun problème)!!

Voila j'espère avoir été assez précis mais si tel n'est pas le cas, n'hésitez pas à demander...