Código PHP:
// Get latest news announcements
// First validate announcement fids:
$announcementsfids = explode(',', $proportal->settings['announcementsfid2']);
if(is_array($announcementsfids))
{
    foreach($announcementsfids as $fid)
    {
        $fid_array[] = intval($fid);
    }
    $announcementsfids = implode(',', $fid_array);
}
// And get them!
$query = $db->simple_select("forums", "*", "fid IN (".$announcementsfids.")");
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}
// Let's add pagination
$annnum = $db->fetch_field($db->simple_select('threads', 'COUNT(*) AS annnum', "fid IN (".$proportal->settings['announcementsfid2'].") AND visible='1' AND closed NOT LIKE 'moved|%'"), 'annnum');
$pagenum = intval($mybb->input['page']);
$totalpage = ceil($annnum / $proportal->settings['numannouncements']);
if($pagenum < 1 || !$pagenum || $pagenum > $totalpage){ $pagenum = 1; }
$multipage = multipage($annnum, $proportal->settings['numannouncements'], $pagenum, $mybb->settings['bburl'].'/portal.php');
$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 ".(($pagenum-1)*$proportal->settings['numannouncements']).", ".$proportal->settings['numannouncements']
);
while($getid = $db->fetch_array($query))
{
    $pids .= ",'{$getid['pid']}'";
    $tids .= ",'{$getid['tid']}'";
    $posts[$getid['tid']] = $getid;
}
$pids = "pid IN(0{$pids})";
// Now lets fetch all of the attachments for these posts
$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);
    }
}
$icon_cache = $cache->read("posticons");
$announcements = '';
$query = $db->query("
    SELECT t.*, t.username AS threadusername, u.username, u.avatar, u.avatardimensions
    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, ".$proportal->settings['numannouncements']
);  (y feliz navidad para todos!).
 (y feliz navidad para todos!).
	
// And get them!
$query = $db->simple_select("forums", "*", "fid IN (".$announcementsfids.")");
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}// And get them!
if ($mybb->usergroup[gid] == "5")
{
$query = $db("SELECT * FROM forums WHERE fid = '".$announcementsfids."' AND fid <> '17');
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}
}
$l['portal_novedades'] = "Configuración de Modulo novedades";
$l['portal_settings_desc'] = "ID de los foros que NO se mostraran";
$l['portal_settings_grupo1'] = "Invitados";
$l['portal_settings_grupo2'] = "Registrados";
$l['portal_settings_grupo3'] = "SuperModeradores";
$l['portal_settings_grupo4'] = "Administradores";
$l['portal_settings_grupo5'] = "Esperando Activacion";
$l['portal_settings_grupo6'] = "Moderadores";
$l['portal_settings_grupo7'] = "Suspendidos";
$l['portal_settings_grupo11'] = "Privado";	$form_container = new FormContainer($lang->portal_novedades);
	$form_container->output_row($lang->portal_settings_grupo1, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo1]', $settings_data['grupo1'], array('id' => 'grupo1')), 'grupo1');
	$form_container->output_row($lang->portal_settings_grupo2, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo2]', $settings_data['grupo2'], array('id' => 'grupo2')), 'grupo2');
	$form_container->output_row($lang->portal_settings_grupo3, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo3]', $settings_data['grupo3'], array('id' => 'grupo3')), 'grupo3');
	$form_container->output_row($lang->portal_settings_grupo4, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo4]', $settings_data['grupo4'], array('id' => 'grupo4')), 'grupo4');
	$form_container->output_row($lang->portal_settings_grupo5, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo5]', $settings_data['grupo5'], array('id' => 'grupo5')), 'grupo5');
	$form_container->output_row($lang->portal_settings_grupo6, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo6]', $settings_data['grupo6'], array('id' => 'grupo6')), 'grupo6');
	$form_container->output_row($lang->portal_settings_grupo7, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo7]', $settings_data['grupo7'], array('id' => 'grupo7')), 'grupo7');
	$form_container->output_row($lang->portal_settings_grupo11, $lang->portal_settings_desc, $form->generate_text_box('upsetting[grupo11]', $settings_data['grupo11'], array('id' => 'grupo11')), 'grupo11');
	$form_container->end();//Las variables a utilizar son las de mybb para los grupos de usuarios o funciones asociadas con MyBB, para ahorrarnos algo de código, la funcion db, para los llamados y consultas a los datos de la base de datos, la funcion lang, para que tome los valores del archivo de idiomas del mismo plugin.
