IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tableau avec des HTML


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut Tableau avec des HTML
    Bonjour,

    J'ai sur ma page un petit code sympas.
    Ce code trie des images qui sont dans un dossier et ensuite affiche ces images l'une en dessous de l'autre dans une zone scrolable.

    Voila le code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!-- ******************************************
         * ZONE SCROLABLE SPECTACLES              *
    	 ******************************************-->        
    	<div id="madiv" class="zoom">
    	<?php  // debut de la zone scrollable  
    	$nom = array (); // On déclare le tableau AVANT la boucle
    	$dossier = 'jdwdates'; // On défini dans quel dossier on va
    	$dir = opendir($dossier); //On ouvre le dossier en question
    	while($file = readdir($dir)) { // on fait une boucle pour lire ce qu'il y a dedans
    		if($file != '.' && $file != '..' && !is_dir($dirname.$file)) // on exlcu . et ..
    		{
    			$nom[] = $dossier.'/'.$file; // on ajoute dans le tableau chaque nom de fichier
    					}
    	}
     	closedir($dir); // on ferme le dossier
    	sort ($nom); // on trie le tableau qu'on vient de construire
    	foreach ($nom as $fichier)  { // on fait la boucle qui va lire le tableau 
        echo '<img src="'.$fichier.'" /><br />';  // on affiche les images relatives au noms de fichier  que le tableau contient
    }
    // fin de la zone scrollable
    ?></td></div>
    J'envisage de remplacer les images par des petits fichiers HTML.
    Je voudrais afficher ces fichiers HTML sur le même principe que les images donc qu'on voit leur contenu.
    Je créerais moi même des fichiers tous sur base du même format mais je voudrais que la "zone" (la petite case) ou s'afficherait ce fichier HTML ai des dimensions fixes.
    Est ce que quelqu'un comprends ce que je veux faire ?.
    Est ce que c'est possible ?
    Est ce que quelqu'un a déjà vu un truc comme ça ?
    Et surtout une idée de comment faire ?

    Merci :-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    La solution la plus simple serait d'utiliser les frames mais c'est très moche une frame (Autant visuellement que sur le concept).

    tu pourrais aussi récupérer le contenu de tes fichiers en l'echo dans un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $contenus = array(); // On déclare le tableau AVANT la boucle
    $dossier = 'dossierdefichiershtml'; // On défini dans quel dossier on va
    $dir = opendir($dossier); //On ouvre le dossier en question
    while ($file = readdir($dir)) { // on fait une boucle pour lire ce qu'il y a dedans
    	if ($file != '.' && $file != '..' && !is_dir($dossier . $file)) { // on exlcu . et ..
    		$contenus[] = file_get_contents($dossier . "/" . $file); // on ajoute dans le tableau le contenu de chaque de fichier
    	}
    }
    closedir($dir); // on ferme le dossier
    echo "<table><tr>";
    foreach ($contenus as $contenu) { // on fait la boucle qui va lire le tableau 
    	echo "<td>";
    	echo $contenu;  // on affiche le contenu des fichiers html
    	echo "</td>";
    }
    echo "</tr></table";

  3. #3
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Bonjour Winks,

    Merci pour ce bout de code.
    J'ai tenté de l'adapté à ma page.
    son code entier est visible ici :
    http://www.espaceimagi.be/divers/spectacles.txt
    Quand je charge la page j'ai juste Array qui s'écrit alors que j'ai pourtant créé un petit fichier qui s'appel 1.html et qui est dans jdwdates.
    le fichier 1.html ne contient que ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>date jérome de Warzée</title>
    </head>
     
    <body>
    Ceci est un test
    </body>
    </html>
    Autant dire que c'est assez simple.
    Il y a un truc que je ne pige pas dans le code et ça vient peut être de là.

    Quand on fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($nom as $fichier)  // on fait la boucle qui va lire le tableau 
    	{echo"<td>";
    	echo $nom;  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    la ligne qui affiche le contenu des fichiers c'est
    echo $nom;
    Mais comment le echo sait ou il est censé être dans le tableau ?
    Enfin bon c'est peut être pas ça mais je galère depuis tantôt à trouver...

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    echo $nom;
    Mais comment le echo sait ou il est censé être dans le tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     foreach($nom as $fichier)
    Soit en français: "Pour chaque élément de $nom, qu'on appelle fichier". Voir la doc sur le foreach

    Quand tu fais "echo $nom", tu affiche le tableau au lieu d'afficher la ligne concernée. Il faut "echo $fichier".

    A partir de ça, si ça ne fonctionne toujours pas, débug:
    var_dump($dir), var_dump($file) dans la boucle, et ainsi de suite pour voir où il y a un problème. Il faudra remplacer je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !is_dir($dirname.$file)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !is_dir($dir . "/" . $file)
    , parce que $dirname n'existe pas au dernière nouvelle et $dir.$file n'est pas sensé exister.

    Si tu affiches le contenu des fichiers HTML, au lieu de les afficher dans des frames, tu n'as pas besoin de leur mettre d'en-tête, de doctype, tout ça est géré dans le fichier principal (Sinon tu auras 7 en-têtes de titre sur une même page).

  5. #5
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Oui en effet et c'est même file et pas fichier vu que plus haut dans le code on utilise file et pas fichier.
    Par contre j'ai toujours une petit incompréhension avec la boucle.

    Je comprends bien que foreach($nom as $file) "dit" qu'il faut faire un certain nombre de fois ce qui est entre les accolades à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {echo"<td>";
    	echo $file;  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    Mais ce que je ne pige pas c'est comment le écho "sait" ou il est.

    Petite explication de ce qui se passe dans ma tête et qui rend les choses pas très claires.

    Si je visualise la boucle comme dans le temps ce serait un truc comme ça :

    on aurait créé un tableau du genre :
    fichier1 ="blabla"
    fichier2 ="totot"
    fichier3 ="dudul"
    etc...

    FOR A = 1 TO 10 (on fait 10 X la boucle)
    Print fichier
    NEXT A

    Mais ça n'afficherait rien puisque dans fichier on ne trouve rien, il faudrait allez dans fichier1,fichier2, etc...

    En fait ce qui me perturbe c'est que je me serais attendu pour cette boucle à avoir un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($nom as $file) 
    {echo"<td>";
    	echo $file[quelquechosequiindente];  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    Bon je sais je suis anachronique mais on raccroche les wagons comme on peut hein

  6. #6
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Encore une question relative à mon fameux tableau...

    J'ai bien compris le principe et ça marche.
    C'est sympas et exactement ce que je voulais.
    Maintenant je regarde un peu pour la conception du contenu de ce tableau.
    Je devrais y "caser" une petite image, et quelques éléments sur le côté :
    - Une date
    - Un lieu
    - Un lien cliquable pour le site.
    - Un lien cliquable pour le mail.
    - Un numéro de téléphone.

    Ce qui serait bien ce serait que je puisse définir un tableau comprenant une colonne sur la droite qui ferait toute la hauteur, et une colonne sur la gauche constituée de 5 lignes de hauteurs différentes.

    Ca ne me pose pas trop de soucis de faire ça.

    Par contre la taille de mes cadres peut varier selon leur contenu et je me demandais s'il ne serait pas possible d'ajouter dans la lecture du tableau quelque chose qui mettrait le tableau à l'échelle pour qu'il rentre bien dans ma page.
    Je dis bien mettre à l'échelle pas couper le bout qui est trop grand.
    Ainsi je pourrais mettre dans mon dossier jdwdates tous mes HTML contenant des tableau différents et ils s'afficheraient bien dans ma page.

    Tu aurais une idée si c'est possible et comment ?
    Moi je vois bien comment enfermer le truc dans une div mais je ne vois pas trop comment faire pour que chaque tableau soit "rétréci" ou "agrandi" à la taille de cette div ?

    Merci encore de ton aide.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Concernant le foreach, il "lit simplement" ton tableau.

    Si tu veux un exemple, avant la ligne du foreach, fais un PHP devrait afficher quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    array => (
        [0]    ->    "jwdates/fichier1.html",
        [1]    ->    "jwdates/fichier2.html",
        [2]    ->    "jwdates/fichier3.html",
        [3]    ->    "jwdates/fichier4.html",
        ...
    )
    Il est possible de se balader dans le tableau en utilisant un index

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom[0] = "jwdates/fichier1.html
    Et il est possible de faire un équivalent du foreach avec un for simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $taille_du_tableau = size($nom);
    for($i = 0; $i < $taille_du_tableau; $i++){
        echo $nom[$i]
    }
     
    <=>
     
    foreach($nom as $fichier){
        echo $fichier;
    }
    Le foreach est une version simplifiée (à écrire) pour se balader dans un tableau. $fichier va prendre à chaque fois la valeur de la ligne suivante, dans le même ordre que celui dans lequel il t'affiche les lignes dans le var_dump().

    ----

    Concernant le redimensionnement des tableaux, Si la taille des <div></div> n'est pas fixée à l'avance, elle est flexible et s'adapte à ce qu'on y met, non? Si tu as un exemple plus précis de ce qui ne convient pas, ça pourrait aider

  8. #8
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Bon disons que dans ma page je fais un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <div id="madiv" class="zoom">
    	<?php  // debut de la zone scrollable  
    	$nom=array(); // On déclare le tableau AVANT la boucle
    	$dossier='jdwdates'; // On défini dans quel dossier on va
    	$dir=opendir($dossier); //On ouvre le dossier en question
    	while($file=readdir($dir)) { // on fait une boucle pour lire ce qu'il y a dedans
    	if($file!='.'&&$file!='..'&&!is_dir($dirname.$file)) // on exlcu . et ..
    	 {$nom[]=file_get_contents($dossier."/".$file); // on ajoute dans le tableau le contenu de chaque de fichier
    	}
    }
    	closedir($dir); // on ferme le dossier
    	echo"<table><tr>";
    	foreach($nom as $file)  // on fait la boucle qui va lire le tableau 
    	{echo"<td>";
    	echo $file;  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    	echo"</tr></table";
    // fin de la zone scrollable
    ?>
    Dans mon CSS, j'ai ça :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #madiv{
    width:100%;
    height:500pt;
    margin-left: -35px; 
    padding: 33px;
    overflow-y:auto;
    overflow-x:hidden;
    }

    La vignette écrite en HTML devrait ressembler à ça :
    Nom : jdwvi.jpg
Affichages : 86
Taille : 55,5 Ko

    Son code c'est ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>date jérome de Warzée</title>
    <style type="text/css">
    .vignette1 {
    font-family: "Arial Black", Gadget, sans-serif;
            font-size: 18pt;
            color: #000;
    }
    .vignette2 {
            font-family: "Arial", Gadget, sans-serif;
            font-size: 10pt;
            color: #000;
    }
    .Vignettesoldeout {
            font-family: "Arial Black", Gadget, sans-serif;
            font-size: 25pt;
            color: #000;
            color: #F00;
    }
    </style>
    </head>
     
    <body>
    <table width="422" border="1" class="Vignettesoldeout">
      <tr>
        <td width="120" rowspan="5"><img src="../images/affiche sans cadre leger LR.gif" width="120" height="165" /></td>
        <td width="286" height="30"><h2><span class="vignette1"><strong>Rossignol</strong></span></h2></td>
      </tr>
      <tr>
        <td><span class="vignette2">19 Janvier 2013</span></td>
      </tr>
      <tr>
        <td><span class="vignette2"><a href="http://www.ccrt.be">Cliquez ici pour le site Internet</a></span></td>
      </tr>
      <tr>
        <td height="20" class="vignette2"><a href="mailto:ccrt@skynet.be">Contact par MAIL</a></td>
      </tr>
      <tr>
        <td height="50" class="vignette3">SOLD OUT</td>
      </tr>
    </table>
    </body>
    </html>

    Mais Comme résultat dans le tableau j'ai ça :

    Nom : rate.jpg
Affichages : 97
Taille : 341,3 Ko

    Et en fait ce que je voudrais obtenir c'est ça (montage photoshop) :

    Nom : bon.jpg
Affichages : 75
Taille : 390,4 Ko

    Sauf évidemment que ce ne serait pas toutes les mêmes vignettes mais des différentes.

    Le souci c'est qu'a la base la vignette est trop grande pour la zone il faudrait donc qu'elle soit réduite.

    Voilou...

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Oui, bien sûr, ce n'est pas le cadre qu'il faut redimensionner mais son contenu.

    Réponse rapide: Ce n'est malheureusement pas possible de redimensionner du HTML.

    Il est cependant possible, en HTML, de redimensionner des images. Il faudrait donc convertir tes pages HTML en image. Soit en faisant un simple screenshot, soit en regardant les différentes solutions en ligne. Puis stocker les images et les afficher à la place du code HTML. Si ce que tu veux c'est simplement afficher des vignettes, pas forcément dynamiques, le plus simple c'est vraiment de print screen, sauvegarder et afficher avec une largeur maximum, par exemple <img src="lien" width="largeur"> (La hauteur sera recalculée) même si le "mieux" serait de redimensionner les images à la main (paint), puisqu'elles seront du coup moins lourdes à charger.

    En cherchant bien:
    Je présume qu'il est aussi possible de le faire en JavaScript, mais c'est bien plus compliqué. Et il y a une extension pour PHP qui permettrait de convertir du HTML en image, mais à nouveau, ce n'est pas à la portée de tout le monde.

  10. #10
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Oui mais mon souci c'est que on doit pouvoir cliquer sur le site internet et l'adresse mail dans la vignette. Du coup pas moyen avec une image. D'ailleurs avant j'avais des images et c'est pour cette raison que je voulais changer de système...
    Mais je me disais :
    Si au lieu de faire un tableau je faisais une vignette ou tout est "enfermé" dans des div et ou tout est en %tage.
    Du coup quand cette vignette serait elle même enfermée dans une div (celle de ma page) plus petite tout se redimensionnerait non ?

  11. #11
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Si non tu aurais une autre idée pour faire un genre de truc comme je veux ?
    On pourrait imaginer de mettre les données "brutes" dans un fichier texte et que du PHP les récupère et les mette en forme par exemple non ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Oublie mon précédent message (J'ai pensé que la "vignette" désignait l'image qu'il doit y avoir à gauche, soit un aperçu d'un site web, et pas de contenu du cadre soit une image en <img> et sa description. J'espère que ce petit HS ne t'aura pas perturbé)

    Oui, il est largement possible de faire cela.

    En fait, tu veux stocker de façon "simple":
    • Un titre
    • Un lien
    • Un commentaire


    et qu'ils soient affichés sur la droite de l'image (stockée avec). Si cette fois j'ai pas mal compris.

    Je suppose que ton hébergement ne te permet pas de disposer d'une base de donnée, et que tu n'as pas de connaissance en SQL, mais ce serait la façon bateau de procéder.

    On peut faire pareil avec de simple fichiers textes cependant puisque l'agencement des données n'est pas compliqué.

    Tu peux préparer des fichiers .txt avec un contenu de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    http://www.exemple.com/exemple-d-image.jpg
    Rossignol
    19 janvier 2013
    http://www.exemple.com/
    contact@exemple.com
    SOLD OUT
    dans un dossier $dir
    Puis pour chaque $fichier dans $dir, tu peux lire son contenu avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = file($dir . "/" . $fichier);
    Qui sera un tableau qui aura ces valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    array => (
        [0]    ->    "http://www.exemple.com/exemple-d-image.jpg",
        [1]    ->    "Rossignol",
        [2]    ->    "19 janvier 2013",
        [3]    ->    "http://www.exemple.com/",
        [4]    ->    "contact@exemple.com",
        [5]    ->    "SOLD OUT",
    Tu n'as qu'a faire un code de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Soit $dir le dossier dans lequel il y a tes fichiers textes
    while($fichier = readdir($dir)){
        $contenu = file($dossier.'/'.$file);
        echo '<div class="vignette">';
        echo '<img src="' . $contenu[0] . '" />';
        echo '<h2>' . $contenu[1] . '</h2>';
        echo $contenu[2];
        echo '<a href="' . $contenu[3] . '">Cliquez ici pour le site internet</a>';
        echo '<a href="mailto:' . $contenu[4] . '>Contacter par MAIL</a>';
        echo '<em>' . $contenu[5] . '</em>';
        echo '</div>';
    }
    En faisant attention bien sûr à ne pas essayer d'ouvrir des dossiers (Le if qui n'est pas présent ici), et à remanier le HTML pour qu'il soit au goût désiré.

  13. #13
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    C'est intéressant ce que tu explique là.
    Ca ne peut pas marcher tel quel car il y a aussi une image à inclure dans les infos et une image dans un fichier texte ça ne va pas allez.
    Par contre en relisant bien tout ce que tu explique je me demande si je ne pourrais pas utiliser autre chose comme par exemple des pdf.
    Si je ne me trompe dans un pdf on peut mettre texte, image et liens.
    Maintenant la question c'est comment afficher un pdf...


    Ou alors peut être que dans le fichier texte on peut mettre le chemin vers l'image et que la page PHP utilise le lien plutôt que l'afficher ?

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Non, le PDF n'est pas une solution.
    Ou alors peut être que dans le fichier texte on peut mettre le chemin vers l'image et que la page PHP utilise le lien plutôt que l'afficher ?
    Tout à fait. Ce que tu peux faire, c'est mettre tes images dans un dossier $dir/image, et mettre le lien dans le fichier texte.

  15. #15
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    entre temps qu'on discute j'ai un peu poursuivit mes expérimentations avec l'idée vignette HTML.
    Il y a tout de même moyen que ça marche je crois. J'ai virer le tableau et tout ce bazard et j'ai exploité les mêmes règles CSS que ma page de base et ça commence à ressembler à quelque chose.

    Par contre les vignettes s'affichent l'une à côté de l'autre au lieu de l'une en dessous de l'autre, j'ai essayé plusieurs modifs mais sans succès....

  16. #16
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <table>
    <tr><td>Vignette1</td></tr>
    <tr><td>Vignette2</td></tr>
    <tr><td>Vignette3</td></tr>
    </table>

  17. #17
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Heu alors là pour le coup je n'ai pas compris.
    C'est echo $file; qui affiche la vignette, on est bien d'accord ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($nom as $file)  // on fait la boucle qui va lire le tableau 
    	{echo"<td>";
    	echo $file;	// on affiche le contenu des fichiers html
    	echo "</br>";
    	echo"</td>";
       	}
    Du coup c'est à la fin de ces echo qu'il faudrait allez à la ligne non ?

    Je ne comprends pas le code avec vignettes1,2,3,4...

    Par contre ça va vraiment bien maintenant avec les fichiers HTML, je les ai pris comme si c'était des fichiers textes. Ce que je veux dire c'est que j'ai mis dedans le minimum :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>date jérome de Warzée</title>
    <style type="text/css">
    </style>
    </head>
     
    <body>
     
    	<h1>Rossignol</h1>
                 <p>19 Janvier 2013 </br>
    	<a href="http://www.ccrt.be">Site Internet</a></br>
    	<a href="mailto:ccrt@skynet.be">Contact MAIL</a></br></p>
                 <h2>SOLD OUT</h2>
    	<img width="25" height="80" alt="" class="art-lightbox" src="images/livrze.jpg"
    </body>
    </html>
    Et c'est avec le CSS que je met ça +/- en forme.
    Pour le texte c'est simple je gère avec les balises mais pour l'image je ne sais plus trop, il me semble qu'il y a un truc du genre image-box-size ou un truc comme ça je chercherai demain.

    Encore merci de ton aide c'est super car non seulement j'avance dans le site mais en plus je progresse sur mes connaissance car grâce à tes explications je comprends ce que je fais :-)

  18. #18
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Le code que je t'ai mis c'est le code de base d'un tableau, qui donne ça

    <table> <-- Ouverture de tableau
    <tr> <-- Ouverture de ligne (Talbe Row)
    <td> <-- Ouverture de case (Table Data)
    </td>
    </tr>
    </table>

    ------

    Je pense que tu peux laisser tomber tout ce qui est <header> et à l'intérieur des </header>, les balises <html></html> et <body></body> dans tes fichiers html secondaires; une fois inclus dans le principal c'est ces informations qui comptent, tu ne devrais pas les rajouter. Sinon, en incluant ces sous-fichiers, le fichier principal va se retrouver avec 17 titres, plusieurs charset, plusieurs contenus, etc...

    Alors que le tout ne devrait être qu'un corps avec un titre, composé de plusieurs sous-partie, et pas un amalgame de pages HTML

    Il est bien de mettre les balises <html><header><body>, etc... Mais là ce ne sont pas des fichiers HTML que tu fais, mais des sous-partie d'un fichier. Ils ne sont pas indépendants et devraient compter sur le fichier principal pour ces infos.

    -----

    Inclure les balises <H1>, etc... dans tes fichiers HTML, c'est bien, mais dans le cas où tu voudrais changer quelque chose de commun à tous les fichier (Changer le <h1> en <h3>, changer la taille des images), il faudra repasser en revue tous tes fichiers. Mettre simplement le contenu texte pur de chacun des fichiers comme expliqué plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    http://www.exemple.com/exemple-d-image.jpg
    Rossignol
    19 janvier 2013
    http://www.exemple.com/
    contact@exemple.com
    SOLD OUT
    Et gérer le HTML dans le fichier principal avec php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Soit $dir le dossier dans lequel il y a tes fichiers textes
    while($fichier = readdir($dir)){
        $contenu = file($dossier.'/'.$file);
        echo '<div class="vignette">';
        echo '<img src="' . $contenu[0] . '" />';
        echo '<h2>' . $contenu[1] . '</h2>';
        echo $contenu[2];
        echo '<a href="' . $contenu[3] . '">Cliquez ici pour le site internet</a>';
        echo '<a href="mailto:' . $contenu[4] . '>Contacter par MAIL</a>';
        echo '<em>' . $contenu[5] . '</em>';
        echo '</div>';
    }
    permet de n'avoir qu'a bidouiller un fichier pour tout changer.

    ---------

    En faisant tout ça (gérant via texte pur et pas HTML), tu pourras ensuite régler tous les détails de mise en page sur le code principal, et donc créer un grand tableau en php qui te donnerait un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    echo '<table border=1>';
    while ($fichier = readdir($dir)) {
    	$contenu = file($dossier . '/' . $file);
    	echo '<tr>';
    		echo '<td rowspan="5"><img src="' . $contenu[0] . '" /></td>';
    		echo '<td><h2>' . $contenu[1] . '</h2>';
    	echo '</tr>';
    	echo '<tr><td>' . $contenu[2] . '</td></tr>';
    	echo '<tr><td><a href="' . $contenu[3] . '">Site internet</a></td></tr>';
    	echo '<tr><td><a href="mailto:' . $contenu[4] . '>Contacter par MAIL</a></td></tr>';
    	echo '<tr><td>' . $contenu[5] . '</td></tr>';
    }
    echo '</table>';

  19. #19
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Je ne saurai pas regarder ça avant Dimanche soir mais ça a l'air génial.
    Déjà un grand merci et un très bon week-end à toi.

    A peluches...

  20. #20
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Tu peux avantageusement gagner en lisbilité en utilisant la notation HEREDOC comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        echo
    <<<HTML
    <tr>
        <td rowspan="5"><img src="{$contenu[0]}" /></td>
        <td><h2>{$contenu[1]}</h2>
    </tr>
    <tr><td>{$contenu[2]}</td></tr>
    <tr><td><a href="{$contenu[3]}">Site internet</a></td></tr>
    <tr><td><a href="mailto:{$contenu[4]}">Contacter par MAIL</a></td></tr>
    <tr><td>{$contenu[5]}</td></tr>
    HTML;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Tableau avec des cellules imbriquées
    Par MonOncle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/11/2006, 22h56
  2. Tableau avec des checkboxes
    Par ioiolodie dans le forum MFC
    Réponses: 4
    Dernier message: 19/10/2006, 22h00
  3. Réponses: 7
    Dernier message: 22/09/2006, 15h52
  4. Réponses: 5
    Dernier message: 26/08/2006, 12h14
  5. [CSS] Remplacer un tableau avec des colonnes
    Par mullger dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 22/08/2006, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo