Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
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
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
(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.
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
Achso ... :-)
Hauptsächlich betrifft es:
Beitrag 5
Beitrag 17
Beitrag 24
Beitrag 41
LG
hoerbartina
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
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'] != 0 && $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'], 0, 40) . "..."; } $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'], 0, 40) . "..."; } $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'], 0, 40) . "..."; } $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
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
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
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
Pardon, wenn ich noch mal nachhake - keiner eine Idee?
Liebe Grüße
Tina
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
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.
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
24.06.2012, 02:50
(Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2012, 02:53 von hoerbartina.)
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']))."'", 1, true); 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, -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");
// 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'] != 0 && $mybb->user['receivepms'] != 0 && $mybb->usergroup['canusepms'] != 0 && $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'] != 0 && $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'] == 1 && ($mybb->usergroup['canviewwolinvis'] == 1 || $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", 1, 0)."\";"); $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'] != 1 && $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'] != 0 && $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'], 0, 40) . "..."; } $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'], 0, 40) . "..."; } $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'], 0, 40) . "..."; } $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'] > 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]}\""; } 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
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
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']);
Beiträge: 40
Themen: 5
Registriert seit: 10.06.2012
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!-- start: portal_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
|