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,$sys_use_news;
26 $params['toptab']='news';
27 $params['group']=$group_id;
31 if ($group_id && ($group_id != $sys_news_group)) {
32 site_project_header($params);
34 $params['pagename']='news_main';
35 $HTML->header($params);
37 if ($group_id && ($group_id != $sys_news_group)) {
39 array($Language->getText('menu','submit'),$Language->getText('menu','admin')),
40 array('/news/submit.php?group_id='.$group_id,'/news/admin/?group_id='.$group_id)));
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,
65 groups.type_id,users.user_name,users.realname,
66 news_bytes.forum_id,news_bytes.summary,news_bytes.post_date,news_bytes.details
67 FROM users,news_bytes,groups
69 AND users.user_id=news_bytes.submitted_by
70 AND news_bytes.group_id=groups.group_id
71 ORDER BY post_date DESC";
73 $result=db_query($sql,$limit+$tail_headlines);
74 $rows=db_numrows($result);
78 if (!$result || $rows < 1) {
79 $return .= $Language->getText('news_utils', 'nonews');
80 $return .= db_error();
82 for ($i=0; $i<$rows; $i++) {
83 if ($show_summaries && $limit) {
84 //get the first paragraph of the story
85 $arr=explode("\n",db_result($result,$i,'details'));
86 //if the first paragraph is short, and so are following paragraphs, add the next paragraph on
87 if ((strlen($arr[0]) < 200) && (strlen($arr[1].$arr[2]) < 300) && (strlen($arr[2]) > 5)) {
88 $summ_txt='<br />'. util_make_links( $arr[0].'<br />'.$arr[1].'<br />'.$arr[2] );
90 $summ_txt='<br />'. util_make_links( $arr[0] );
92 $proj_name=' - <a href="/projects/'. strtolower(db_result($result,$i,'unix_group_name')) .'/">'. db_result($result,$i,'group_name') .'</a>';
100 $return .= '<li><a href="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><strong>'. db_result($result,$i,'summary') . '</strong></a>';
102 $return .= '<li><strong>'. db_result($result,$i,'summary') . '</strong>';
104 $return .= ' <em>'. date($sys_datefmt,db_result($result,$i,'post_date')).'</em><br /></li>';
108 <a href="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><strong>'. db_result($result,$i,'summary') . '</strong></a>';
111 <strong>'. db_result($result,$i,'summary') . '</strong>';
117 $return .= ' <em>'. db_result($result,$i,'realname') .' - '.
118 date($sys_datefmt,db_result($result,$i,'post_date')). '</em>' .
119 $proj_name . $summ_txt;
121 $sql="SELECT total FROM forum_group_list_vw WHERE group_forum_id='" . db_result($result,$i,'forum_id') . "'";
122 $res2 = db_query($sql);
123 $num_comments = db_result($res2,0,'total');
125 if (!$num_comments) {
129 if ($num_comments <= 1) {
130 $comments_txt = $Language->getText('news_utils', 'comment_1');
132 $comments_txt = $Language->getText('news_utils', 'comment_2');
136 $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" />';
138 $return .= '<hr width="100%" size="1" />';
142 if ($limit==1 && $tail_headlines) {
148 if (!$limit && $i==$rows-1) {
149 $return .= '</ul><hr width="100%" size="1" />'."\n";
152 if ($group_id != $sys_news_group) {
153 $archive_url='/news/?group_id='.$group_id;
155 $archive_url='/news/';
159 $return .= '<div align="center">'
160 .'<a href="'.$archive_url.'">[' . $Language->getText('news_utils', 'archive') . ']</a></div>';
162 $return .= '<div align="center">...</div>';
166 if ($allow_submit && $group_id != $sys_news_group) {
167 if(!$result || $rows < 1) {
168 $return .= '<hr width="100%" size="1" />';
170 //you can only submit news from a project now
171 //you used to be able to submit general news
172 $return .= '<div align="center"><a href="/news/submit.php?group_id='.$group_id.'"><span style="font-size:smaller">[' . $Language->getText('news_utils', 'submit') . ']</span></a></div>';
178 function news_foundry_latest($group_id=0,$limit=5,$show_summaries=true) {
179 global $sys_datefmt,$Language;
181 Show a the latest news for a portal
184 $sql="SELECT groups.group_name,groups.unix_group_name,
185 users.user_name,users.realname,news_bytes.forum_id,
186 news_bytes.summary,news_bytes.post_date,news_bytes.details
187 FROM users,news_bytes,groups,foundry_news
188 WHERE foundry_news.foundry_id='$group_id'
189 AND users.user_id=news_bytes.submitted_by
190 AND foundry_news.news_id=news_bytes.id
191 AND news_bytes.group_id=groups.group_id
192 AND foundry_news.is_approved=1
193 ORDER BY news_bytes.post_date DESC";
195 $result=db_query($sql,$limit);
196 $rows=db_numrows($result);
198 if (!$result || $rows < 1) {
199 $return .= '<h3>' . $Language->getText('news_utils', 'nonews') . '</h3>';
200 $return .= db_error();
202 for ($i=0; $i<$rows; $i++) {
203 if ($show_summaries) {
204 //get the first paragraph of the story
205 $arr=explode("\n",db_result($result,$i,'details'));
206 if ((strlen($arr[0]) < 200) && (strlen($arr[1].$arr[2]) < 300) && (strlen($arr[2]) > 5)) {
207 $summ_txt=util_make_links( $arr[0].'<br />'.$arr[1].'<br />'.$arr[2] );
209 $summ_txt=util_make_links( $arr[0] );
212 //show the project name
213 $proj_name=' - <a href="/projects/'. strtolower(db_result($result,$i,'unix_group_name')) .'/">'. db_result($result,$i,'group_name') .'</a>';
219 <a href="/forum/forum.php?forum_id='. db_result($result,$i,'forum_id') .'"><strong>'. db_result($result,$i,'summary') . '</strong></a>
220 <br /><em>'. db_result($result,$i,'realname') .' - '.
221 date($sys_datefmt,db_result($result,$i,'post_date')) . $proj_name . '</em>
222 '. $summ_txt .'<hr width="100%" size="1" />';
228 function get_news_name($id) {
230 Takes an ID and returns the corresponding forum name
232 $sql="SELECT summary FROM news_bytes WHERE id='$id'";
233 $result=db_query($sql);
234 if (!$result || db_numrows($result) < 1) {
237 return db_result($result, 0, 'summary');