4 * SourceForge News Facility
6 * SourceForge: Breaking Down the Barriers to Open Source Development
7 * Copyright 1999-2001 (c) VA Linux Systems
8 * http://sourceforge.net
16 By Tim Perdue, Sourceforge, 12/99
19 function news_header($params) {
20 global $DOCUMENT_ROOT,$HTML,$group_id,$news_name,$news_id,$sys_news_group,$Language;
21 $params['toptab']='news';
22 $params['group']=$group_id;
23 $params['sysnewsgroup']=$sys_news_group;
27 if ($group_id && ($group_id != $sys_news_group)) {
28 site_project_header($params);
30 $params['pagename']='news_main';
31 $HTML->header($params);
33 if ($group_id && ($group_id != $sys_news_group)) {
35 array($Language->getText('menu','submit'),$Language->getText('menu','admin')),
36 array('/news/submit.php?group_id='.$group_id,'/news/admin/?group_id='.$group_id)));
39 array($Language->getText('menu','submit'),$Language->getText('menu','admin')),
40 array('/news/submit.php?group_id='.$sys_news_group,'/news/admin/?group_id='.$sys_news_group)));
44 function news_footer($params) {
46 $HTML->footer($params);
49 function news_show_latest($group_id='',$limit=10,$show_summaries=true,$allow_submit=true,$flat=false,$tail_headlines=0,$show_forum=true) {
50 global $sys_datefmt,$sys_news_group,$Language;
52 $group_id=$sys_news_group;
55 Show a simple list of the latest news items with a link to the forum
58 if ($group_id != $sys_news_group) {
59 $wclause="news_bytes.group_id='$group_id' AND news_bytes.is_approved <> '4'";
61 $wclause='news_bytes.is_approved=1';
64 $sql="SELECT groups.group_name,groups.unix_group_name,groups.type,users.user_name,news_bytes.forum_id,news_bytes.summary,news_bytes.date,news_bytes.details ".
65 "FROM users,news_bytes,groups ".
67 "AND users.user_id=news_bytes.submitted_by ".
68 "AND news_bytes.group_id=groups.group_id ".
71 $result=db_query($sql,$limit+$tail_headlines);
72 $rows=db_numrows($result);
74 if (!$result || $rows < 1) {
75 $return .= $Language->getText('news_utils', 'nonews');
76 $return .= db_error();
80 for ($i=0; $i<$rows; $i++) {
81 if ($show_summaries && $limit) {
82 //get the first paragraph of the story
83 $arr=explode("\n",db_result($result,$i,'details'));
84 //if the first paragraph is short, and so are following paragraphs, add the next paragraph on
85 if ((strlen($arr[0]) < 200) && (strlen($arr[1].$arr[2]) < 300) && (strlen($arr[2]) > 5)) {
86 $summ_txt='<BR>'. util_make_links( $arr[0].'<BR>'.$arr[1].'<BR>'.$arr[2] );
88 $summ_txt='<BR>'. util_make_links( $arr[0] );
90 //show the project name
91 if (db_result($result,$i,'type')==2) {
92 $group_type='/foundry/';
94 $group_type='/projects/';
96 $proj_name=' - <A HREF="'.$group_type. strtolower(db_result($result,$i,'unix_group_name')) .'/">'. db_result($result,$i,'group_name') .'</A>';
104 $return .= '<li><A HREF="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><B>'. db_result($result,$i,'summary') . '</B></A>';
106 $return .= '<li><B>'. db_result($result,$i,'summary') . '</B>';
108 $return .= ' <I>'. date($sys_datefmt,db_result($result,$i,'date')).'</I><br>';
112 <A HREF="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><B>'. db_result($result,$i,'summary') . '</B></A>';
115 <B>'. db_result($result,$i,'summary') . '</B>';
121 $return .= ' <I>'. db_result($result,$i,'user_name') .' - '.
122 date($sys_datefmt,db_result($result,$i,'date')). '</I>' .
123 $proj_name . $summ_txt;
125 $sql="SELECT famc.count as total
126 FROM forum_group_list g
127 LEFT JOIN forum_agg_msg_count famc USING (group_forum_id)
128 WHERE g.group_id='$group_id' AND group_forum_id='" . db_result($result,$i,'forum_id') . "' AND g.is_public='1'";
129 $res2 = db_query($sql);
130 $num_comments = db_result($res2,0,'total');
132 if (!$num_comments) {
136 if ($num_comments == 1) {
137 $comments_txt = " Comment";
139 $comments_txt = " Comments";
143 $return .= '<div align="center">(' . $num_comments . $comments_txt . ') <A HREF="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'">[' . $Language->getText('news_utils', 'readmore') . ']</a></div><HR width="100%" size="1" noshade>';
145 $return .= '<HR width="100%" size="1" noshade>';
149 if ($limit==1 && $tail_headlines) {
158 if ($group_id != $sys_news_group) {
159 $archive_url='/news/?group_id='.$group_id;
161 $archive_url='/news/';
165 if ($tail_headlines) {
166 $return .= '</ul><HR width="100%" size="1" noshade>'."\n";
169 $return .= '<div align="center">'
170 .'<a href="'.$archive_url.'">[' . $Language->getText('news_utils', 'archive') . ']</a></div>';
172 $return .= '<div align="center">.....</div>';
175 if ($allow_submit && $group_id != $sys_news_group) {
176 //you can only submit news from a project now
177 //you used to be able to submit general news
178 $return .= '<div align="center"><A HREF="/news/submit.php?group_id='.$group_id.'"><FONT SIZE="-1">[' . $Language->getText('news_utils', 'submit') . ']</FONT></A></center>';
184 function news_foundry_latest($group_id=0,$limit=5,$show_summaries=true) {
185 global $sys_datefmt,$Language;
187 Show a the latest news for a portal
190 $sql="SELECT groups.group_name,groups.unix_group_name,users.user_name,news_bytes.forum_id,news_bytes.summary,news_bytes.date,news_bytes.details ".
191 "FROM users,news_bytes,groups,foundry_news ".
192 "WHERE foundry_news.foundry_id='$group_id' ".
193 "AND users.user_id=news_bytes.submitted_by ".
194 "AND foundry_news.news_id=news_bytes.id ".
195 "AND news_bytes.group_id=groups.group_id ".
196 "AND foundry_news.is_approved=1 ".
197 "ORDER BY news_bytes.date DESC";
199 $result=db_query($sql,$limit);
200 $rows=db_numrows($result);
202 if (!$result || $rows < 1) {
203 $return .= '<H3>' . $Language->getText('news_utils', 'nonews') . '</H3>';
204 $return .= db_error();
206 for ($i=0; $i<$rows; $i++) {
207 if ($show_summaries) {
208 //get the first paragraph of the story
209 $arr=explode("\n",db_result($result,$i,'details'));
210 if ((strlen($arr[0]) < 200) && (strlen($arr[1].$arr[2]) < 300) && (strlen($arr[2]) > 5)) {
211 $summ_txt=util_make_links( $arr[0].'<BR>'.$arr[1].'<BR>'.$arr[2] );
213 $summ_txt=util_make_links( $arr[0] );
216 //show the project name
217 $proj_name=' - <A HREF="/projects/'. strtolower(db_result($result,$i,'unix_group_name')) .'/">'. db_result($result,$i,'group_name') .'</A>';
223 <A HREF="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><B>'. db_result($result,$i,'summary') . '</B></A>
224 <BR><I>'. db_result($result,$i,'user_name') .' - '.
225 date($sys_datefmt,db_result($result,$i,'date')) . $proj_name . '</I>
226 '. $summ_txt .'<HR WIDTH="100%" SIZE="1">';
232 function get_news_name($id) {
234 Takes an ID and returns the corresponding forum name
236 $sql="SELECT summary FROM news_bytes WHERE id='$id'";
237 $result=db_query($sql);
238 if (!$result || db_numrows($result) < 1) {
241 return db_result($result, 0, 'summary');