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

Bibliothèques et frameworks PHP Discussion :

[Smarty] Affichage multicolonne avec PHP et Smarty [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut [Smarty] Affichage multicolonne avec PHP et Smarty
    Bonsoir à tous,

    Je développe actuellement un site sous php en utilisant un script qui tourne via le Moteur de Template Smarty.

    Je ne connais pas encore ce moteur et j ai besoin d afficher une liste en 3 colonnes au lieu d une seule.

    Aujourd hui tout tourne bien mais le soucis est cet affichage sur une seule colonne.

    Comment dois je modifier le code que voici pour y arriver?

    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
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="box{$data->k}">
      <tr>
        <td width="{$thumbwidth}" valign="top" rowspan="2">{$data->thumbnail}</td>
        <td width="*" valign="top">
          <div class="avatar">{$data->avatar}</div>
          <div style="float:right;text-align:right;"> 
            {$data->groupmembership}
            {$data->reportgroup}
          </div>
          <div class="listtitle">{$data->grouptitle} {$data->editgroup} {$data->deletegroup}</div>
          <div class="listdesc">{$data->groupdescription}</div>
          <div class="listgroupdetails">{$smarty.const._HWDVIDS_INFO_TOTMEM}: {$data->totalmembers} |
            {$smarty.const._HWDVIDS_INFO_TOTVID}: {$data->totalvideos} |
            {$smarty.const._HWDVIDS_INFO_CREATEDBY} {$data->administrator}
          </div>
        </td>
      </tr>
    </table>

    Je vous remercie de votre aide par avance.

    Cordialement,

    Sebastien

  2. #2
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Citation Envoyé par sebix Voir le message
    Comment dois je modifier le code que voici pour y arriver?

    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
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="box{$data->k}">
      <tr>
        <td width="{$thumbwidth}" valign="top" rowspan="2">{$data->thumbnail}</td>
        <td width="*" valign="top">
          <div class="avatar">{$data->avatar}</div>
          <div style="float:right;text-align:right;"> 
            {$data->groupmembership}
            {$data->reportgroup}
          </div>
          <div class="listtitle">{$data->grouptitle} {$data->editgroup} {$data->deletegroup}</div>
          <div class="listdesc">{$data->groupdescription}</div>
          <div class="listgroupdetails">{$smarty.const._HWDVIDS_INFO_TOTMEM}: {$data->totalmembers} |
            {$smarty.const._HWDVIDS_INFO_TOTVID}: {$data->totalvideos} |
            {$smarty.const._HWDVIDS_INFO_CREATEDBY} {$data->administrator}
          </div>
        </td>
      </tr>
    </table>

    Bonjour,

    Je ne vois pas trop le rapport avec Smarty dans ton exemple, si tu omets les variables smarty (entre accolades) tu as juste à ajouter un <td>...</td> pour ajouter une colonne... si j'ai compris ce que tu veux faire un truc du style :

    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
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="box{$data->k}">
      <tr>
        <td width="{$thumbwidth}" valign="top" rowspan="2">{$data->thumbnail}</td>
        <td width="*" valign="top">
          <div class="avatar">{$data->avatar}</div>
           <div style="float:right;text-align:right;"> 
             {$data->groupmembership}
             {$data->reportgroup}
           </div>
        </td>
        <td width="*" valign="top">
          <div class="listtitle">{$data->grouptitle} {$data->editgroup} {$data->deletegroup}</div>
          <div class="listdesc">{$data->groupdescription}</div>
          <div class="listgroupdetails">{$smarty.const._HWDVIDS_INFO_TOTMEM}: {$data->totalmembers} |
            {$smarty.const._HWDVIDS_INFO_TOTVID}: {$data->totalvideos} |
            {$smarty.const._HWDVIDS_INFO_CREATEDBY} {$data->administrator}
          </div>
        </td>
      </tr>
    </table>
    ++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Pas tout à fait
    Je me suis surement mal exprimé...

    Le script fonctionne bien, l affichage est correct. Cependant, le probleme qui se pose est simplement de ne pas afficher sur une seule colonne mes données ( en l occurrence des thumbs de videos avec titres, notes, etc...) mais sur trois colonnes.

    Actuellement je n arrive qu a afficher sur une seule colonne la liste. Imaginons par exemple que cela m affiche sur une colonne 12 vidéos.


    Ce qu il me faut arriver a faire en sorte d avoir trois colonnes qui affichent 4 videos chacune ( c est un exemple...).

    Je vous remercie de prendre le temps de me lire et de me conseiller.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Voici une petite explication en image :


  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Solution en partie trouvée
    Bon j ai quasiment réussi en modifiant deux fichiers.

    Le premier est celui qui appelle l affichage, nous le nommerons index.tpl

    Le second est celui qui génère le format d affichage,nous le nommerons video_list.tpl

    J ai quasiment réussi a avoir mon affichage niquel mais il reste encore un soucis: les miniatures des vidéos sont répétées une dizaine de fois et toutes les deux lignes j en ai une qui apparait seule...

    Voici mes fichiers:

    index.tpl


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    {include file="header.tpl"}
     
    {if $print_nowlist}
      {include file="video_beingwatched.tpl"}
    {/if}
     
    {if $print_featured}
      {include file="featured_videos_01.tpl"}
    {/if}
     
    {if $print_ads}<div id="hwdadverts">{$advert3}</div>{/if}
     
    <div class="tabber" id="tab1">
     
      <div class="tabbertab">
        <h2><a name="tab1">DERNIERES VIDEOS</a></h2>
        <div class="recent">
          {if $print_videolist}
            {foreach name=outer item=data from=$list}
     
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if $smarty.foreach.outer.index % 5 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
            {/foreach}
          {else}
            <div class="padding">{$smarty.const._HWDVIDS_INFO_NRV}</div>
          {/if}
          {$pageNavigation}
        </div>
      </div>
     
      {if $print_mostviewed}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS LES PLUS REGARDEES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostviewedlist}
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if $smarty.foreach.outer.index % 5 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
      {if $print_mostfavoured}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS FAVORITES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostfavouredlist}
     
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if $smarty.foreach.outer.index % 5 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
      {if $print_mostpopular}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS LES PLUS POPULAIRES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostpopularlist}
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if $smarty.foreach.outer.index % 5 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
    </div>
     
    <script type="text/javascript">tabberAutomatic();</script>
     
    {include file="footer.tpl"}

    et voici mon fichier
    video_list.tpl


    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
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="box{$data->k}">
      <tr>
        <td width="{$thumbwidth}" valign="top">{$data->thumbnail}</td>
        <td width="" valign="top">
          <div class="avatar">{$data->avatar}</div>
          <div class="listtitle">{$data->title} {$data->editvideo} {$data->deletevideo}</div>
          <div class="listcat">{$smarty.const._HWDVIDS_INFO_CATEGORY}: {$data->category}</div>
          <div class="listdesc">{$data->description}</div>
        </td>
        <td width="150" valign="top">
          <div class="listrating">{$data->rating}</div>
          <div class="listviews">{$smarty.const._HWDVIDS_INFO_VIEWS}: {$data->views}</div>
          <div class="listduration">{$smarty.const._HWDVIDS_INFO_DURATION}: {$data->duration}</div>
          <div class="listuploader">{$smarty.const._HWDVIDS_INFO_FROM}: {$data->uploader}</div>
        </td>
      </tr>
    </table>

    Pouvez vous me dire ou est mon erreur?

    Cordialement,

    Sebastien

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Complement de solution
    Bon , je suis arrivé a mettre en place ce que je souhaitais!

    Il me reste encore une chose a apprehender. L affichage en tableau est ok ( j ai 5 vignettes de videos allignées sur la meme ligne), mais par contre cette ligne est répétee 5 fois alors que normallement a chaque nouvelle ligne devrait se trouver de nouvelles vignettes....

    Je ne saisis pas bien ce que j ai raté.

    Si quelqun, dans mon monolgue, veux bien me preter deux secondes, ce serait sympa.


    Voici mon fichier améliorié donc :



    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    {include file="header.tpl"}
     
    {if $print_nowlist}
      {include file="video_beingwatched.tpl"}
    {/if}
     
    {if $print_featured}
      {include file="featured_videos_01.tpl"}
    {/if}
     
    {if $print_ads}<div id="hwdadverts">{$advert3}</div>{/if}
     
    <div class="tabber" id="tab1">
     
      <div class="tabbertab">
        <h2><a name="tab1">DERNIERES VIDEOS</a></h2>
        <div class="recent">
          {if $print_videolist}
            {foreach name=outer item=data from=$list}
     
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if ($smarty.foreach.outer.index % 5)+1 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
            {/foreach}
          {else}
            <div class="padding">{$smarty.const._HWDVIDS_INFO_NRV}</div>
          {/if}
          {$pageNavigation}
        </div>
      </div>
     
      {if $print_mostviewed}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS LES PLUS REGARDEES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostviewedlist}
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if ($smarty.foreach.outer.index % 5)+1 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
      {if $print_mostfavoured}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS FAVORITES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostfavouredlist}
     
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if ($smarty.foreach.outer.index % 5)+1 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
      {if $print_mostpopular}
      <div class="tabbertab">
        <h2><a name="tab1">VIDEOS LES PLUS POPULAIRES</a></h2>
        <div class="recent">
          {foreach name=outer item=data from=$mostpopularlist}
     
     
     
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    {foreach name=outer item=data from=$list}
    <td>
    {include file="video_list1.tpl"}
    </td>
    {if ($smarty.foreach.outer.index % 5)+1 == 0}</tr><tr>{/if}
    {/foreach}
    </tr>
    </table>
     
     
     
          {/foreach}
        </div>
      </div>
      {/if}
     
    </div>
     
    <script type="text/javascript">tabberAutomatic();</script>
     
    {include file="footer.tpl"}

  7. #7
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 51
    Points : 204
    Points
    204
    Par défaut
    J'ai essayé d'analyser ton code.
    ET peut être que ca vien d'un double foreach, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {foreach name=outer item=data from=$list}
    tu as ce foreach dans ce même foreach.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Probleme Resolu
    Citation Envoyé par magicbart Voir le message
    J'ai essayé d'analyser ton code.
    ET peut être que ca vien d'un double foreach, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {foreach name=outer item=data from=$list}
    tu as ce foreach dans ce même foreach.
    Oui, effectivement il s'agissait bien de cela. J avais deja resolu le probleme et partagé le fichier.

    Pour ceux que cela interresse : http://hwdmediashare.co.uk/images/fb...EMPLATE_v1.zip

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage image avec php GD
    Par Drone dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2010, 20h33
  2. [css][php]affichage incoherent avec php
    Par lilia_dream dans le forum Mise en page CSS
    Réponses: 20
    Dernier message: 07/04/2009, 18h55
  3. [css][php]affichage incoherent avec php
    Par lilia_dream dans le forum Balisage (X)HTML et validation W3C
    Réponses: 36
    Dernier message: 05/04/2009, 21h45
  4. affichage impossible avec php
    Par @min@ dans le forum Langage
    Réponses: 6
    Dernier message: 10/04/2007, 06h54
  5. Réponses: 4
    Dernier message: 05/12/2006, 20h13

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