Wünsche ein verbesserstes Portal - aman - 17.09.2007
Ich würde mir gerne bei der neueren Version, auch gleichzeitig ein deutlich besseres Portal Wünschen!
Was z.b Wichtig wäre, eine Box mit den letzten Beiträgen in der mitte, wo man es auch besser sehen lann, so ähnlich wie beim MK Portal...
Dazu wäre es auch nicht schlecht wenn man es wie Baukästen beliebig umstellen kann...
RE: Wünsche ein verbesserstes Portal - ElkeK. - 17.09.2007
Guten Morgen,
ich weiß nicht, ob es wirklich zwingend notwendig ist, die letzten Beiträge in der Mitte anzuzeigen. Du kannst es ja auch selbst erstellen. Mit ein paar HTML-Kenntnissen ist das ja alles möglich
Die Boxen kannst Du schon beliebig umstellen. Einfacher geht es nun wirklich nicht ... aber auch dazu benötigst Du HTML-Kenntnisse!
Einen schönen Tag noch, lG, Elke!
RE: Wünsche ein verbesserstes Portal - morlock - 17.09.2007
Du kannst doch ohne weiteres die letzten Beiträge in der "Mitte" anzeigen lassen. Dazu musst du einfach das portal-Template bearbeiten. Grundlegende HTML-Kenntnisse sollten aber schon vorhanden sein. Aber wozu gibt es Google?
Allerdings ist die latest-Threads-Übersicht in der Tat etwas mager.
Es ist allerdings möglich, sie relativ schmerzlos aufzupeppen (man muss nur wissen wie.... argh, das hat mich Zeit gekostet) (siehe Anhang).
Da fehlen allerdings noch die Posticons in der ersten Spalte.
Wie das geht? Wenn ich das mit den Posticons hinbekommben habe, wollte ich mal versuchen das als Plugin zu verwirklichen (latest-Threads-enhanced oder so =) )
RE: Wünsche ein verbesserstes Portal - aman - 17.09.2007
hey das wäre mega Super wenn es dafür eine Lösung gäben würde!
Wenn es sonst eine ausführöiche anleitung gäben würde wie man das schrit für schrit erstellt,wäre ich sehr dankbar.
ansonste warte ich auf das fertige Plugin
RE: Wünsche ein verbesserstes Portal - modercol - 17.09.2007
Das mit den Themen in der mitte, hatte ich schon mal geklärt, näheres da: https://www.mybb.de/forum/showthread.php?tid=5343
Und wieder einmal zeigt sich das die Suche nicht vollzogen wurde
RE: Wünsche ein verbesserstes Portal - morlock - 18.09.2007
Ok, ok, hier Schritt für Schritt.Ich gehe von einer mehr oder weniger jungfräulichen Installation aus.
Das ist an modercols Anleitung angelegt, also danke für deinen Beitrag modercol, ohne den hätte ich das wohl nie so hinbekommen, wie ich es aus unserem alten Forum gewohnt war
Vielleicht kann sich jemand mit Erfahrung meine Änderungen in der portal.php (Punkt 3.) anschauen, nicht dass ich da irgendetwas total fahrlässiges getan habe.
---- Alle Änderungen auf eigene Gefahr! ----
1.) Backups des derzeitigen Themes mit Templates machen (ACP-->Themes-->Download)
2.) Bearbeiten der Templates(ACP-->Templates-->Modify/Delete---->Expand (richtige Template-Gruppe auswählen, bei einer Neuinstallation Default Templates)
2.1) portal (Portal Templates, expand -> portal)
{$latestthreads} muss hier versetzt werden. Unter {$announcement} setzen
2.2) portal_latestthreads
(Ich hab hier mal auf width-Angaben verzichtet)
Ersetze alles durch Code: <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="6"><strong>{$lang->latest_threads}</strong></td>
</tr>
<tr>
<td class="tcat" align="center"></td>
<td class="tcat" align="center"><strong>Thema</strong></td>
<td class="tcat" align="center"><strong>Autor</strong></td>
<td class="tcat" align="center"><strong>Klicks</strong></td>
<td class="tcat" align="center"><strong>Antworten</strong></td>
<td class="tcat" align="center"><strong>Letzter Beitrag</strong></td>
</tr>
{$threadlist}
</table>
<br />
2.3) portal_latestthreads_thread
Ersetze alles durch Code: <tr>
<td class="trow1" align="center" >{$icon}</td>
<td class="trow2" align="left" >
<strong><a href="{$mybb->settings['bburl']}/showthread.php?tid={$thread['tid']}">{$thread['subject']}</a></strong>
<br />
<small><strong>Forum: </strong><a href="forumdisplay.php?fid={$thread['fid']}">{$thread['name']}</a></small>
</td>
<td class="trow1" align="left" ><small>{$firstpostdate}, {$firstposttime}<br /> von: <strong>{$author}{$firstposterlink}</strong></small></td>
<td class="trow2" align="center" >{$thread['views']}</td>
<td class="trow1" align="center" ><strong><a href="javascript:MyBB.whoPosted({$thread['tid']});">{$thread['replies']}</a></strong></td>
<td class="trow2" align="left" >
<table width="100%">
<td class="trow2" align="left">
<a href="showthread.php?action=newpost&tid={$thread['tid']}"><img src="{$theme['imgdir']}/jump.gif" alt="{$lang->goto_first_unread}" /></a>
</td>
<td class="trow1" nowrap align="left">
<small>{$lastpostdate}, {$lastposttime}
<br />
von: <strong>{$lastposterlink}</strong></small>
</td>
</table>
</td>
</tr>
3.) Bearbeiten der portal.php
!!!!!SICHERUNGSKOPIE ANLEGEN!!!!!
[FINDE]
Code: SELECT t.*, u.username
[ERSETZE DURCH]
Code: SELECT t.*, u.username, f.name, t.dateline AS firstpostdate, t.username AS threadusername
[FINDE]
Code: LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
[FÜGE NACH DIESER ZEILE HINZU]
Code: LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid)
[FINDE]
Code: LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum']
);
[FÜGE NACH DIESER ZEILE HINZU]
Code: //copied from announcement code
$icon_cache = $cache->read("posticons");
[FINDE]
Code: $lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']);
[FÜGE NACH DIESER ZEILE HINZU]
Code: $firstpostdate = my_date($mybb->settings['dateformat'], $thread['firstpostdate']);
$firstposttime = my_date($mybb->settings['timeformat'], $thread['firstpostdate']);
$forumname = $thread['name'];
//Don't link to guest's profiles (they have no profile). Thread starter
if($thread['uid'] == 0)
{
$firstposterlink = htmlspecialchars_uni($thread['threadusername']);
}
else
{
$firstposterlink = build_profile_link($thread['threadusername'], $thread['uid']);
}
//copied from announcement code
if($thread['icon'] > 0 && $icon_cache[$thread['icon']])
{
$icon = $icon_cache[$thread['icon']];
$icon = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />";
}
else
{
$icon = " ";
}
Das hab ich jetzt eben schnell zusammen kopiert. Sollte aber gehen.
RE: Wünsche ein verbesserstes Portal - aman - 18.09.2007
bevor ich diesen code eingebe, kann man ein beispiel sehen wie das aussieht in einem Forum??
PS:
wie kann man weitere kästen integrieren wo man z.b Wetterbox, die neuesten User, eine Uhr und z.b ein feld machen kann wo automatisch neue news kommen per ticker...
RE: Wünsche ein verbesserstes Portal - Mak - 18.09.2007
Einfach per HTML ins Template portal einfügen.
RE: Wünsche ein verbesserstes Portal - morlock - 18.09.2007
aman schrieb:bevor ich diesen code eingebe, kann man ein beispiel sehen wie das aussieht in einem Forum??
Oben habe ich einen Anhang gepostet in dem du siehst, wie die Letzte-Beitragübersicht dann aufgebaut ist.
RE: Wünsche ein verbesserstes Portal - aman - 18.09.2007
hat leider nicht geklappt mit der portal.änderung
habe diese fehlermeldung
Parse error: syntax error, unexpected T_VARIABLE in /var/www/web214/html/portal.php on line 347
aber die änderungen im admin menü haben funktioniert, durch das ersetzen..
sehe diesen Link
http://www.tunisdeluxe.de/portal.php Hier der PHP Scrip
PHP-Code: <?php /** * MyBB 1.2 * Copyright © 2006 MyBB Group, All Rights Reserved * * Website: http://www.mybboard.net * License: http://www.mybboard.net/eula.html * * $Id: portal.php 3093 2007-05-27 07:07:46Z dennis $ */
define("IN_MYBB", 1);
// set the path to your forums directory here (without trailing slash) $forumdir = "./";
// end editing
$change_dir = "./";
if(!@chdir($forumdir) && !empty($forumdir)) { if(@is_dir($forumdir)) { $change_dir = $forumdir; } else { die("\$forumdir is invalid!"); } }
$templatelist = "portal_welcome,portal_welcome_membertext,portal_stats,portal_search,portal_whosonline_memberbit,portal_whosonline,portal_latestthreads_thread_lastpost,portal_latestthreads_thread,portal_latestthreads,portal_announcement_numcomments_no,portal_announcement,portal_announcement_numcomments,portal";
require_once $change_dir."global.php"; require_once MYBB_ROOT."inc/functions_post.php"; require_once MYBB_ROOT."inc/functions_user.php"; require_once MYBB_ROOT."inc/class_parser.php"; $parser = new postParser;
global $theme, $templates;
// Fetch the current URL $portal_url = get_current_location();
// Load global language phrases $lang->load("portal");
add_breadcrumb($lang->nav_portal, "portal.php");
// This allows users to login if the portal is stored offsite or in a different directory if($mybb->input['action'] == "do_login" && $mybb->request_method == "post") { $plugins->run_hooks("portal_do_login_start");
//Checks to make sure the user can login; they haven't had too many tries at logging in. //Is a fatal call if user has had too many tries $logins = login_attempt_check(); $login_text = '';
if(!username_exists($mybb->input['username'])) { my_setcookie('loginattempts', $logins + 1); $db->query("UPDATE ".TABLE_PREFIX."sessions SET loginattempts=loginattempts+1 WHERE sid = '{$session->sid}'"); if($mybb->settings['failedlogintext'] == "yes") { $login_text = sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins); } error($lang->error_invalidusername.$login_text); } $user = validate_password_from_username($mybb->input['username'], $mybb->input['password']); if(!$user['uid']) { my_setcookie('loginattempts', $logins + 1); $db->query("UPDATE ".TABLE_PREFIX."sessions SET loginattempts=loginattempts+1 WHERE sid = '{$session->sid}'"); if($mybb->settings['failedlogintext'] == "yes") { $login_text = sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins); } error($lang->error_invalidpassword.$login_text); }
my_setcookie('loginattempts', 1); $db->delete_query(TABLE_PREFIX."sessions", "ip='".$db->escape_string($session->ipaddress)."' AND sid != '".$session->sid."'"); $newsession = array( "uid" => $user['uid'], "loginattempts" => 1, ); $db->update_query(TABLE_PREFIX."sessions", $newsession, "sid='".$session->sid."'");
// Temporarily set the cookie remember option for the login cookies $mybb->user['remember'] = $user['remember'];
my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true); my_setcookie("sid", $session->sid, -1, true);
if(function_exists("loggedIn")) { loggedIn($user['uid']); }
$plugins->run_hooks("portal_do_login_end");
redirect("portal.php", $lang->redirect_loggedin); }
$plugins->run_hooks("portal_start");
// First validate announcement fids: $mybb->settings['portal_announcementsfid'] = explode(',', $mybb->settings['portal_announcementsfid']); if(is_array($mybb->settings['portal_announcementsfid'])) { foreach($mybb->settings['portal_announcementsfid'] as $fid) { $fid_array[] = intval($fid); } $mybb->settings['portal_announcementsfid'] = implode(',', $fid_array); }
// get forums user cannot view $unviewable = get_unviewable_forums(); if($unviewable) { $unviewwhere = " AND fid NOT IN ($unviewable)"; } // If user is known, welcome them if($mybb->settings['portal_showwelcome'] != "no") { if($mybb->user['uid'] != 0) { if($mybb->user['receivepms'] != "no" && $mybb->usergroup['canusepms'] != "no" && $mybb->settings['portal_showpms'] != "no" && $mybb->settings['enablepms'] != "no") { $query = $db->simple_select(TABLE_PREFIX."privatemessages", "COUNT(*) AS pms_total, SUM(IF(dateline>'".$mybb->user['lastvisit']."' AND folder='1','1','0')) AS pms_new, SUM(IF(status='0' AND folder='1','1','0')) AS pms_unread", "uid='".$mybb->user['uid']."'"); $messages = $db->fetch_array($query); if(!$messages['pms_new']) { $messages['pms_new'] = 0; } // the SUM() thing returns "" instead of 0 if($messages['pms_unread'] == "") { $messages['pms_unread'] = 0; } $lang->pms_received_new = sprintf($lang->pms_received_new, $mybb->user['username'], $messages['pms_new']); eval("\$pms = \"".$templates->get("portal_pms")."\";"); } // get number of new posts, threads, announcements $query = $db->simple_select(TABLE_PREFIX."posts", "COUNT(pid) AS newposts", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newposts = $db->fetch_field($query, "newposts"); if($newposts) { // if there aren't any new posts, there is no point in wasting two more queries $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newthreads", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newthreads = $db->fetch_field($query, "newthreads"); $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newann", "dateline>'".$mybb->user['lastvisit']."' AND fid IN (".$mybb->settings['portal_announcementsfid'].") $unviewwhere"); $newann = $db->fetch_field($query, "newann"); if(!$newthreads) { $newthreads = 0; } if(!$newann) { $newann = 0; } } else { $newposts = 0; $newthreads = 0; $newann = 0; }
// Make the text if($newann == 1) { $lang->new_announcements = $lang->new_announcement; } else { $lang->new_announcements = sprintf($lang->new_announcements, $newann); } if($newthreads == 1) { $lang->new_threads = $lang->new_thread; } else { $lang->new_threads = sprintf($lang->new_threads, $newthreads); } if($newposts == 1) { $lang->new_posts = $lang->new_post; } else { $lang->new_posts = sprintf($lang->new_posts, $newposts); } eval("\$welcometext = \"".$templates->get("portal_welcome_membertext")."\";");
} else { $lang->guest_welcome_registration = sprintf($lang->guest_welcome_registration, $mybb->settings['bburl'] . '/member.php?action=register'); $mybb->user['username'] = $lang->guest; eval("\$welcometext = \"".$templates->get("portal_welcome_guesttext")."\";"); } $lang->welcome = sprintf($lang->welcome, $mybb->user['username']); eval("\$welcome = \"".$templates->get("portal_welcome")."\";"); if($mybb->user['uid'] == 0) { $mybb->user['username'] = ""; } } // Get Forum Statistics if($mybb->settings['portal_showstats'] != "no") { $stats = $cache->read("stats"); $stats['numthreads'] = my_number_format($stats['numthreads']); $stats['numposts'] = my_number_format($stats['numposts']); $stats['numusers'] = my_number_format($stats['numusers']); if(!$stats['lastusername']) { $newestmember = "<b>" . $lang->no_one . "</b>"; } else { $newestmember = build_profile_link($stats['lastusername'], $stats['lastuid']); } eval("\$stats = \"".$templates->get("portal_stats")."\";"); } // Search box if($mybb->settings['portal_showsearch'] != "no") { eval("\$search = \"".$templates->get("portal_search")."\";"); } // Get the online users if($mybb->settings['portal_showwol'] != "no") { $timesearch = time() - $mybb->settings['wolcutoff']; $comma = ''; $guestcount = 0; $membercount = 0; $onlinemembers = ''; $query = $db->query(" SELECT s.sid, s.ip, s.uid, s.time, s.location, u.username, u.invisible, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."sessions s LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid) WHERE s.time>'$timesearch' ORDER BY u.username ASC, s.time DESC "); while($user = $db->fetch_array($query)) { // Create a key to test if this user is a search bot. $botkey = strtolower(str_replace("bot=", '', $user['sid'])); if($user['uid'] == "0") { ++$guestcount; } elseif(strpos($user['sid'], "bot=") !== false && $session->bots[$botkey]) { // The user is a search bot. $onlinemembers .= $comma.format_name($session->bots[$botkey], $session->botgroup); $comma = ", "; ++$botcount; } else { if($doneusers[$user['uid']] < $user['time'] || !$doneusers[$user['uid']]) { $doneusers[$user['uid']] = $user['time']; // If the user is logged in anonymously, update the count for that. if($user['invisible'] == "yes") { ++$anoncount; } else { ++$membercount; } if($user['invisible'] == "yes") { $invisiblemark = "*"; } else { $invisiblemark = ''; } if(($user['invisible'] == "yes" && ($mybb->usergroup['canviewwolinvis'] == "yes" || $user['uid'] == $mybb->user['uid'])) || $user['invisible'] != "yes") { $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); $user['profilelink'] = get_profile_link($user['uid']); eval("\$onlinemembers .= \"".$templates->get("portal_whosonline_memberbit", 1, 0)."\";"); $comma = ", "; } } } } $onlinecount = $membercount + $guestcount + $botcount; // If we can see invisible users add them to the count if($mybb->usergroup['canviewwolinvis'] == "yes") { $onlinecount += $anoncount; } // If we can't see invisible users but the user is an invisible user incriment the count by one if($mybb->usergroup['canviewwolinvis'] != "yes" && $mybb->user['invisible'] == "yes") { ++$onlinecount; }
// Most users online $mostonline = $cache->read("mostonline"); if($onlinecount > $mostonline['numusers']) { $time = time(); $mostonline['numusers'] = $onlinecount; $mostonline['time'] = $time; $cache->update("mostonline", $mostonline); } $recordcount = $mostonline['numusers']; $recorddate = my_date($mybb->settings['dateformat'], $mostonline['time']); $recordtime = my_date($mybb->settings['timeformat'], $mostonline['time']);
$lang->online_users = sprintf($lang->online_users, $onlinecount); $lang->online_counts = sprintf($lang->online_counts, $membercount, $guestcount); eval("\$whosonline = \"".$templates->get("portal_whosonline")."\";"); }
// Latest forum discussions if($mybb->settings['portal_showdiscussions'] != "no" && $mybb->settings['portal_showdiscussionsnum']) { $altbg = alt_trow(); $threadlist = ''; $query = $db->query(" SELECT t.*, u.username, f.name, t.dateline AS firstpostdate, t.username AS threadusername FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%' ORDER BY t.lastpost DESC LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum']//copied from announcement code $icon_cache = $cache->read("posticons"); ); while($thread = $db->fetch_array($query)) { $lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']); $lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']); $firstpostdate = my_date($mybb->settings['dateformat'], $thread['firstpostdate']); $firstposttime = my_date($mybb->settings['timeformat'], $thread['firstpostdate']); $forumname = $thread['name']; //Don't link to guest's profiles (they have no profile). Thread starter if($thread['uid'] == 0) { $firstposterlink = htmlspecialchars_uni($thread['threadusername']); } else { $firstposterlink = build_profile_link($thread['threadusername'], $thread['uid']); } //copied from announcement code if($thread['icon'] > 0 && $icon_cache[$thread['icon']]) { $icon = $icon_cache[$thread['icon']]; $icon = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />"; } else { $icon = " "; } // Don't link to guest's profiles (they have no profile). if($thread['lastposteruid'] == 0) { $lastposterlink = $thread['lastposter']; } else { $lastposterlink = build_profile_link($thread['lastposter'], $thread['lastposteruid']); } if(my_strlen($thread['subject']) > 25) { $thread['subject'] = my_substr($thread['subject'], 0, 25) . "..."; } $thread['subject'] = htmlspecialchars_uni($thread['subject']); eval("\$threadlist .= \"".$templates->get("portal_latestthreads_thread")."\";"); $altbg = alt_trow(); } if($threadlist) { // show the table only if there are threads eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";"); } } // Latest forum discussions from an subforum $specialfid = ''; // Which fid you want to show; only give one number if($mybb->settings['portal_showdiscussions'] != "no" && $mybb->settings['portal_showdiscussionsnum']) { $altbg = "trow1"; $threadlist = ''; $query = $db->query(" SELECT t.*, u.username FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND fid='".$specialfid."' ORDER BY t.lastpost DESC LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum'] ); while($thread = $db->fetch_array($query)) { $lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']); $lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']); // Don't link to guest's profiles (they have no profile). if($thread['lastposteruid'] == 0) { $lastposterlink = $thread['lastposter']; } else { $lastposterlink = build_profile_link($thread['lastposter'], $thread['lastposteruid']); } if(my_strlen($thread['subject']) > 25) { $thread['subject'] = my_substr($thread['subject'], 0, 25) . "..."; } $thread['subject'] = htmlspecialchars_uni($thread['subject']); eval("\$threadlist .= \"".$templates->get("portal_latestthreadssub_thread")."\";"); $altbg = alt_trow(); } if($threadlist) { // show the table only if there are threads eval("\$latestthreadssub = \"".$templates->get("portal_latestthreadssub")."\";"); } }
// Get latest news announcements $query = $db->simple_select(TABLE_PREFIX."forums", "*", "fid IN (".$mybb->settings['portal_announcementsfid'].")"); while($forumrow = $db->fetch_array($query)) { $forum[$forumrow['fid']] = $forumrow; }
$pids = ''; $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 (".$mybb->settings['portal_announcementsfid'].") 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]'"; $posts[$getid['tid']] = $getid; } $pids = "pid IN(0$pids)"; // Now lets fetch all of the attachments for these posts $query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE $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 FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = t.uid) WHERE fid IN (".$mybb->settings['portal_announcementsfid'].") AND t.visible='1' AND t.closed NOT LIKE 'moved|%' ORDER BY t.dateline DESC LIMIT 0, ".$mybb->settings['portal_numannouncements'] ); while($announcement = $db->fetch_array($query)) { $announcement['message'] = $posts[$announcement['tid']]['message']; $announcement['pid'] = $posts[$announcement['tid']]['pid']; $announcement['author'] = $announcement['uid']; if(!$announcement['username']) { $announcement['username'] = $announcement['threadusername']; } $announcement['subject'] = htmlspecialchars_uni($announcement['subject']); if($announcement['icon'] > 0 && $icon_cache[$announcement['icon']]) { $icon = $icon_cache[$announcement['icon']]; $icon = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />"; } else { $icon = " "; } if($announcement['avatar'] != '') { $avatar_dimensions = explode("|", $announcement['avatardimensions']); if($avatar_dimensions[0] && $avatar_dimensions[1]) { $avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\""; } $avatar = "<td class=\"trow1\" width=\"1\" align=\"center\" valign=\"top\"><img src=\"$announcement[avatar]\" alt=\"0\" {$avatar_width_height} /></td>"; } else { $avatar = ''; } $anndate = my_date($mybb->settings['dateformat'], $announcement['dateline']); $anntime = my_date($mybb->settings['timeformat'], $announcement['dateline']);
if($announcement['replies']) { eval("\$numcomments = \"".$templates->get("portal_announcement_numcomments")."\";"); } else { eval("\$numcomments = \"".$templates->get("portal_announcement_numcomments_no")."\";"); $lastcomment = ''; } $plugins->run_hooks("portal_announcement");
$parser_options = array( "allow_html" => $forum[$announcement['fid']]['allowhtml'], "allow_mycode" => $forum[$announcement['fid']]['allowmycode'], "allow_smilies" => $forum[$announcement['fid']]['allowsmilies'], "allow_imgcode" => $forum[$announcement['fid']]['allowimgcode'] ); if($announcement['smilieoff'] == "yes") { $parser_options['allow_smilies'] = "no"; }
$message = $parser->parse_message($announcement['message'], $parser_options); if(is_array($attachcache[$announcement['pid']])) { // This post has 1 or more attachments $validationcount = 0; $id = $announcement['pid']; foreach($attachcache[$id] as $aid => $attachment) { if($attachment['visible']) { // There is an attachment thats visible! $attachment['name'] = htmlspecialchars_uni($attachment['name']); $attachment['filesize'] = get_friendly_size($attachment['filesize']); $ext = get_extension($attachment['filename']); if($ext == "jpeg" || $ext == "gif" || $ext == "bmp" || $ext == "png" || $ext == "jpg") { $isimage = true; } else { $isimage = false; } $attachment['icon'] = get_attachment_icon($ext); // Support for [attachment=id] code if(stripos($message, "[attachment=".$attachment['aid']."]") !== false) { if($attachment['thumbnail'] != "SMALL" && $attachment['thumbnail'] != '') { // We have a thumbnail to show (and its not the "SMALL" enough image eval("\$attbit = \"".$templates->get("postbit_attachments_thumbnails_thumbnail")."\";"); } elseif($attachment['thumbnail'] == "SMALL" && $forumpermissions[$announcement['fid']]['candlattachments'] == "yes") { // Image is small enough to show - no thumbnail eval("\$attbit = \"".$templates->get("postbit_attachments_images_image")."\";"); } else { // Show standard link to attachment eval("\$attbit = \"".$templates->get("postbit_attachments_attachment")."\";"); } $message = preg_replace("#\[attachment=".$attachment['aid']."]#si", $attbit, $message); } else { if($attachment['thumbnail'] != "SMALL" && $attachment['thumbnail'] != '') { // We have a thumbnail to show eval("\$post['thumblist'] .= \"".$templates->get("postbit_attachments_thumbnails_thumbnail")."\";"); if($tcount == 5) { $thumblist .= "<br />"; $tcount = 0; } $tcount++; } elseif($attachment['thumbnail'] == "SMALL" && $forumpermissions[$announcement['fid']]['candlattachments'] == "yes") { // Image is small enough to show - no thumbnail eval("\$post['imagelist'] .= \"".$templates->get("postbit_attachments_images_image")."\";"); } else { eval("\$post['attachmentlist'] .= \"".$templates->get("postbit_attachments_attachment")."\";"); } } } else { $validationcount++; } } if($post['thumblist']) { eval("\$post['attachedthumbs'] = \"".$templates->get("postbit_attachments_thumbnails")."\";"); } if($post['imagelist']) { eval("\$post['attachedimages'] = \"".$templates->get("postbit_attachments_images")."\";"); } if($post['attachmentlist'] || $post['thumblist'] || $post['imagelist']) { eval("\$post['attachments'] = \"".$templates->get("postbit_attachments")."\";"); } }
eval("\$announcements .= \"".$templates->get("portal_announcement")."\";"); unset($post); } eval("\$portal = \"".$templates->get("portal")."\";");
$plugins->run_hooks("portal_end");
output_page($portal);
?>
|