Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
tu m'étonne ! 
Hors ligne
Bonjour !
Bon, comme je le soupçonnais hier, c'est bien l'ordre de ton list qui n'était pas bon.
On reprend donc une dernière fois (j'espère !) ton fichier 2.
Ligne 718 tu dois avoir :
$result = $db->query('SELECT t.last_post, t.last_post_id, t.last_poster, t.subject, t.id, t.num_replies, p.message, f.last_img FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'posts AS p ON p.id=t.last_post_id INNER JOIN '.$db->prefix.'forums AS f ON f.id='.$forum_id.' WHERE t.forum_id='.$forum_id.' AND t.moved_to IS NULL ORDER BY t.last_post DESC LIMIT 1') or error('Unable to fetch last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error());Et ligne 721 :
list($last_post, $last_post_id, $last_poster, $last_topic, $last_topic_id, $num_replies, $last_msg, $last_img) = $db->fetch_row($result);
Hors ligne
Parfait mec ! Tu as réussi !
Je n'ai plus de messages d'erreur.
Tu coup je vais pouvoir passer à la bannière avec les dernières images.
bon j'ai remarqué le même bug qu'ici :
http://fluxbb.fr/forums/viewtopic.php?p … 51#p106351
Dernière modification par a-snowboard (24-03-2012 11:04:43)
Hors ligne
Tu coup je vais pouvoir passer à la bannière avec les dernières images.
J'ai vu que dans ce que je t'avais proposé, tu avais un problème de chevauchement texte/images (voir message http://fluxbb.fr/forums/viewtopic.php?p … 51#p106351).
Je suis une bille en html, mais j'ai un peu amélioré (testé sous plusieurs styles). Essaie ceci à la place :
// Display last posted images
$nb_img = 7;
$result = $db->query('SELECT p.id, p.message FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id WHERE t.moved_to IS NULL AND f.last_img_dsp=1 ORDER BY p.posted DESC') or error('Unable to fetch message from posts', __FILE__, __LINE__, $db->error());
?>
<div id="lpi" class="blocktable">
<div class="box">
<div class="inbox">
<table cellspacing="0">
<tr><th colspan="<?php echo $nb_img ?>"><?php echo 'Dernières images postées' ?></th></tr>
<tr>
<?php
$i = 0;
while ($tracked_post = $db->fetch_assoc($result))
{
$list_img = detect_image($tracked_post['message']);
if ($list_img[0] > 0)
{
for ($j = $list_img[0] ; $j > 0 ; $j--)
{
$i += 1;
?>
<th style="text-align:center"><a href="viewtopic.php?pid=<?php echo $tracked_post['id'].'#p'.$tracked_post['id'] ?>"><img src="<?php echo $list_img[$j] ?>" height="100" alt="" /></a></th>
<?php
if ($i == $nb_img)
break 2;
}
}
}
if ($i < $nb_img)
{
for ($k = $i ; $k < $nb_img ; $k++)
{
?>
<th></th>
<?php
}
}
?>
</tr>
</table>
</div>
</div>
</div>
<?phpDernière modification par Wan (24-03-2012 11:08:18)
Hors ligne
Et bien la bille s'en sort très bien a ce que vois !
ça marche du tonnerre ! 
Après le fond des images est dans le même style que le titre, mais pour moi ça m'arrange, ça donne l'impression que ça a plus d'importance.
A oui, ultime demande (et après je ne fait plus mon casse pied. ! )
J'ai fluxrewitre, quand je clique sur une image de la banière j'ai un lien type :
http://127.0.0.1/www/viewtopic.php?pid=45#p45
au lieu de :
http://127.0.0.1/www/topic-7-stpppp-page-.html#p45
j'ai essayé de changer le lien comme je l'avais fait pour les images devant des forum.
Mais comme il y a une variable de plus dans le lien : (le numéro du post) je n'ai pas trouvé comment faire. 
Sinon a par ce petit détail tout marche du tonnerre !
Merci encore wan pour le temps que tu as pris pour moi ! 
Hors ligne
J'ai fluxrewitre, quand je clique sur une image de la banière j'ai un lien type :
http://127.0.0.1/www/viewtopic.php?pid=45#p45
au lieu de :
http://127.0.0.1/www/topic-7-stpppp-page-.html#p45j'ai essayé de changer le lien comme je l'avais fait pour les images devant des forum.
Mais comme il y a une variable de plus dans le lien : (le numéro du post) je n'ai pas trouvé comment faire.
Like this :
// Display last posted images
$nb_img = 7;
$result = $db->query('SELECT p.id, p.message, p.topic_id, t.subject FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id WHERE t.moved_to IS NULL AND f.last_img_dsp=1 ORDER BY p.posted DESC') or error('Unable to fetch message from posts', __FILE__, __LINE__, $db->error());
?>
<div id="lpi" class="blocktable">
<div class="box">
<div class="inbox">
<table cellspacing="0">
<tr><th colspan="<?php echo $nb_img ?>"><?php echo 'Dernières images postées' ?></th></tr>
<tr>
<?php
$i = 0;
while ($tracked_post = $db->fetch_assoc($result))
{
$list_img = detect_image($tracked_post['message']);
if ($list_img[0] > 0)
{
for ($j = $list_img[0] ; $j > 0 ; $j--)
{
$i += 1;
?>
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" height="100" alt="" /></a></th>
<?php
if ($i == $nb_img)
break 2;
}
}
}
if ($i < $nb_img)
{
for ($k = $i ; $k < $nb_img ; $k++)
{
?>
<th></th>
<?php
}
}
?>
</tr>
</table>
</div>
</div>
</div>
<?phpHors ligne
pas le temps aujourd'hui, ca ne sera pas fait avant demain. 
desole pour ta patience !
Hors ligne
Parfait. ça marche impeccablement. 
Reste à faire toutes les manipulations sur le serveur en ligne. ça promet !
Merci encore wan !
Hors ligne
Bonjour,
Bon, déjà, puisque dans l'étape 7 du readme.txt tu dois avoir une erreur quelque part, et puisque j'ai refait le readme.txt pour l'adapter avec FluxRewrite, dans ton functions.php reprends tes lignes :$db->query('UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', last_post='.$last_post.', last_post_id='.$last_post_id.', num_replies='.$num_replies.', last_topic_id='.$last_topic_id.', last_poster=\''.$db->escape($last_poster).'\', last_topic=\''.$db->escape($last_topic).'\', last_img='.(is_null($last_img) ? 'NULL' : '\''.$db->escape($last_img).'\'').' WHERE id='.$forum_id) or error('Unable to update last_post/last_post_id/last_poster/last_img', __FILE__, __LINE__, $db->error()); } else // There are no topics $db->query('UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', last_post=NULL, last_post_id=NULL, last_poster=NULL, last_topic=NULL, last_topic_id=NULL, num_replies=NULL WHERE id='.$forum_id) or error('Unable to update last_post/last_post_id/last_poster/last_topic', __FILE__, __LINE__, $db->error());et remplace par :
$db->query('UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', num_replies='.$num_replies.', last_post='.$last_post.', last_post_id='.$last_post_id.', last_poster=\''.$db->escape($last_poster).'\', last_img='.(is_null($last_img) ? 'NULL' : '\''.$db->escape($last_img).'\''), last_topic=\''.$db->escape($last_topic).'\', last_topic_id='.$last_topic_id.' WHERE id='.$forum_id) or error('Unable to update last_post/last_post_id/last_poster', __FILE__, __LINE__, $db->error()); } else // There are no topics $db->query('UPDATE '.$db->prefix.'forums SET num_topics='.$num_topics.', num_posts='.$num_posts.', last_post=NULL, last_post_id=NULL, last_poster=NULL, last_img=NULL, last_topic=NULL, last_topic_id=NULL, num_replies=NULL WHERE id='.$forum_id) or error('Unable to update last_post/last_post_id/last_poster/last_img/last_topic', __FILE__, __LINE__, $db->error());Dis-moi déjà avec ça si tu n'as plus d'erreur "Unable to update".
ce code ne marche pas. J'ai laissé le premier code et appliqué les modifications qui sont décrites par la suite.
Du coup la mod est active sur mon site en ligne. 
Par contre j'ai désactivé l'affichage devant chaque forum. Ce n'est pas vraiment compatible car quand il n'y a pas d'image ou qu'on désactive l'affichage d'un forum on a un carré blanc.
Encore merci tout le monde ! 
Dernière modification par a-snowboard (25-03-2012 16:25:03)
Hors ligne
Je me pose une question (vu que le cas c'est présenté)
En fait les images font 100px de haut. Par contre la longueur n'est pas spécifié.
Ce qui fait que quand j’insère un panorama, la hauteur est bien de 100px, mais la largeur dépasse les 150.
est-il possible de rajouter une condition genre :
si longueur dépasse 135px, alors dimensionner l'image à longueur 135px ?
j'imagine que ça doit se faire sur l'index à ce niveau là :
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" height="100" alt="" /></a></th>mais là ça dépasse un peut mes compétences.
Hors ligne
J'ai eu à faire au même problème que toi il y a peu. J'ai d'abord ajouté des "max-width: 135px" dans mon CSS, mais l'image était parfois trop petite. J'ai mis "width="35"" dans le code HTML directement, elle était aussi déformée.
J'ai finalement trouvé le script TimThumb qui te permet de recadrer une image en la rognant afin qu'elle garde son aspect, et c'est parfait
http://www.binarymoon.co.uk/2010/08/timthumb/
Hors ligne
Merci pour ta solution.
Mais j'aimerais éviter le rognage. vu que c'est un forum de photo.
Je pense qu'en fait il faudrait rajouter une boucle if...else
Par exemple :
if (height > width)
{
height=100px
}
else if (height==width)
{
height=100px
}
else
{
width=135px
}En clair :
je vérifie si hauteur > largeur
et j'applique hauteur 100px
si ce n'est pas le cas je vérifier si hauteur = largeur
et j'applique une hauteur de 100px
et si ce n'est pas ces deux conditions (le dernier cas qui peut se présenter)
j'applique une largeur de 135px
Mais bon a partir de là il y a deux choses ou je bloque :
Est ce que le code va aller chercher tout seul la hauteur et la largeur de l'image ?
comment l'incorporer les conditions dans les lignes ?
Dernière modification par a-snowboard (01-04-2012 21:17:45)
Hors ligne
C'est marrant, je viens de gérer le même genre de truc dans la mod que je suis en train de faire...
En clair :
je vérifie si hauteur > largeur
et j'applique hauteur 100pxsi ce n'est pas le cas je vérifier si hauteur = largeur
et j'applique une hauteur de 100pxet si ce n'est pas ces deux conditions (le dernier cas qui peut se présenter)
j'applique une largeur de 135pxMais bon a partir de là il y a deux choses ou je bloque :
Est ce que le code va aller chercher tout seul la hauteur et la largeur de l'image ?
comment l'incorporer les conditions dans les lignes ?
Un truc de ce genre peut-être ?
$ratio = max($width/limit_width, $height/$limit_height);Reste plus longtemps avant que vous en sachiez un peu plus... 
Hors ligne
Dans ce cas, j'utilise cette fonction:
function fctaffichimage($img_Src, $W_max, $H_max) {
if (file_exists($img_Src)) {
// ----------------------------------------------------
// Lit les dimensions de l'image source
$img_size = GetImageSize($img_Src);
$W_Src = $img_size[0]; // largeur source
$H_Src = $img_size[1]; // hauteur source
// ----------------------------------------------------
if(!$W_max) { $W_max = 0; }
if(!$H_max) { $H_max = 0; }
// ----------------------------------------------------
// Teste les dimensions tenant dans la zone
$W_test = round($W_Src * ($H_max / $H_Src));
$H_test = round($H_Src * ($W_max / $W_Src));
// ----------------------------------------------------
// si l image est plus petite que la zone
if($W_Src<$W_max && $H_Src<$H_max) {
$W = $W_Src;
$H = $H_Src;
// sinon si $W_max et $H_max non definis
} elseif($W_max==0 && $H_max==0) {
$W = $W_Src;
$H = $H_Src;
// sinon si $W_max libre
} elseif($W_max==0) {
$W = $W_test;
$H = $H_max;
// sinon si $H_max libre
} elseif($H_max==0) {
$W = $W_max;
$H = $H_test;
// sinon les dimensions qui tiennent dans la zone
} elseif($H_test > $H_max) {
$W = $W_test;
$H = $H_max;
} else {
$W = $W_max;
$H = $H_test;
}
// ----------------------------------------------------
} else { // si le fichier image n existe pas
$W = 0;
$H = 0;
}
// ----------------------------------------------------
// AFFICHE les dimensions optimales
return ' src="'.$img_Src.'" width="'.$W.'" height="'.$H.'"';
}Hors ligne
c'est vous les spécialistes du php ! pas moi ! 
J'attends la suite avec impatience ! 
Hors ligne
c'est vous les spécialistes du php ! pas moi !
Il n'en tient qu'à toi... 
Hors ligne
Pas vu le post d'adaur ... désolé.
bon je vais essayer de voir comment m'en sortir de cette histoire. 
Hors ligne
bon en lisant le lien posté par adaur il faudrait qu'ici
<img src="<?php echo $list_img[$j] ?>" height="100" alt="" />j'incorpore la fonction de redimensionnement :
<?php fctaffichimage('repimg/monimage.jpg', 135, 100) ?>Par contre comment incorporer l'adresse de l'image, adresse qui est variable ?
car forcément quand je fait un truc de style :
<img src="<?php echo $list_img[$j] ?>" alt="" <?php fctaffichimage('<?php echo $list_img[$j] ?>', 120, 100) ?> />J'ai droit a une erreur. Ce qui ne m'étonne guerre vu que j'avance en tâtonnant.
Mais si on peut m’orienter.
et après en ce qui concerne la fonction elle même, je ne sais pas trop ou je dois la mettre.
?>
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" alt="" <?php fctaffichimage('<?php echo $list_img[$j] ?>', 120, 100) ?> /></a></th>
<?phpAvant, après le ?>, le <?php ?
dois-je déclarer la fonction ? (vu qu'en c il fallait le faire)
Dernière modification par a-snowboard (02-04-2012 21:14:26)
Hors ligne
Essaye en remplaçant
<img src="<?php echo $list_img[$j] ?>" height="100" alt="" />par
<img src="<?php echo fctaffichimage($list_img[$j], 135, 100) ?>" alt="" />Dernière modification par adaur (11-04-2012 20:53:18)
Hors ligne
j'ai droit a une feuille blanche avec cette phrase d'affiché :
Dernières images postées par les membres
quel que soit l'endroit ou je pose le détail de la fonction. 
Bon en fait j'ai placé la fonction dans /include/function.php
(et voila un nouveau truc d'appris today)
donc déjà je n'ai plus le message d'erreur.
Donc la page s'affiche normalement. J'ai bien la bannière, mais aucune image dedans. (autant en visiteur qu'en membre)
je continue de chercher
Donc si je pige la fonction, et sa logique,
if (file_exists($img_Src))il essaye de détecter l'image, si c'est le cas il applique la suite.
} else { // si le fichier image n existe pas
$W = 0;
$H = 0;
}ici il ne détecte pas donc il envoie directement une hauteur et largeur = 0
(en espérant avoir compris)
Du coup je peux en déduire qu'il y a un bug au niveau de l'indexphp. A savoir que dans l'index.php la fonction n'a aucune image a détecter.
Ai-je bien compris ? corrigez moi si nécessaire, que je puisse piger un peut ! 
Dernière modification par a-snowboard (02-04-2012 23:43:45)
Hors ligne
Bonjour a-snowboard.
Maintenant que j'ai publié la mod sur laquelle j'étais en train de bosser, je peux enfin te venir en aide. Comme dans cette mod j'ai travaillé sur le redimensionnement d'images, j'en ai extrait ma méthode pour l'appliquer à ton cas :
dans ton index.php trouve :
$list_img = detect_image($tracked_post['message']);
if ($list_img[0] > 0)
{
for ($j = $list_img[0] ; $j > 0 ; $j--)
{
$i += 1;
?>
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" height="100" alt="" /></a></th>
<?php
if ($i == $nb_img)
break 2;
}
}et remplace par :
$list_img = detect_image($tracked_post['message']);
if ($list_img[0] > 0)
{
for ($j = $list_img[0] ; $j > 0 ; $j--)
{
$size = @getimagesize($list_img[$j]);
$ratio = max($size[0]/135, $size[1]/100);
if ($ratio > 0)
{
$width = intval($size[0]/$ratio);
$height = intval($size[1]/$ratio);
$i += 1;
?>
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" width="<?php echo $width ?>" height="<?php echo $height ?>" alt="" /></a></th>
<?php
}
if ($i == $nb_img)
break 2;
}
}J'ai testé, ça fonctionne parfaitement. 
Hors ligne
Merci wan !
ça marche parfaitement et ça correspond exactement a mes attentes !
Merci ! 
Hors ligne
Merci wan !
ça marche parfaitement et ça correspond exactement a mes attentes !Merci !
You're welcome ! 
(NB sur ton site :
Donnez votre avis sur ces images ! (Cliquez dessus pour voir la discution discussion)
)
Hors ligne
Merci d'avoir relevé la faute. 
Hors ligne
Petit idée "esthétique" pour faire plus "photo" :
<th style="text-align:center"><a href="<?php echo fluxrewrite("topic-", $tracked_post['topic_id'], $tracked_post['subject'], 1, false, $tracked_post['id']) ?>"><img src="<?php echo $list_img[$j] ?>" style="border: 5px solid white" width="<?php echo $width ?>" height="<?php echo $height ?>" alt="" /></a></th>Hors ligne