[aide] afficher les dernier sujet du forum

Forum consacré aux codes conseillés ou mis à disposition sur phpBB SEO. Support, téléchargements, conseils ...

Modérateur: Modérateurs

Messagede charabia » Mer Oct 25, 2006 8:52 am

Ouf :) J'ai réussi à tout intégrer. Ca fonctionne avec ou sans session, mais pour ma culture perso, j'aimerais comprendre l'utilité des sessions pour cette affichage :)

Juste une tite modification pour atteindre le dernier post :
Code: Tout sélectionner
echo "<a href=\"".append_sid("$urlPath/profile.php?mode=viewprofile&u=".$last_topic_data[$i]['user_id'])."\" class=\"lien-bleu\" >" . $last_topic_data[$i]['username'] . "</a>, ".$date_last_post." <a href=\"" . append_sid("$urlPath/viewtopic.php?p=".$last_topic_data[$i]['topic_last_post_id'] . $start) . "#" . $last_topic_data[$i]['topic_last_post_id'] . "\"><img src=\"" . $urlPath . "/" . $images['icon_latest_reply'] . "\" alt=\"". $lang['View_latest_post'] . "\" border=\"0\"></a>


viewtopic.php?p=".$last_topic_data[$i]['topic_last_post_id'] à la place de viewtopic.php?t=".$last_topic_data[$i]['topic_id']

et j'ai dû rajouter "\" pour le chemin de l'image pour que ça colle bien ;)

Voili voilou !

Merci beaucoup !
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Publicité

Messagede dcz » Mer Oct 25, 2006 10:10 am

Merci pour les fautes de frappes ;), j'édite mon post.

Les sessions nous servent ici à sortir les sujet que chaque membre a le droit de voir, c'est plus vivant et cela permet aussi d'utiliser toutes les fonctions de phpBB (class $db et le reste).
De plus, tes membres qui auraient choisit l'option auto login seront désormais logués automatiquement depuis cette page :D

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede charabia » Mer Oct 25, 2006 11:27 am

Oki ! Je vois beaucoup mieux !

Mais apparemment ça ne marche pas...lol Je me suis logué en tant qu'admin et certains posts se trouvent dans des forums privés. J'ai beau allé sur les 10 posts en page d'accueil, je ne vois pas ce post, mais la même chose que non connecté.

Pourtant c'est le même code. Aurais-tu une idée ?

Peut-être à cause des numéro de forum exclu ?
Code: Tout sélectionner
$exclude_forum = array (
   1 => XX,
   2 => ...
);


mici :)
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Messagede dcz » Mer Oct 25, 2006 12:09 pm

C'est les dix derniers posts, essai d'en poster un dans un forum privé pour voir.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede charabia » Mer Oct 25, 2006 12:12 pm

Testé, j'ai regardé les dates et même les posts plus récents dans un forum privé ne se trouvent pas sur la liste c'est bizarre...
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Messagede dcz » Mer Oct 25, 2006 2:24 pm

Peut être en remplaçant :

Code: Tout sélectionner
if ($is_auth_ary[$last_topic_data[$i]['forum_id']]['auth_view'] && !in_array($last_topic_data[$i]['forum_id'], $exclude_forum))


Par :

Code: Tout sélectionner
if (($userdata['user_level'] == ADMIN) || $is_auth_ary[$last_topic_data[$i]['forum_id']]['auth_read'] && !in_array($last_topic_data[$i]['forum_id'], $exclude_forum))


Ça le fera mieux ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede charabia » Mer Oct 25, 2006 2:49 pm

hihi là l'invité ne voit plus rien lol
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Messagede dcz » Mer Oct 25, 2006 4:25 pm

Ah yep, auth_view au lieu de auth_read ;)
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede charabia » Mer Oct 25, 2006 4:59 pm

Ah bé voui j'aurais dû le voir lol

En fait si sur les 10 posts demandés à afficher en page d'accueil j'en ai par exemple 3 de forums privés, l'invité non connecté ne verra que 7 posts dans l'encadré. N'y a t-il pas un moyen pour que le nb reste toujours à 10 pour tous les cas (admin, modos, membres ou invités) ?

