Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Die letzen Beiträge?!
#61
Hallo,
jetzt verstehe ich Deine Frage nicht...

Mir geht es darum - hab ich vielleicht missverständlich geschrieben - , dass ich im Portal 3 Boxen der Art "Letzte Beiträge" habe, als Gast ist die interna-Box nicht sichtbar, also oben im screenshot sind es zwei Boxen. Diese thematisch getrennten Boxen dienen dazu, dass wichtige Themen besser getrennt werden von weniger wichtigen, damit sie länger im Portal sichtbar sind und nicht von den "lapidaren" immer wieder aus dem Portal geschoben werden.

In der ersten Box sieht man die Namen der Foren, aus denen die letzten Beiträge stammen.
In der zweiten Box sieht man die Namen der Foren nicht. Entweder gibt es einen Link der Form "<" mit Unterstrich oder eine leere Fläche.
Und das, obwohl die templates portal_latestthreads_thread und portal_latestthreadssub_thread denselben oben angegebenen Inhalt haben...

Ich vermutete, dass ev im Template portal_latestthreadssub_thread für die zweite Box in der Zeile
PHP-Code:
<span class="smalltext"><a href="{$mybb->settings['bburl']}/forumdisplay.php?fid={$thread['fid']}">{$latestthreads['forum']}</a
etwas verändert werden müsste, damit auch da der Namen des Forums erscheint, aus dem das Thema stammt.

Danke für die Mühe im voraus.
Liebe Grüße
hoerbartina
Zitieren
#62
(16.06.2012, 10:44)Jockl schrieb: Welche Beiträge hast Du denn genau verwendet, um das umzusetzen?
Meine Frage bezog sich auf diesen Satz:
(12.06.2012, 19:36)hoerbartina schrieb: jetzt ist es mir bis hierhin gelungen, aus diesem Thread wichtige Änderungen herauszunehmen.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#63
Achso ... :-)

Hauptsächlich betrifft es:
Beitrag 5
Beitrag 17
Beitrag 24
Beitrag 41

LG
hoerbartina
Zitieren
#64
Jetzt habe ich mal in die portal.php geschaut und dort Unterschiede festgestellt (abgesehen von den betreffenden Templatenamen...)

Habe versucht, den code für die Unterforen entsprechend des Codes für die erste "Letzte-beiträge-Box" zu ändern.

Ergebnis ist komisch... :-)
Als Gast und "normaler User" sieht man es, wie es sich gehört, die Namen der Foren werden in allen Boxen angezeigt - soweit Hurra!
Über der ersten Box steht "Array"...

Aber als Admin oder VIP oder Moderator beispielsweise sehe ich nur die Anfangsbuchstaben des jeweiligen Forumnamens, aber den richtigen Link dazu. Und:
Über der ersten Box steht:
Zitat:C!-- start: portal_latestthreads -->

Sind da jetzt weitere Änderungen in der portal.php notwendig... *grübel

Ich setze mal hier den php-Code der portal.php für die einzelnen Portal-Letzte-Beiträge-Boxen rein, damit die Experten sofort den "Fehler" entdecken können. :-)

Letzte Beiträge Kategorie Interna/VIP (nur für Admins, Mods und VIPs sichtbar)
PHP-Code:
// Latest forum discussions - Interna - VIP
if($mybb->settings['portal_showdiscussions'] != && $mybb->settings['portal_showdiscussionsnum'])
{
        
$altbg alt_trow();
        
$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 t.fid IN (36,37,38,39,41,42,43,44,45,46,47,48,49)
    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']) > 40)
                {
                        
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
                }
                
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
                
$thread['threadlink'] = get_thread_link($thread['tid']);
  if(!
is_array($forum_cache))
{
    
cache_forums();
}
$latestthreads['forum'] = htmlspecialchars_uni($forum_cache[$thread['fid']]['name']);
$threadstarter build_profile_link($thread['username'], $thread['uid']);
                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")."\";");
        }


Letzte Beiträge Kategorie Die wichtigsten Infos... (Box 2 für alle sichtbar)
PHP-Code:
// Latest forum discussions from an subforum - die wichtigsten Infos zu Hoerbar und Sendungen
$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 t.fid IN (3,4,5,6,8,9,10,11,12,13,14,15,16,17)
        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']) > 40)
        {
            
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
        }
        
