MyBB.de Forum

Normale Version: Wünsche ein verbesserstes Portal
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
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...
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 Smile

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!
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 =) )
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
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 wurdeWink
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 Smile

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 = "&nbsp;";
        }


Das hab ich jetzt eben schnell zusammen kopiert. Sollte aber gehen.
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...
Einfach per HTML ins Template portal einfügen.
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.
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'], nulltrue);
    
my_setcookie("sid"$session->sid, -1true);

    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"10)."\";");
                    
$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'] > && $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'], 025) . "...";
        }
        
$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'], 025) . "...";
        }
        
$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'] > && $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);

?>
Seiten: 1 2 3 4 5 6