Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/03/2011, à 00:13

Mornagest

[Résolu] Page Internet avec quelques contenus un peu spécifiques

Hello les gens,

J'aimerais savoir s'il est possible (avec quelques connaissances html/css) d'avoir une page Web qui contienne quelques éléments, à savoir :

  • un corps ( tongue )

  • un menu avec quelques liens sur le côté

  • un menu déroulant sur le dessus (avec JS ou sans même, avec css...)

  • et sans doute le plus compliqué, un "module" qui afficherait le contenu des derniers messages postés sur le forum auquel la page en question est liée.

C'est donc surtout pour le dernier point que cela risque d'être plus complexe.  Comme tout ça est plus ou moins destiné à être une page statique, hormis les derniers messages du forum, je trouvais ça dommage d'installer un CMS comme WordPress...

Est-ce que vous pensez que c'est réalisable ?

Merci d'avance pour les réponses smile

Dernière modification par Mornagest (Le 18/03/2011, à 19:42)


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#2 Le 18/03/2011, à 00:21

kouskous

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Pour le corps, tu peux toujours demander à la 'tite tongue


#!/usr/bin/killall
« « J'aime kouskous » — kouskous. »  — kouskous.

Hors ligne

#3 Le 18/03/2011, à 00:52

Kanor

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Euh oui biensure que c'est possible il y a rien de particulièrement compliqué à faire
Si il y a seulement les dernier message du forum à rendre dynamique il est possible d'utiliser du JavaScript pour charger ce bloc.

Dernière modification par Kanor (Le 18/03/2011, à 00:54)

Hors ligne

#4 Le 18/03/2011, à 01:34

Elzen

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Il faudrait peut-être un peu de PHP pour le dernier point…

(S'tu veux, on peut voir ça ensemble la prochaine fois que j'passerai vers chez toi tongue)

Hors ligne

#5 Le 18/03/2011, à 13:03

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Ben, ce serait pour les jours à venir, à vrai dire tongue

Je pensais aussi au PHP (je préfère au JS si c'est possible de l'éviter).  Seulement... j'ai aucune connaissance en la matière.  Je vais essayer de trouver des tutos pour les bases, déjà.


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#6 Le 18/03/2011, à 13:15

Mathieu147

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Pour récupérer les derniers messages du forum, tu peux faire ça uniquement en PHP.

Uniquement en Javascript ce n'est pas possible puisque tu ne pourras pas charger une page d'un autre domaine.

Dernière modification par Mathieu147 (Le 18/03/2011, à 14:11)


Pffff…

Hors ligne

#7 Le 18/03/2011, à 14:11

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Ouaip, je pense que ça devrait le faire avec du PHP.  Je suis en train de voir comment ça fonctionne avec le tuto du site du zéro, ensuite, je trouverai bien un moyen de trouver du code qui affiche les pages.

Au pire, je peux zyeuter sur le code source de WordPress, il y a un module qui fait ça...

Merci, les gens ! smile


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#8 Le 18/03/2011, à 14:16

Mathieu147

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Je crois que le plus simple, c'est de faire un script php super simple, genre ça:

<?php
$content = file_get_contents('http://forum.ubuntu-fr.org/search.php?action=show_24h');
if ($content !== false) {
  echo $content;
}
?>

Ensuite, tu utilises jQuery avec la fonction load(), par exemple comme ceci pour afficher les messages dans le <div id="truc">:

$(document).ready(function() {
  $('#truc').load('/tonscript.php #vf table');
});

À mon avis ça devrait fonctionner.

EDIT: yeah je suis trop fort, ça marche.

Essaie avec ça dans ubuntu.php:

<?php
$content = file_get_contents('http://forum.ubuntu-fr.org/search.php?action=show_24h');
if ($content !== false) {
  echo $content;
}
?>

et ça dans ton html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
</head>
<body >

<div id="truc"></div>

    <script type="text/javascript">
    $(document).ready(function() {
        $('#truc').load('/ubuntu.php #vf table');
    });
    </script>
</body>
</html>

Après, tu fais ça un peu joli avec du CSS, il y a peut-être des trucs à améliorer, mais là tu devrais être bien parti.

Edit²: ah oui, c'est pas précisé, mais le Javascript n'est pas indispensable. Par contre, pour manipuler le DOM, modifier certains trucs (par exemple les liens vont tous être cassés) ça sera mille fois plus simple qu'en PHP.

Exemple pour réparer les liens, tu remplaces le Javascript que j'ai donné par ça:

    $(document).ready(function() {
        $('#truc').load('/ubuntu.php #vf table', null, function() {
            $('#truc').find('a').each(function() {
                $(this).attr('href', 'http://forum.ubuntu-fr.org/' + $(this).attr('href'));
            });
        });
    });

Et PAF! ça fait des Chocapic tu as réparé les liens en 2 lignes.

Edit³: Hahaha, je suis sûr que tu vas passer 2h à lire le SdZ, puis tu vas revenir voir ici que t'as la solution faisable en 5 minutes qui est en train de t'attendre big_smile

Dernière modification par Mathieu147 (Le 18/03/2011, à 14:29)


Pffff…

Hors ligne

#9 Le 18/03/2011, à 14:33

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Nan, je suis repassé par curiosité tongue mais de toute façon, ça me fait pas de mal de comprendre les concepts de variables et de conditions (enfin, je sais ce que c'est, mais je connais pas la syntaxe).

Je ferai un essai ce week-end, j'aurai normalement du temps (il paraît qu'il va flotter tongue).

Je te remercie, en tout cas smile comme pour l'instant, j'ai une page vide sur mon domaine, je vais pouvoir me lâcher ! cool


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#10 Le 18/03/2011, à 15:16