$thread['subject'] = htmlspecialchars_uni($thread['subject']);
                                
                                
$thread['threadlink'] = get_thread_link($thread['tid']);
  if(!
is_array($forum_cache))
{
     
cache_forums();
}
$latestthreads['forum'] = htmlspecialchars_uni($forum_cache[$thread['fid']]['name']);
$threadstarter build_profile_link($thread['username'], $thread['uid']);
        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")."\";");
    }


Letzte Beiträge Kategorie Cafe Marina (für alle sichtbar)
PHP-Code:
// Latest forum discussions from an subforum - cafe marina
$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 t.fid IN (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34)
        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']) > 40)
        {
            
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
        }
        
$thread['subject'] = htmlspecialchars_uni($thread['subject']);
                                
$thread['threadlink'] = get_thread_link($thread['tid']);
  if(!
is_array($forum_cache))
{
    
cache_forums();
}
$latestthreads['forum'] = htmlspecialchars_uni($forum_cache[$thread['fid']]['name']);
$threadstarter build_profile_link($thread['username'], $thread['uid']);
        eval(
"\$threadlist .= \"".$templates->get("portal_latestthreadssub_thread2")."\";");
        
$altbg alt_trow();
    }
    if(
$threadlist)
    { 
// show the table only if there are threads
        
eval("\$latestthreadssub2 = \"".$templates->get("portal_latestthreadssub2")."\";");
    }


Warum die letzte Box so weit weg von der mittleren grade steht, entzieht sich meiner Kenntnis... (siehe Screenshot - die Sicht als Admin, da, wo also nur die Anfangsbuchstaben der Foren zu sehen sind)

Und woher das "{atchgallery} " links oben unter Portal kommt, weiß ich auch nicht... (siehe unteren Link).
Dieses "{atchgallery} " zeigt sich auch in der Forenansicht.

Die HörBar

Liebe Grüße und Dank im voraus für Tipps.
hoerbartina
Zitieren
#65
Da kein "edit" mehr möglich ist, muss ich halt nen neuen Beitrag schreiben.

Das Problemchen {atchgallery} habe ich lösen können...
Plugin war nicht kompatibel mit 1.6
Zitieren
#66
Pardon, wenn ich noch mal nachhake - keiner eine Idee?

Liebe Grüße
Tina
Zitieren
#67
Ich kann das Problem leider nicht nachvollziehen. Werde mal versuchen, das in einem Testforum nach zu stellen. Mal sehen, ob dann eine Lösung für Dich raus kommt. Wink
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#68
Au fein, ich freue mich, dass Du Dich des Problems annehmen möchtest.

Ich gebe mal den derzeitigen php-Code von der portal.php...
PHP-Code:
<?php
/**
 * MyBB 1.6
 * Copyright 2010 MyBB Group, All Rights Reserved
 *
 * Website: http://mybb.com
 * License: http://mybb.com/about/license
 *
 * $Id: portal.php 5147 2010-07-30 23:18:16Z RyanGordon $
 */

define("IN_MYBB"1);
define("IN_PORTAL"1);
define('THIS_SCRIPT''portal.php');

// 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, portal_latestthreads_thread,portal_latestthreads_thread_lastpost,portal_latestthreadssub,portal_latestthreadssub_thread,portal_latestthreadssub2,portal_latestthreadssub_thread2,portal_announcement_numcomments_no,portal_announcement,portal_announcement_numcomments,portal_pms,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;

// Load global language phrases
$lang->load("portal");

// Fetch the current URL
$portal_url get_current_location();

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']))
        {
                
error($lang->error_invalidpworusername.$login_text);
        }
        
$user validate_password_from_username($mybb->input['username'], $mybb->input['password']);
        if(!
$user['uid'])
        {
                
my_setcookie('loginattempts'$logins 1);
                
$db->update_query("users", array('loginattempts' => 'loginattempts+1'), "LOWER(username) = '".$db->escape_string(my_strtolower($mybb->input['username']))."'"1true);
                if(
$mybb->settings['failedlogintext'] == 1)
                {
                        
$login_text $lang->sprintf($lang->failed_login_again$mybb->settings['failedlogincount'] - $logins);
                }
                
error($lang->error_invalidpassword.$login_text);
        }

        