thanks !
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Messagede dcz » Jeu Oct 26, 2006 9:01 am

Si mais il faut alourdir un peut le tout, tu peux régler à 15 messages si tu veux ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede charabia » Jeu Oct 26, 2006 9:06 am

Ah oui oki on va éviter d'alourdir alors lol

Oki je met à 15 ça devrait aller.

Merci !
charabia
PR0
PR0
 
Messages: 66
Inscription: Mar Oct 24, 2006 7:34 am

Messagede yazerty » Lun Oct 30, 2006 3:16 pm

Bonjour,

Je profite de ce topic car je suis actuellement dans la même problématique, mais un peu plus "avancée", puisque je souhaite également afficher les 350 premiers mots des derniers sujets.

Je souhaite afficher les 10 derniers sujets postés sur mon forum de la manière suivante :

Titre du sujet, par Auteur, le Jour XX Mois 2006 :
350 premiers caractères du sujet posté (...)
Auteur-de-la-réponse a posté la dernière réponse (il y a xx réponses en tout)



Grâce au code suivant :

Code: Tout sélectionner
<?php

// Connexion à la bdd
"(trululu...)
   
// Sélection des 10 derniers posts
$sql = "SELECT TP.topic_id, TP.topic_title, TP.topic_replies, PT.post_text
FROM phpbb_topics TP
INNER JOIN phpbb_posts_text PT
ON TP.topic_id = PT.post_id
GROUP BY TP.topic_id
ORDER BY TP.topic_id DESC
LIMIT 10";
$req = mysql_query($sql) or die(mysql_error());

// Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) {

// Extrait du post
$post = $db_data['post_text'];
$max_caracteres = 350;
if (strlen($post)>$max_caracteres) {
   $max_caracteres=strrpos(substr($post, 0, $max_caracteres), " ");
   $post = substr($post, 0, $max_caracteres);
   $post .= " (...)";
}

echo "<p><a href=\"url.com?id=".$db_data['topic_id']."\">".$db_data['topic_title']."</a><br />
$post</p>";

}

// Fermeture de la connexion à la bdd
mysql_close();
?>


J'arrive pour le moment à afficher :

Le ballon rouge
[u:78da08f766][i:78da08f766]Ce rêve et ses interprétations font partie des archives de la Boîte à rêves. C'est ce qui explique leur présentation spécifique. Vous pouvez toutefois continuer la discussion en répondant normalement...[/i:78da08f766][/u:78da08f766] Le samedi 01 janvier 2005 à 20:07 Un rêveur anonyme a confié le rêve suivant à la (...)


Le problème qui m'est pour le moment posé ce sont ces
"[u:78da08f766][i:78da08f766]" qui semblent correspondent aux balises [ u ] et [ i ] présentes au début d'une bonne partie de mes posts.

Je ne sais absolument pas comment gérer la chose. Pourriez-vous m'aidez svp ?
yazerty
PR1
PR1
 
Messages: 180
Inscription: Lun Oct 30, 2006 1:13 am

Messagede dcz » Lun Oct 30, 2006 4:08 pm

C'est marrant, je viens de finir deux fonctions bien pratiques pour faire ça, pour la maj de mx Google sitemaps.

Par contre, il faudrait que ton code partage les sessions de phpBB, histoire d'avoir accès à ces fonctions tranquille.

Le mieux serait donc de lancer un nouveau sujet pour ça ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede yazerty » Mar Oct 31, 2006 11:29 am

J'ai reposé mon message ici :-)...
yazerty
PR1
PR1
 
Messages: 180
Inscription: Lun Oct 30, 2006 1:13 am

Messagede yazerty » Ven Nov 03, 2006 9:49 pm

dcz a écrit:Trouver :

Code: Tout sélectionner
<td><span class="nav">".$lang['Last_Post']." :
<a href="".append_sid("$urlPath/viewtopic.php?t=".$last_topic_data[$i]['topic_id'])."" class="nav">" . $last_topic_data[$i]['topic_title'] ."</span></a></td>


