ich weiß nicht, ob es wirklich zwingend notwendig ist, die letzten Beiträge in der Mitte anzuzeigen. Du kannst es ja auch selbst erstellen. Mit ein paar HTML-Kenntnissen ist das ja alles möglich
Die Boxen kannst Du schon beliebig umstellen. Einfacher geht es nun wirklich nicht ... aber auch dazu benötigst Du HTML-Kenntnisse!
17.09.2007, 08:36 (Dieser Beitrag wurde zuletzt bearbeitet: 17.09.2007, 08:37 von morlock.)
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 =) )
Ok, ok, hier Schritt für Schritt.Ich gehe von einer mehr oder weniger jungfräulichen Installation aus.
Das ist an modercols Anleitung angelegt, also danke für deinen Beitrag modercol, ohne den hätte ich das wohl nie so hinbekommen, wie ich es aus unserem alten Forum gewohnt war
Vielleicht kann sich jemand mit Erfahrung meine Änderungen in der portal.php (Punkt 3.) anschauen, nicht dass ich da irgendetwas total fahrlässiges getan habe.
---- Alle Änderungen auf eigene Gefahr! ---- 1.) Backups des derzeitigen Themes mit Templates machen (ACP-->Themes-->Download)
2.) Bearbeiten der Templates(ACP-->Templates-->Modify/Delete---->Expand (richtige Template-Gruppe auswählen, bei einer Neuinstallation Default Templates)
2.1) portal (Portal Templates, expand -> portal)
{$latestthreads} muss hier versetzt werden. Unter {$announcement} setzen
2.2) portal_latestthreads
(Ich hab hier mal auf width-Angaben verzichtet)
Ersetze alles durch
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...
// 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 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; }
// Latest forum discussions if($mybb->settings['portal_showdiscussions'] != "no" && $mybb->settings['portal_showdiscussionsnum']) { $altbg = alt_trow(); $threadlist = ''; $query = $db->query(" SELECT t.*, u.username, f.name, t.dateline AS firstpostdate, t.username AS threadusername FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%' ORDER BY t.lastpost DESC LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum']//copied from announcement code $icon_cache = $cache->read("posticons"); ); while($thread = $db->fetch_array($query)) { $lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']); $lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']); $firstpostdate = my_date($mybb->settings['dateformat'], $thread['firstpostdate']); $firstposttime = my_date($mybb->settings['timeformat'], $thread['firstpostdate']); $forumname = $thread['name']; //Don't link to guest's profiles (they have no profile). Thread starter if($thread['uid'] == 0) { $firstposterlink = htmlspecialchars_uni($thread['threadusername']); } else { $firstposterlink = build_profile_link($thread['threadusername'], $thread['uid']); } //copied from announcement code if($thread['icon'] > 0 && $icon_cache[$thread['icon']]) { $icon = $icon_cache[$thread['icon']]; $icon = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />"; } else { $icon = " "; } // Don't link to guest's profiles (they have no profile). if($thread['lastposteruid'] == 0) { $lastposterlink = $thread['lastposter']; } else { $lastposterlink = build_profile_link($thread['lastposter'], $thread['lastposteruid']); } if(my_strlen($thread['subject']) > 25) { $thread['subject'] = my_substr($thread['subject'], 0, 25) . "..."; } $thread['subject'] = htmlspecialchars_uni($thread['subject']); eval("\$threadlist .= \"".$templates->get("portal_latestthreads_thread")."\";"); $altbg = alt_trow(); } if($threadlist) { // show the table only if there are threads eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";"); } } // Latest forum discussions from an subforum $specialfid = ''; // Which fid you want to show; only give one number if($mybb->settings['portal_showdiscussions'] != "no" && $mybb->settings['portal_showdiscussionsnum']) { $altbg = "trow1"; $threadlist = ''; $query = $db->query(" SELECT t.*, u.username FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND fid='".$specialfid."' ORDER BY t.lastpost DESC LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum'] ); while($thread = $db->fetch_array($query)) { $lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']); $lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']); // Don't link to guest's profiles (they have no profile). if($thread['lastposteruid'] == 0) { $lastposterlink = $thread['lastposter']; } else { $lastposterlink = build_profile_link($thread['lastposter'], $thread['lastposteruid']); } if(my_strlen($thread['subject']) > 25) { $thread['subject'] = my_substr($thread['subject'], 0, 25) . "..."; } $thread['subject'] = htmlspecialchars_uni($thread['subject']); eval("\$threadlist .= \"".$templates->get("portal_latestthreadssub_thread")."\";"); $altbg = alt_trow(); } if($threadlist) { // show the table only if there are threads eval("\$latestthreadssub = \"".$templates->get("portal_latestthreadssub")."\";"); } }
// Get latest news announcements $query = $db->simple_select(TABLE_PREFIX."forums", "*", "fid IN (".$mybb->settings['portal_announcementsfid'].")"); while($forumrow = $db->fetch_array($query)) { $forum[$forumrow['fid']] = $forumrow; }
$pids = ''; $comma=""; $query = $db->query(" SELECT p.pid, p.message, p.tid FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid) WHERE t.fid IN (".$mybb->settings['portal_announcementsfid'].") AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND t.firstpost=p.pid ORDER BY t.dateline DESC LIMIT 0, ".$mybb->settings['portal_numannouncements'] ); while($getid = $db->fetch_array($query)) { $pids .= ",'$getid[pid]'"; $posts[$getid['tid']] = $getid; } $pids = "pid IN(0$pids)"; // Now lets fetch all of the attachments for these posts $query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE $pids"); while($attachment = $db->fetch_array($query)) { $attachcache[$attachment['pid']][$attachment['aid']] = $attachment; }