my_setcookie('loginattempts'1);
        
$db->delete_query("sessions""ip='".$db->escape_string($session->ipaddress)."' AND sid != '".$session->sid."'");
        
$newsession = array(
                
"uid" => $user['uid'],
        );
        
$db->update_query("sessions"$newsession"sid='".$session->sid."'");

        
$db->update_query("users", array("loginattempts" => 1), "uid='{$mybb->user['uid']}'");

        
my_setcookie("mybbuser"$user['uid']."_".$user['loginkey'], ($mybb->input['remember'] == "yes" null 0), true);
        
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");


// get forums user cannot view
$unviewable get_unviewable_forums(true);
if(
$unviewable)
{
        
$unviewwhere " AND fid NOT IN ($unviewable)";
}
// If user is known, welcome them
if($mybb->settings['portal_showwelcome'] != 0)
{
        if(
$mybb->user['uid'] != 0)
        {
                
// Get number of new posts, threads, announcements
                
$query $db->simple_select("posts""COUNT(pid) AS newposts""visible=1 AND 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("threads""COUNT(tid) AS newthreads""visible=1 AND dateline>'".$mybb->user['lastvisit']."' $unviewwhere");
                        
$newthreads $db->fetch_field($query"newthreads");

                        
$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("threads""COUNT(tid) AS newann""visible=1 AND dateline>'".$mybb->user['lastvisit']."' AND fid IN (".$announcementsfids.") $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 $lang->sprintf($lang->new_announcements$newann);
                }
                if(
$newthreads == 1)
                {
                        
$lang->new_threads $lang->new_thread;
                }
                else
                {
                        
$lang->new_threads $lang->sprintf($lang->new_threads$newthreads);
                }
                if(
$newposts == 1)
                {
                        
$lang->new_posts $lang->new_post;
                }
                else
                {
                        
$lang->new_posts $lang->sprintf($lang->new_posts$newposts);
                }
                eval(
"\$welcometext = \"".$templates->get("portal_welcome_membertext")."\";");

        }
        else
        {
                
$lang->guest_welcome_registration $lang->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 $lang->sprintf($lang->welcome$mybb->user['username']);
        eval(
"\$welcome = \"".$templates->get("portal_welcome")."\";");
        if(
$mybb->user['uid'] == 0)
        {
                
$mybb->user['username'] = "";
        }
}
// Private messages box
if($mybb->settings['portal_showpms'] != 0)
{
        if(
$mybb->user['uid'] != && $mybb->user['receivepms'] != && $mybb->usergroup['canusepms'] != && $mybb->settings['enablepms'] != 0)
        {
                switch(
$db->type)
                {
                        case 
"sqlite":
                        case 
"pgsql":
                                
$query $db->simple_select("privatemessages""COUNT(*) AS pms_total""uid='".$mybb->user['uid']."'");
                                
$messages['pms_total'] = $db->fetch_field($query"pms_total");

                                
$query $db->simple_select("privatemessages""COUNT(*) AS pms_unread""uid='".$mybb->user['uid']."' AND CASE WHEN status = '0' AND folder = '0' THEN TRUE ELSE FALSE END");
                                
$messages['pms_unread'] = $db->fetch_field($query"pms_unread");
                                break;
                        default:
                                
$query $db->simple_select("privatemessages""COUNT(*) AS pms_total, SUM(IF(status='0' AND folder='1','1','0')) AS pms_unread""uid='".$mybb->user['uid']."'");
                                
$messages $db->fetch_array($query);
                }

                
// the SUM() thing returns "" instead of 0
                
if($messages['pms_unread'] == "")
                {
                        
$messages['pms_unread'] = 0;
                }
                
$lang->pms_received_new $lang->sprintf($lang->pms_received_new$mybb->user['username'], $messages['pms_unread']);
                eval(
"\$pms = \"".$templates->get("portal_pms")."\";");
        }
}
// Get Forum Statistics
if($mybb->settings['portal_showstats'] != 0)
{
        
$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 "<strong>" $lang->no_one "</strong>";
        }
        else
        {
                
$newestmember build_profile_link($stats['lastusername'], $stats['lastuid']);
        }
        eval(
"\$stats = \"".$templates->get("portal_stats")."\";");
}

// Search box
if($mybb->settings['portal_showsearch'] != 0)
{
        eval(
"\$search = \"".$templates->get("portal_search")."\";");
}

// Get the online users
if($mybb->settings['portal_showwol'] != && $mybb->usergroup['canviewonline'] != 0)
{
        
$timesearch TIME_NOW $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 my_strtolower(str_replace("bot="''$user['sid']));

                if(
$user['uid'] == "0")
                {
                        ++
$guestcount;
                }
                elseif(
my_strpos($user['sid'], "bot=") !== false && $session->bots[$botkey])
                {
                        
// The user is a search bot.
                        
$onlinemembers .= $comma.format_name($session->bots[$botkey], $session->botgroup);
                        
$comma $lang->comma;
                        ++
$botcount;
                }
                else
                {
                        if(
$doneusers[$user['uid']] < $user['time'] || !$doneusers[$user['uid']])
                        {
                                ++
$membercount;

                                
$doneusers[$user['uid']] = $user['time'];

                                
// If the user is logged in anonymously, update the count for that.
                                
if($user['invisible'] == 1)
                                {
                                        ++
$anoncount;
                                }

                                if(
$user['invisible'] == 1)
                                {
                                        
$invisiblemark "*";
                                }
                                else
                                {
                                        
$invisiblemark '';
                                }

                                if((
$user['invisible'] == && ($mybb->usergroup['canviewwolinvis'] == || $user['uid'] == $mybb->user['uid'])) || $user['invisible'] != 1)
                                {
                                        
$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 $lang->comma;
                                }
                        }
                }
        }

        
$onlinecount $membercount $guestcount $botcount;

        
// If we can see invisible users add them to the count
        
if($mybb->usergroup['canviewwolinvis'] == 1)
        {
                
$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'] != && $mybb->user['invisible'] == 1)
        {
                ++
$onlinecount;
        }

        
// Most users online
        
$mostonline $cache->read("mostonline");
        if(
$onlinecount $mostonline['numusers'])
        {
                
$time TIME_NOW;
                
$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']);

        if(
$onlinecount == 1)
        {
          
$lang->online_users $lang->online_user;
        }
        else
        {
          
$lang->online_users $lang->sprintf($lang->online_users$onlinecount);
        }
        
$lang->online_counts $lang->sprintf($lang->online_counts$membercount$guestcount);
        eval(
"\$whosonline = \"".$templates->get("portal_whosonline")."\";");
}

// Latest forum discussions - Interna - VIP
if($mybb->settings['portal_showdiscussions'] != && $mybb->settings['portal_showdiscussionsnum'])
{
        
$altbg alt_trow();
        
$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 t.fid IN (36,37,38,39,41,42,43,44,45,46,47,48,49)
    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']) > 40)
                {
                        
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
                }
                
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
                
$thread['threadlink'] = get_thread_link($thread['tid']);
  if(!
is_array($forum_cache))
{
    
cache_forums();
}
$latestthreads['forum'] = htmlspecialchars_uni($forum_cache[$thread['fid']]['name']);
$threadstarter build_profile_link($thread['username'], $thread['uid']);
                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 - die wichtigsten Infos zu Hoerbar und Sendungen
$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 t.fid IN (3,4,5,6,8,9,10,11,12,13,14,15,16,17)
        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']) > 40)
        {
            
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
        }
        
$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")."\";");
    }
}
// Latest forum discussions from an subforum - cafe marina
$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 t.fid IN (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34)
        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']) > 40)
        {
            
$thread['subject'] = my_substr($thread['subject'], 040) . "...";
        }
        
$thread['subject'] = htmlspecialchars_uni($thread['subject']);
                                eval(
"\$threadlist .= \"".$templates->get("portal_latestthreadssub_thread2")."\";");
        
$altbg alt_trow();
    }
    if(
$threadlist)
    { 
// show the table only if there are threads
        
eval("\$latestthreadssub2 = \"".$templates->get("portal_latestthreadssub2")."\";");
    }
}
// Get latest news announcements
// First validate announcement fids:
$announcementsfids explode(','$mybb->settings['portal_announcementsfid']);
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;
}

$pids '';
$tids '';
$comma '';
$query $db->query("
        SELECT p.pid, p.message, p.tid, p.smilieoff
        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})";
// 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, "
.$mybb->settings['portal_numannouncements']
);
while(
$announcement $db->fetch_array($query))
{
        
$announcement['message'] = $posts[$announcement['tid']]['message'];
        
$announcement['pid'] = $posts[$announcement['tid']]['pid'];
        
$announcement['smilieoff'] = $posts[$announcement['tid']]['smilieoff'];
        
$announcement['threadlink'] = get_thread_link($announcement['tid']);

        if(
$announcement['uid'] == 0)
        {
                
$profilelink htmlspecialchars_uni($announcement['threadusername']);
        }
        else
        {
                
$profilelink build_profile_link($announcement['username'], $announcement['uid']);
        }

        if(!
$announcement['username'])
        {
                
$announcement['username'] = $announcement['threadusername'];
        }
        
$announcement['subject'] = htmlspecialchars_uni($parser->parse_badwords($announcement['subject']));
        if(
$announcement['icon'] > && $icon_cache[$announcement['icon']])
        {
                
$icon $icon_cache[$announcement['icon']];
                
$icon "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />";
        }
        else
        {
                
$icon "&nbsp;";
        }
        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]}\"";
                }
                if (!
stristr($announcement['avatar'], 'http://'))
                {
                        
$announcement['avatar'] = $mybb->settings['bburl'] . '/' $announcement['avatar'];
                }
                
$avatar "<td class=\"trow1\" width=\"1\" align=\"center\" valign=\"top\"><img src=\"{$announcement['avatar']}\" alt=\"\" {$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'],
                
"allow_videocode" => $forum[$announcement['fid']]['allowvideocode'],
                
"filter_badwords" => 1
        
);
        if(
$announcement['smilieoff'] == 1)
        {
                
$parser_options['allow_smilies'] = 0;
        }

        
$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['filename'] = htmlspecialchars_uni($attachment['filename']);
                                
$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'] == 1)
                                        {
                                                
// 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'] == 1)
                                        {
                                                
// 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);
}

$plugins->run_hooks("portal_end");

eval(
"\$portal = \"".$templates->get("portal")."\";");
output_page($portal);

?>

Wie in der PN geschrieben, besteht momentan "nur" noch das Problem mit den Forennamen.

Liebe Grüße
hoerbartina

Link zum Forum: Die HörBar
Zitieren
#69
Das Problem liegt daran, dass Du nicht überall $latestthreads['forum'] definiert hast.

Diese Zeile gehen in der if-Schleife zu "// Latest forum discussions from an subforum - die wichtigsten Infos zu Hoerbar und Sendungen" ab:
PHP-Code:
if(!is_array($forum_cache))
{
   
cache_forums();
}
$latestthreads['forum'] = htmlspecialchars_uni($forum_cache[$thread['fid']]['name']); 
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#70
Hm... Du wirst lachen, das hatte ich auch schon mal probiert, weil ich entdeckt hatte, dass diese Zeilen bei den Subforen fehlen, aber dann hatte ich - wie jetzt auch wieder das hier oberhalb der ersten Box:
PHP-Code:
E!-- startportal_latestthreads --> 
Wenn ich das mit dem cache bei den subforen - auch bei nur einem wegnehme, dann ist das oberhalb der ersten box weg...

Nun ist es wieder da - ich lasse es mal paar stunden so, damit du gucken kannst.

Da ist irgendwas noch doppelt denke ich mir so, aber ich bin kein php-Freak.

Oberhalb der if-schleife steht für die erste box noch
PHP-Code:
$thread['threadlink'] = get_thread_link($thread['tid']); 
und das fehlte momentan auch bei den subforen... Ich dachte, threadlink muss ja sein, wäre sonst nicht erwähnt, ... aber auch das bringt nix, es bei den beiden unteren Subforen einzufügen.
Nun sind wieder die Anfangsbuchstaben für die Forenlinks da... :-) - immerhin...

Vielleicht darf ich Dich bitten, mir für ein Subforum den ganzen code-Abschnitt zu geben, den ich dann fürs zweite adäquat gestalten kann...? Vielleicht fehlt ja jetzt auch ne Klammer oder so was...:-)

Vielen Dank für Deine Mühe.
Hoerbartina
Zitieren