MyBB.de Forum
Die letzen Beiträge?! - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Theme-Diskussionen (https://www.mybb.de/forum/forum-84.html)
+--- Thema: Die letzen Beiträge?! (/thread-5343.html)

Seiten: Seiten: 1 2 3 4 5 6 7 8


RE: Die letzen Beiträge?! - StefanT - 30.05.2009

Das ist sehr aufwendig.


RE: Die letzen Beiträge?! - Cindepall - 30.05.2009

Schade, na ja, dann lass ichs halt erstmal so.


RE: Die letzen Beiträge?! - modercol - 04.07.2009

(30.06.2007, 08:53)Jan schrieb: Sebastian,

dazu muss in der "/portal.php" nach
PHP-Code:
    if($threadlist)
    { 
// show the table only if there are threads
        
eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";");
    }

folgender PHP Code eingefügt werden:
PHP-Code:
// 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")."\";");
    }


[...]
Ist es möglich diesen Code in die showthread.php einzubauen?
Ich habe bereits diesen Code übernommen, nur wird nichts angezeigt, welche Codeabschnitte müssen noch übernommen werden, damit dies funkioniert?


RE: Die letzen Beiträge?! - sportwettentalk - 29.09.2009

(30.06.2007, 08:53)Jan schrieb: Sebastian,

dazu muss in der "/portal.php" nach
PHP-Code:
    if($threadlist)
    { 
// show the table only if there are threads
        
eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";");
    }

folgender PHP Code eingefügt werden:
PHP-Code:
// 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")."\";");
    }


Erstelle ein Template mit dem Namen "portal_latestthreadssub" und folgendem Inhalt
Code:
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="4"><strong>{$lang->latest_threads}</strong></td>
</tr><tr><td class="tcat" width="40%" align="center">Thema</td><td class="tcat" width="20%" align="center">Ansichten</td><td class="tcat" width="20%" align="center">Antworten</td><td class="tcat" width="20%" align="center">Letzter Beitrag</td></tr>
{$threadlist}
</table>
<br />

Erstelle ein weiteres Template mit dem Namen "portal_latestthreadssub_thread" und folgendem Inhalt
Code:
<tr>
<td class="trow1" align="center">
<strong><a href="{$mybb->settings['bburl']}/showthread.php?tid={$thread['tid']}">{$thread['subject']}</a></strong>
</td><td class="trow2" align="center">{$thread['views']}</td><td class="trow1" align="center">{$thread['replies']}</td><td class="trow2" align="center">
von {$lastposterlink}<br />
{$lastpostdate} {$lastposttime}
</td>
</tr>

Im Template "portal" kannst du jetzt die Variable "{$latestthreadssub}" an die Stelle setzten, an der du die Threads haben möchtest.

Tut mir leid das es etwas länger gedauert hat, aber ich hab auch nen Privatleben und noch andere Projekte.

Mal eine Frage zu diesem Vorgang. Wenn ich dieses neue template in der adminoberfläche erstelle. Wo genau füge ich dann diesen Code ein?


RE: Die letzen Beiträge?! - Michael - 29.09.2009

Wenn du im ACP ein neues Template erstellst, gibt es ein Formularfeld für den Code: ACP: Templates & Style -> Templates -> Template hinzufügen.


RE: Die letzen Beiträge?! - Ne-Jeck - 15.12.2009

Hallo zusammen,

also ich habe mich hier an die Vorgaben gehalten und es hat wunderbar funktioniert mit der Aufteilung: mein Portal

Jetzt habe ich noch 2 Fragen:

1)Wie kriege ich es hin, dass sich ungelesene Beiträge in der Ansicht beim Portal deutlich von bereits gelesenen unterscheiden? Bisher sieht man da leider keinen Unterschied... (vielleicht als erste Spalte der Tabelle die Buttons ungelesen/gelesen?)

2) Ist es immer so schwierig/aufwändig, bei noch ungelesenen Beiträgen einen Pfeil als Link einzufügen, womit man direkt zum letzten Beitrag springt? Bisher landet man ja nur beim ersten Post des Themas

Bei Bedarf kann ich gerne auch die Codes meiner Portal templates posten.

Vielen Dank


RE: Die letzen Beiträge?! - StefanT - 15.12.2009

Das, was gelesen ist, kann man nur mit aufwendigem Code erkennen.


RE: Die letzen Beiträge?! - RhymeFront - 17.12.2009

Hi,

Ist es möglich aus der "Letzten Beiträge Box" die Subforen auszuschließen für die man eine extra Box macht `?


RE: Die letzen Beiträge?! - Michael - 17.12.2009

Ja, du kannst die Datenbankabfrage entsprechend ändern. Wie sieht diese aktuell bei dir aus?


RE: Die letzen Beiträge?! - RhymeFront - 17.12.2009

PHP-Code:
// Latest forum discussions
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|%'
                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'], 075) . "...";
                }
                
$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_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
 // Which fid you want to show; only give one number
$specialfid '15';
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']);
          
$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")."\";");
    }
}


     
// Latest forum discussions from an subforum
 // Which fid you want to show; only give one number
$specialfid '19';
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']);
          
$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")."\";");
    }


Habe eben ein weiteres Subforum einfügen wollen da gab es folgende Fehlermeldung:
Zitat:Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 4497326 bytes) in /home/vhosts/5000138286/diehoerbar.net/htdocs/forum/portal.php(650) : eval()'d code on line 14

Zeile 650 ist:
PHP-Code:
eval("\$threadlist .= \"".$templates->get("portal_latestthreadssub_thread3")."\";"); 

Danke Smile