global $db, $mybb, $lang;
$lang->load("nombredelplugin", false, true); 
$grupos = $lang->portal_settings_grupo1_desc;
if(in_array($mybb->user['usergroup'], array($grupos)))
{
$query = $db("SELECT * FROM forums WHERE fid <> '17'");
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}
} // Get latest news announcements
// First validate announcement fids:
$announcementsfids = explode(',', $proportal->settings['announcementsfid2']);
if(is_array($announcementsfids2))
{
    foreach($announcementsfids2 as $fid)
    {
        $fid_array[] = intval($fid);
    }
    $announcementsfids2 = implode(',', $fid_array);
}
// And get them!
$query = $db->simple_select("forums", "*", "fid IN (".$announcementsfids2.")");
while($forumrow = $db->fetch_array($query))
{
    $forum[$forumrow['fid']] = $forumrow;
}
// Let's add pagination
$annnum = $db->fetch_field($db->simple_select('threads', 'COUNT(*) AS annnum', "fid IN (".$proportal->settings['announcementsfid2'].") AND visible='1' AND closed NOT LIKE 'moved|%'"), 'annnum');
$pagenum = intval($mybb->input['page']);
$totalpage = ceil($annnum / $proportal->settings['numannouncements']);
if($pagenum < 1 || !$pagenum || $pagenum > $totalpage){ $pagenum = 1; }
$multipage = multipage($annnum, $proportal->settings['numannouncements'], $pagenum, $mybb->settings['bburl'].'/portal.php');
$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 (".$announcementsfids2.") AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND t.firstpost=p.pid
    ORDER BY t.dateline DESC 
    LIMIT ".(($pagenum-1)*$proportal->settings['numannouncements']).", ".$proportal->settings['numannouncements']
);
while($getid = $db->fetch_array($query))
{
    $pids .= ",'{$getid['pid']}'";
    $tids .= ",'{$getid['tid']}'";
    $posts[$getid['tid']] = $getid;
}
$pids = "pid IN(0{$pids})";
// Now lets fetch all of the attachments for these posts
$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);
    }
}
$icon_cache = $cache->read("posticons");
$announcements = '';
$query = $db->query("
    SELECT t.*, t.username AS threadusername, u.username, u.avatar, u.avatardimensions
    FROM ".TABLE_PREFIX."threads t
    LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = t.uid)
    WHERE t.fid IN (".$announcementsfids2.") AND t.tid IN (0{$tids}) AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
    ORDER BY t.dateline DESC
    LIMIT 0, ".$proportal->settings['numannouncements']
); 
<?php
if (!defined("IN_PORTAL")) {
	die("<div style=\"border:1px solid #CC0000; padding:3px; margin:0; font-family:Tahoma; width:250px; font-size:12px;\"><strong>Error:</strong> This file cannot be viewed directly!</div>");
}
// Get forums user cannot view
$unviewable = get_unviewable_forums();
if($unviewable)
{
	$unviewwhere = " AND fid NOT IN ($unviewable)";
}
$altbg = alt_trow();
$threadlist = '';
$showlimit = 5;
$query = $db->query("
	SELECT p.*, u.username
	FROM ".TABLE_PREFIX."posts p
	LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)
	WHERE p.visible='1' $unviewwhere
	ORDER BY p.dateline DESC 
	LIMIT 0, ".$showlimit
);
while($thread = $db->fetch_array($query))
{
	$lastpostdate = my_date($mybb->settings['dateformat'], $thread['dateline']);
	$lastposttime = my_date($mybb->settings['timeformat'], $thread['dateline']);
	// Don't link to guest's profiles (they have no profile).
	if($thread['uid'] == 0)
	{
		$lastposterlink = $thread['username'];
	}
	else
	{
		$lastposterlink = build_profile_link($thread['username'], $thread['uid']);
	}
	if(my_strlen($thread['subject']) > 20)
	{
		$thread['subject'] = my_substr($thread['subject'], 0, 20) . "...";
	}
	$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
	$thread['threadlink'] = get_post_link($thread['pid'],$thread['tid']);
	$threadlist .= "<tr>
<td class=\"$altbg\">
<strong><a href=\"".$mybb->settings['bburl']."/".$thread['threadlink']."#pid".$thread['pid']."\">$thread[subject]</a></strong>
<span class=\"smalltext\"><br />
$lang->posted_by <em>$lastposterlink</em><br />
$lastpostdate $lastposttime
</span>
</td>
</tr>";
	$altbg = alt_trow();
}
if($threadlist)
{ 
	// Show the table only if there are threads
	$latestposts = "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
		<tr>
			<td class=\"thead\"><div class=\"expcolimage\"><img src=\"{$mybb->settings['bburl']}/{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
		</tr>
		<tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
		{$threadlist}
		</tbody>
	</table>";
}
else
{
	$latestposts = "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
		<tr>
			<td class=\"thead\"><div class=\"expcolimage\"><img src=\"{$mybb->settings['bburl']}/{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
		</tr>
		<tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
		<tr>
		<td class=\"$altbg\">No Post</td>
		</tr>
		</tbody>
	</table>";
}
echo $latestposts;
?>