Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajax pour Forum en phpbb3

    13 novembre 2011 à 19:43:12

    bonjour je relance le message si parmis vous quelqu'un peu reprendre le code existant ou même trouvé une solution alternative je suis preneur merci à vous
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2012 à 10:19:12

      Bonne année à tous si par hasard une autre personne à une solution
      thx
      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2012 à 21:01:44

        bon ça sert à rien de faire d'avantage de up personne ne sais bref sujet clos
        • Partager sur Facebook
        • Partager sur Twitter
          17 août 2012 à 11:40:51

          Bonjour à tous,

          Moi je trouvais le sujet assez intéressant alors j'vais juste mettre un message avec une solution a exploité. Elle n'est pas appliqué à phpBB mais avec un minimum de recherche, ce sera facilement adaptable (j'étais d'ailleurs entrain d'essayer avec mon forum quand j'ai vu ce message xD). C'est un script que j'ai écris à partir de divers recherches faites sur internet et de mes propres connaissances.

          J'ai vu dans les messages précédents qu'il y avait de l'idée. Le problème est qu'à priori aucun d'entre vous n'a réellement suivi jusqu'au bout les cours sur l'Ajax avec JQuery. Et que vous vous êtes arrêter à un apprentissage de base du Javascript.
          Je ne suis pas particulièrement expert en JQuery/Ajax, cela ne fait qu'un mois que je pratique réellement, mais vous n'avez pas pris en compte le fonctionnement même du DOM.
          De plus, vous utilisez des fonctions qui vont à l'encontre même du principe de JQuery. Je parle évidemment de l'utilisation de onClick par exemple.

          Pour terminer, je pars du principe qu'un bon code Ajax/JQuery est un code qui fonctionne aussi bien avec Javascript activé que désactivé. Exemple: Facebook est perdant sur ce point xD.
          Donc l'idée est simplement d'ajouter une surcouche qui dynamise la page mais qui ne gène en rien une utilisation habituelle. Et surtout, qui ne tue pas le référencement. Qu'on en veuille ou pas. De plus, une vérification du temps d'exécution et du nombre des requêtes et à prendre en compte surtout que Javascript permet moyennement de faire une barre de progression pour faire patienter l'utilisateur. Et le gif animé qui tourne en boucle, ça va 1 minute. Et encore...

          Ainsi, voici le lien vers la démonstration:
          http://labo.finitia-world.com/dynpages/index.php

          Et les codes:
          Javascript:
          $(document).ready( function() {
          	// Chargement de l'évènement click sur a dans le DOM.
          	$("#transition").on("click", "a", function() {
          		var $tpa = $(this);
          		transpage($tpa.attr('title'), $tpa.attr('href'));
          		// Désactivation du lien
          		return false;
          	});
          });
          
          // Changement de la page par Ajax/Effect
          function transpage (title, url, skipHistory)
          {
          	// On fait disparaitre le bloc
          	$('#transition').slideToggle('slow', function() {
          		// On charge la page demandée
          		$(this).load(url, function() {
          			// Modification du titre
          			document.title = title;
          			// Ajout des états
          			var stateObj = {
          				title: title,
          				url: url
          			};
          			// Gestion de l'historique
          			if (!skipHistory)
          			{
          				if (typeof window.history.pushState == 'function')
          				{
          					window.history.pushState(stateObj, title, url);
          				}
          			}
          			// Apparision du bloc
          			$(this).slideToggle('slow');
          		});
          	});
          }
          
          window.onpopstate = function(event) {
          	//Si event.state est définie (c'est à dire que la page précédente fait partie de l'historique courant), on charge le contenu
          	if (event.state) {
          		   transpage(event.state.title, window.location.pathname, true);
          	} else {
          		//Si event.state n'est pas définie, on créer un nouvel objet d'état
          		var stateObj = {
          				title: document.title,
          				url: window.location.pathname 
          		};
          		//On modifie l'entrée actuelle
          		window.history.replaceState(stateObj,document.title,window.location.pathname);
          	}
          }
          


          body
          {
          	width: 100%;
          	height: 100%;
          	margin: 0;
          	padding: 0;
          	background: #dedede;
          	font-family: Verdana;
          	font-size: 12pt;
          	color: #FFF;
          }
          
          a
          {
          	text-decoration: none;
          	font-family: Verdana;
          }
          
          #transition
          {
          	display: block;
          	margin: auto;
          	width: 500px;
          	height: 300px;
          	padding: 10px;
          }
          
          .pageindex
          {
          	display: block;
          	background-color: red;
          	width: 500px;
          	height: 300px;
          	padding: 10px;
          }
          
          .pagetest
          {
          	display: block;
          	background-color: gray;
          	width: 500px;
          	height: 200px;
          	padding: 10px;
          }
          
          .pageautre
          {
          	display: block;
          	background-color: green;
          	width: 500px;
          	height: 300px;
          	border-radius: 5px;
          	padding: 10px;
          }
          
          /*----BLOC HEADER-----*/
          
          .header
          {
          	width: 100%;
          	height: 100%;
          	margin: 0px;
          	min-width: 950px;
          	background: #18191a;
          }
          
          .bloc_header
          {
          	width: 1000px;
          	height: 150px;
          	margin: auto;
          }
          
          .box_profile
          {
          	position: relative;
          	width: 150px;
          	height: 40px;
          	float: right;
          	right: 10px;
          	top: 0px;
          }
          
          a.lien_tophide
          {
          	position: relative;
          	top: 10px;
          	left: 2px;
          	font-size: 9pt;
          	color: #ededed;
          }
          
          a.lien_tophide:hover
          {
          	color: #FFF;
          	text-decoration: underline;
          }
          
          .img_barre_profile
          {
          	position: relative;
          	width: 30px;
          	height: 30px;
          	float: right;
          	right: 2px;
          	top: 5px;
          	background: #4c4d4e;
          }
          
          .img_barre_profile:hover
          {
          	background: #474849;
          }
          


          <?php
          if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']!="XMLHttpRequest") {
          ?>
          <!DOCTYPE html>
          <html>
              <head>
                  <meta charset="utf-8" />
                  <title>Index :: DynPages</title>
          		<link rel="stylesheet" href="style.css" />
          		<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
          		<script type="text/javascript" src="dynpages.js"></script>
              </head>
          
              <body>
          		<div class="header">
          			<div class="bloc_header">
          		
          				<div class="box_profile">
          					<a class="lien_tophide" href="http://pyroxty.finitia-world.com/">Cédric MONNIER</a>
          					<img class="img_barre_profile" src="" alt="" />
          				</div>
          				
          			</div>
          		</div>
          
                  <p id="transition">
          <?php
          }
          ?>
          			<span class="pageindex">Ceci est un test de changement de page en HTML5/CSS et JQuery Ajax avec effet Slide.<br />
          			<a title="Test :: DynPages" href="test.php">Rejoignez la page de Test par Ajax+Effet</a><br />
          			<a title="Test :: DynPages" href="autre.php">Rejoignez l'autre page par Ajax+Effet</a></span>
          <?php
          if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']!="XMLHttpRequest") {
          ?>
          		</p>
              </body>
          </html>
          <?php
          }
          ?>
          


          Notez que j'utilise $_SERVER['HTTP_X_REQUESTED_WITH']!="XMLHttpRequest" pour définir la partie a affiché une fois la requête Ajax envoyer. Ceci dit, vous pouvez aussi modifier le js pour afficher ce qu'il y a dans l'ID. Mais je préfère cette méthode qui risque moins d'être manipuler par une personne indésirable que l'id.
          J'vous redirai si ça marche une fois en application sur mon forum. En attendant, amusez-vous bien ;).

          Bonne journée à tous et désolé pour le maxi up.
          • Partager sur Facebook
          • Partager sur Twitter
            7 avril 2013 à 11:35:28

            Salut,

            je réouvre le sujet, et je m'en vais de ce pas tester ton code

            @++

            • Partager sur Facebook
            • Partager sur Twitter

            Ajax pour Forum en phpbb3

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown