Browse Source
Ce nouveau fichier source permet d’éviter de déclarer deux fois cette fonction : une fois pour la page d’accueil, et une fois pour la section des nouvelles de l’association.pull/17/head
3 changed files with 72 additions and 147 deletions
@ -0,0 +1,70 @@ |
|||
<?php |
|||
function pun_news($fid='', $show=15, $truncate=1) |
|||
{ |
|||
global $lang_common, $db, $pun_config, $db_prefix; |
|||
$max_subject_length = 100; |
|||
$show_max_topics = 50; |
|||
$fid = intval($fid); |
|||
$order_by = 't.posted'; |
|||
$forum_sql = ''; |
|||
// Was a forum ID supplied? |
|||
if ( $fid ) $forum_sql = 'f.id='.$fid.' AND '; |
|||
$show = intval($show); |
|||
if ($show < 1 || $show > $show_max_topics) |
|||
$show = 15; |
|||
$saveddate=""; |
|||
// Fetch $show topics |
|||
$result = $db->query('SELECT t.id, t.poster, t.subject, t.posted, t.last_post, f.id AS fid, f.forum_name FROM '.$db_prefix.'topics AS t INNER JOIN '.$db_prefix.'forums AS f ON t.forum_id=f.id WHERE f.id='.$fid.' AND t.moved_to IS NULL ORDER BY '.$order_by.' DESC') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error()); |
|||
$show_count = 0; |
|||
if ( !$db->num_rows($result) ) return $output; |
|||
while ( ($show_count < $show) && ($cur_topic = $db->fetch_assoc($result)) ) { |
|||
$temp = ''; |
|||
if ($pun_config['o_censoring'] == '1') |
|||
$cur_topic['subject'] = censor_words($cur_topic['subject']); |
|||
if (pun_strlen($cur_topic['subject']) > $max_subject_length) |
|||
$subject_truncated = trim(substr($cur_topic['subject'], 0, ($max_subject_length-5))).' ...'; |
|||
else |
|||
$subject_truncated = $cur_topic['subject']; |
|||
$newsheading = '<a href="'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].'" title="'.pun_htmlspecialchars($cur_topic['subject']).'">'.pun_htmlspecialchars($subject_truncated).'</a> - <em>Posté par '.$cur_topic['poster'].' à '.date('H:i:s', $cur_topic['posted']).'</em><br>'; |
|||
// Group posts by |
|||
$thisdate = date('d n Y', $cur_topic['posted']); |
|||
if ($thisdate != $saveddate) |
|||
|
|||
{ |
|||
if ($saveddate) |
|||
{ |
|||
$temp .= "</div></div>"; |
|||
} |
|||
$temp .= '<div class="block"><h2><span>'.$thisdate.'</span></h2><div class="box"><div class="inbox"><p>'; |
|||
$saveddate = $thisdate; |
|||
} |
|||
else { |
|||
$temp .= '<div class="inbox"><p>'; |
|||
} |
|||
$temp .= $newsheading.'</p><p>'; |
|||
$id = $cur_topic['id']; |
|||
$msg = $db->query('SELECT id, poster, poster_id, poster_ip, poster_email, message, posted, edited, edited_by FROM '.$db_prefix.'posts WHERE topic_id='.$id.' LIMIT 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); |
|||
if ( !$db->num_rows($msg) ) continue; |
|||
$cur_post = $db->fetch_assoc($msg); |
|||
// Display first paragraph only (comment out next four lines to turn off) |
|||
if ($truncate == 1) |
|||
{ |
|||
$paragraph = preg_split("/s*n+/", $cur_post['message']); |
|||
if (isset($paragraph[1])) { |
|||
$cur_post['message'] = $paragraph[0] . "..."; |
|||
} |
|||
} |
|||
$cur_post['message'] = parse_message($cur_post['message'], 0); |
|||
$temp .= $cur_post['message']; |
|||
$temp .= "</p></div>"; |
|||
if (isset($output)) { |
|||
$output .= $temp; |
|||
} |
|||
else { |
|||
$output = $temp; |
|||
} |
|||
++$show_count; |
|||
} // end of while |
|||
$output .= "</div></div>"; |
|||
return $output; |
|||
} |
Loading…
Reference in new issue