Kanor

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Ah ouai j'étais con quand j'ai répondu probléme avec le cross domain hmm

Hors ligne

#11 Le 18/03/2011, à 16:20

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Hum, par contre, Mathieu147, où est-ce que je dois placer le code JS pour qu'il soit pris en compte ?


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#12 Le 18/03/2011, à 16:48

Sir Na Kraïou

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

kouskous a écrit :

Pour le corps, tu peux toujours demander à la 'tite tongue

Ça dépend. Il veut un corps mort ou vif ?


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#13 Le 18/03/2011, à 17:35

Mathieu147

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Kanor a écrit :

Ah ouai j'étais con quand j'ai répondu probléme avec le cross domain hmm

Ouais, moi aussi, c'est pour ça que j'ai édité mon message: personne n'a rien vu cool

Mornagest a écrit :

Hum, par contre, Mathieu147, où est-ce que je dois placer le code JS pour qu'il soit pris en compte ?

Ben où tu veux, mais n'oublie pas de charger jQuery avant en mettant ça dans l'entête:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>

comme dans mon post ci dessus.

De nouvelles versions de jQuery sont sorties depuis la 1.3.2 donc utilise la plus récente tant qu'à faire, mais moi j'ai copié/collé ça d'un truc que j'avais fait ailleurs avec cette version de jQuery.


Pffff…

Hors ligne

#14 Le 18/03/2011, à 19:28

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

OK, je vais tenter comme ça et je te dis quoi smile merci, en tout cas !

Edit : super, ça fonctionne et les liens marchent.  Faut que j'adapte pour noter forum, en spécifiant les derniers messages pour une section en particulier, ensuite ce sera bon (et .css évidemment tongue).

Un grand merci ! cool

Dernière modification par Mornagest (Le 18/03/2011, à 19:40)


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#15 Le 18/03/2011, à 19:51

kamui57

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Salut

sinon, en php, tu as simple html dom parser qui permet de trouver des éléments facilement dans une page.

ici en bas j'ai d'abord simplement récupéré la liste des messages récents :

<?php
// affichage des erreurs en test
ini_set('display_errors', 1);

// pour parser facilement la page
include('simplehtmldom/simple_html_dom.php');

// obtention du code source de la page parsée
$html = file_get_html('http://forum.ubuntu-fr.org/search.php?action=show_24h');

// on cherche la liste des messages récents (regarder le code source de la page visée pour trouver les balises)
$liste=$html->find('div#vf div.box div.inbox table tbody',0);
    echo $liste; // pour pas s'emmerder ça suffit. Affiche le même tableau que sur le forum
    afficherEtParser($liste); // mais j'avais envie. Affichage changé par rapport au forum
?>

Sinon voici l'affichage changé par rapport au forum. J'ai changé l'affichage en récupérant chaque élément, mais si on veut simplement afficher qu'un certain nombre de sujets il suffit pour chaque ligne de l'afficher telle quelle. la fonction recupererUtilisateur retourne "Utilisateur" à partir de la chaine "par Utilisateur". Les variables en majuscules sont des constantes définies dans un autre fichier.

// parse la page visée récupère les variables et affiche les résultats
function afficherEtParser($liste){
  require 'constants.php';

  $compteur=0; // compteur de lignes
  // on sépare les éléments de la liste si on veut
  echo '<ul>';
  foreach($liste->find('tbody tr') as $ligne) {
    if ($compteur != 0 && $compteur <= $NB_MAX){ // on enlève le head compteur=0
      
      //// on récupère les infos
      // topic
      $sujeturl=$ligne->find('div.tclcon div a',0)->href;
      $sujettitre=$ligne->find('div.tclcon div a',0)->innertext;
      $sujetuser=recupererUtilisateur($ligne->find('div.tclcon span',0)->innertext);

      // nombre de réponses
      $reponses=$ligne->find('td.tc3',0)->innertext;
      if ($reponses > 1) $reponses=$reponses.' réponses';
      else $reponses=$reponses.' réponse';

      // dernier message posté    
      $derniermessurl=$ligne->find('td.tcr a',0)->href;
      $derniermesstemps=$ligne->find('td.tcr a',0)->innertext;
      $derniermessuser=recupererUtilisateur($ligne->find('td.tcr span',0)->innertext);

      // forum auquel ce sujet appartient
      $forumurl=$ligne->find('td.tc2 a',0)->href;
      $forumtitre=$ligne->find('td.tc2 a',0)->innertext;

      //// affichage
      echo '<li>';
      echo '<a href="'.$URL_RACINE.$sujeturl.'">'.$sujettitre.'</a> de '.$sujetuser.' ('.$reponses.') par <a href="'.$URL_RACINE.$derniermessurl.'">'.$derniermessuser.' '.strtolower($derniermesstemps).'</a> dans <a href="'.$URL_RACINE.$forumurl.'">'.$forumtitre.'</a>.';
      echo '</li>';
    } // if compteur entre min et max
    $compteur++;
  } // foreach ligne
  echo '</ul>';
} // function afficher et parser

Concernant le design, cette page présente un menu déroulant super joli, et même son design est bien beau je trouve.

edit : rah j'avais pas vu que t'avais fini ! Bah pas grave ça m'a fait pratiquer smile

Dernière modification par kamui57 (Le 18/03/2011, à 19:54)


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#16 Le 18/03/2011, à 22:04

Mornagest

Re : [Résolu] Page Internet avec quelques contenus un peu spécifiques

Ça fait rien, je garde sous le coude smile ça pourra toujours m'aider ! Merci !


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne