<?php
if(!defined('IN_MYBB'))
{
die();
}
$plugins->add_hook('pre_output_page','aclearnewsbar');
function aclearnewsbar_info()
{
return array
(
"name"=>"A clear news bar",
"description"=>"Shows a clear bar with latest news from your portal page.",
"website"=>"http://www.ajdija.com",
"author"=>"Mateusz Grzesiukiewicz",
"authorsite"=> "http://www.ajdija.com",
"version"=>"1.0",
"guid"=>"7dc27e3041bfe6e412f1a9b2f7634db2",
"compatibility"=>"16*"
);
}
function aclearnewsbar($page)
{
global $mybb,$theme, $db;
if(THIS_SCRIPT!='portal.php') {
$announcementsfids = explode(',', $mybb->settings['portal_announcementsfid']);
if(is_array($announcementsfids))
{
foreach($announcementsfids as $fid)
{
$fid_array[] = intval($fid);
}
$announcementsfids = implode(',', $fid_array);
}
$query = $db->simple_select("forums", "*", "fid IN (".$announcementsfids.")");
while($forumrow = $db->fetch_array($query))
{
$forum[$forumrow['fid']] = $forumrow;
}
$pids = '';
$tids = '';
$comma = '';
$query = $db->query("
SELECT p.pid, p.message, p.tid
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
WHERE t.fid IN (".$announcementsfids.") AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND t.firstpost=p.pid
ORDER BY t.dateline DESC
LIMIT 0, ".$mybb->settings['portal_numannouncements']
);
while($getid = $db->fetch_array($query))
{
$pids .= ",'{$getid['pid']}'";
$tids .= ",'{$getid['tid']}'";
$posts[$getid['tid']] = $getid;
}
$pids = "pid IN(0{$pids})";
$query = $db->simple_select("attachments", "*", $pids);
while($attachment = $db->fetch_array($query))
{
$attachcache[$attachment['pid']][$attachment['aid']] = $attachment;
}
if(is_array($forum))
{
foreach($forum as $fid => $forumrow)
{
$forumpermissions[$fid] = forum_permissions($fid);
}
}
$announcements = '';
$query = $db->query("
SELECT t.*, t.username AS threadusername, u.username, u.avatar
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = t.uid)
WHERE t.fid IN (".$announcementsfids.") AND t.tid IN (0{$tids}) AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
ORDER BY t.dateline DESC
LIMIT 0, ".$mybb->settings['portal_numannouncements']
);
$news = '--- ';
while($announcement = $db->fetch_array($query))
{
$announcement['threadlink'] = get_thread_link($announcement['tid']);
$announcement['subject'] = htmlspecialchars_uni($announcement['subject']);
$news = $news.'<a href="'.htmlspecialchars_uni($announcement['threadlink']).'">'.htmlspecialchars_uni( $announcement['subject']).'</a> --- ';
}
$page=preg_replace('#<div class="navigation">(.*)</div>#Usi','<table border="0" cellspacing="'.$theme["borderwidth"].'" cellpadding="'.$theme["tablespace"].'" class="newsborder">
<thead>
<tr>
<td class="newshead" width="100px">Latest '.
'News: </td><td class="newhead"><div class="horizontal_scroller" style="font-weight: bold;"><div class="scrollingtext">'.$news.'</div></div></td>
</tr>
</thead>
</table><br /><div class="navigation">$1</div>',$page);
return $page;
}
}
?>
|