Remplacer par :

Code: Tout sélectionner
echo "<a href="".append_sid("$urlPath/profile.php?mode=viewprofile&u=".$last_topic_data[$i]['user_id'])."" class="lien-bleu" >" . $last_topic_data[$i]['username'] . "</a>, ".$date_last_post." <a href="" . append_sid("$urlPath/viewtopic.php?p=".$last_topic_data[$i]['topic_last_post_id'] . $start) . "#" . $last_topic_data[$i]['topic_last_post_id'] . ""><img src="" . $urlPath . "/" . $images['icon_latest_reply'] . "" alt="". $lang['View_latest_post'] . "" border="0"></a>



Je ne comprends pas d'où sort le $date_last_post ? D'ailleurs chez moi il n'est pas interprété, je ne sais pas si c'est normal :? .

Et j'aimerais également faire comme Topics Anywhere par rapport aux invités, c'est à dire indiquer leur nom :). Pourriez-vous m'aider svp ?

Voici le code que j'ai actuellement (légèrement modfifié pour la présentation) :

Code: Tout sélectionner
// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management



// Let's do it now Wink
$sql = "SELECT t.topic_poster,t.topic_views,t.topic_replies,t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
FROM ".TOPICS_TABLE." t, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
WHERE t.topic_id = p.topic_id
AND t.topic_status <> 2
AND p.post_id = t.topic_last_post_id
AND p.poster_id = u.user_id
ORDER BY p.post_id DESC LIMIT $topicnumber";
//Begin sql cache
if ( !($result = $db->sql_query($sql)) )
//if ( !($result = $db->sql_query($sql, false, 'posts_')) )
//End sql cache
{
message_die(GENERAL_ERROR, 'Could not obtain Last topics info', '', __LINE__, __FILE__, $sql);
}
$last_topic_data = array();
while( $row = $db->sql_fetchrow($result) )
{
$last_topic_data[] = $row;
}
$db->sql_freeresult($result);
unset($row);

// Handle the not topics case, if you want Smile
if ( !($total_topics = count($last_topic_data)) )
{
$message = 'Something you want to say here Wink';
message_die(GENERAL_MESSAGE, $message);
}

//
// Find which forums are visible for this user
//
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $last_topic_data);

// here I keep the basic html output
// Outcome of the HTML
// Be carefull when you edit these!
echo "</ul>";

for ($i = 0; $i < $total_topics; $i++ )
{
if ($is_auth_ary[$last_topic_data[$i]['forum_id']]['auth_view'] && !in_array($last_topic_data[$i]['forum_id'], $exclude_forum))
{
// phpBB-SEO.com SEO TOOLKIT BEGIN
$seo_topic_name = $last_topic_data[$i]['topic_title'];
$start = (ceil($last_topic_data[$i]['forum_id'] / $board_config['posts_per_page'])> 1) ? "&amp;start=" . $paginated * $pages : '';
// phpBB-SEO.com SEO TOOLKIT END

echo "<li><a href="".append_sid("$urlPath/viewtopic.php?t=".$last_topic_data[$i]['topic_id'])."" class="nav">" . $last_topic_data[$i]['topic_title'] ."</a>
(" . $last_topic_data[$i]['topic_replies'] . " réponses)<br />
<a href="" . append_sid("$urlPath/viewtopic.php?p=".$last_topic_data[$i]['topic_last_post_id'] . $start) . "#" . $last_topic_data[$i]['topic_last_post_id'] . "">Dernière réponse</a>
de <a href="".append_sid("$urlPath/profile.php?mode=viewprofile&u=".$last_topic_data[$i]['user_id'])."" class="nav" >" . $last_topic_data[$i]['username'] . "</a>,
le ".$date_last_post."
</li>";

}
}
echo "</ul>";
yazerty
PR1
PR1
 
Messages: 180
Inscription: Lun Oct 30, 2006 1:13 am

PrécédenteSuivante

Retourner vers MODS phpBB2 SEO

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités