MyBB.de Forum
Gäste sollen zum Login geleitet werden. - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.6.x (https://www.mybb.de/forum/forum-58.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-59.html)
+---- Thema: Gäste sollen zum Login geleitet werden. (/thread-30146.html)

Seiten: Seiten: 1 2


RE: Gäste sollen zum Login geleitet werden. - MrBrechreiz - 03.08.2014

Ohne Codeänderung wird dies nicht möglich sein.

Aber mit einen kleinen Trick via CSS geht es Teilweise.



Die Gastgruppe sollte nun folgende Berechtigung für ein Forum besitzen:

Sehen:

Kann Forum sehen = ja
Kann Themen im Forum lesen = ja

Verschiedenes:

Kann Forum durchsuchen = ja


Alles andere bleibt LEER !


Öffne nun die forumdisplay.php und Suche nach

PHP-Code:
if($fpermissions['canviewthreads'] != 0)
{

    
// How many posts are there?
    
if($datecut || isset($fpermissions['canonlyviewownthreads']) && $fpermissions['canonlyviewownthreads'] == 1)
    {
        
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly $datecutsql");
        
$threadcount $db->fetch_field($query"threads");
    }
    else
    {
        
$query $db->simple_select("forums""threads, unapprovedthreads""fid = '{$fid}'", array('limit' => 1));
        
$forum_threads $db->fetch_array($query);
        
$threadcount $forum_threads['threads'];
        if(
$ismod == true)
        {
            
$threadcount += $forum_threads['unapprovedthreads'];
        }

        
// If we have 0 threads double check there aren't any "moved" threads
        
if($threadcount == 0)
        {
            
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly", array('limit' => 1));
            
$threadcount $db->fetch_field($query"threads");
        }
    }


und füge darunter dies ein

PHP-Code:
if($mybb->user['uid'] == 0)
{
error_no_permission();



Nun öffne die global.css, gehe in Stylesheet bearbeiten: Fortgeschrittene Methode, und füge an erster Stelle dies ein

Code:
.gruppe_0{
    display:none;
}


Nun öffne das Forum Bit Templates->forumbit_depth2_forum_lastpost, und füge nach

Code:
<span class="smalltext

dies ein

Code:
gruppe_{$mybb->user['uid']}"

Bitte auf das LEERTEICHEN zwischen smalltext und gruppe achten !!

Das ganze Template sollte dann so aussehen.
Code:
<span class="smalltext gruppe_{$mybb->user['uid']}">
<a href="{$lastpost_link}" title="{$full_lastpost_subject}"><strong>{$lastpost_subject}</strong></a>
<br />{$lastpost_date} {$lastpost_time}<br />{$lang->by} {$lastpost_profilelink}</span>


Öffne nun das Forenanzeige Templates->forumdisplay_threadlist und füge nach

Code:
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder

dies ein

Code:
gruppe_{$mybb->user['uid']}"

Auch hier wieder auf das LEERTEICHEN zwischen tborder und gruppe achten !!

Das ganze Template sollte dann so aussehen.
Code:
<div class="float_left">
    {$multipage}
</div>
<div class="float_right">
    {$newthread}
</div>
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder gruppe_{$mybb->user['uid']}" style="clear: both;">
    <tr>
        <td class="thead" colspan="{$colspan}">
            <div style="float: right;">
                <span class="smalltext"><strong><a href="misc.php?action=markread&amp;fid={$fid}{$post_code_string}">{$lang->markforum_read}</a> | <a href="usercp2.php?action={$add_remove_subscription}subscription&amp;type=forum&amp;fid={$fid}&amp;my_post_key={$mybb->post_code}">{$add_remove_subscription_text}</a>{$clearstoredpass}</strong></span>
            </div>
            <div>
                <strong>{$foruminfo['name']}</strong>
            </div>
        </td>
    </tr>
    <tr>
        <td class="tcat" colspan="3" width="66%"><span class="smalltext"><strong><a href="{$sorturl}&amp;sortby=subject&amp;order=asc">{$lang->thread}</a> {$orderarrow['subject']} / <a href="{$sorturl}&amp;sortby=starter&amp;order=asc">{$lang->author}</a> {$orderarrow['starter']}</strong></span></td>
        <td class="tcat" align="center" width="7%"><span class="smalltext"><strong><a href="{$sorturl}&amp;sortby=replies&amp;order=desc">{$lang->replies}</a> {$orderarrow['replies']}</strong></span></td>
        <td class="tcat" align="center" width="7%"><span class="smalltext"><strong><a href="{$sorturl}&amp;sortby=views&amp;order=desc">{$lang->views}</a> {$orderarrow['views']}</strong></span></td>
        {$ratingcol}
        <td class="tcat" align="right" width="20%"><span class="smalltext"><strong><a href="{$sorturl}&amp;sortby=lastpost&amp;order=desc">{$lang->lastpost}</a> {$orderarrow['lastpost']}</strong></span></td>
        {$inlinemodcol}
    </tr>
    {$selectall}
    {$announcementlist}
    {$threads}
    <tr>
        <td class="tfoot" align="right" colspan="{$colspan}">
            <form action="forumdisplay.php" method="get">
                <input type="hidden" name="selectall" value="" />
                <input type="hidden" name="fid" value="{$fid}" />
                <select name="sortby">
                    <option value="subject" {$sortsel['subject']}>{$lang->sort_by_subject}</option>
                    <option value="lastpost" {$sortsel['lastpost']}>{$lang->sort_by_lastpost}</option>
                    <option value="starter" {$sortsel['starter']}>{$lang->sort_by_starter}</option>
                    <option value="started" {$sortsel['started']}>{$lang->sort_by_started}</option>
                    {$ratingsort}
                    <option value="replies" {$sortsel['replies']}>{$lang->sort_by_replies}</option>
                    <option value="views" {$sortsel['views']}>{$lang->sort_by_views}</option>
                </select>
                <select name="order">
                    <option value="asc" {$ordersel['asc']}>{$lang->sort_order_asc}</option>
                    <option value="desc" {$ordersel['desc']}>{$lang->sort_order_desc}</option>
                </select>
                <select name="datecut">
                    <option value="1" {$datecutsel['1']}>{$lang->datelimit_1day}</option>
                    <option value="5" {$datecutsel['5']}>{$lang->datelimit_5days}</option>
                    <option value="10" {$datecutsel['10']}>{$lang->datelimit_10days}</option>
                    <option value="20" {$datecutsel['20']}>{$lang->datelimit_20days}</option>
                    <option value="50" {$datecutsel['50']}>{$lang->datelimit_50days}</option>
                    <option value="75" {$datecutsel['75']}>{$lang->datelimit_75days}</option>
                    <option value="100" {$datecutsel['100']}>{$lang->datelimit_100days}</option>
                    <option value="365" {$datecutsel['365']}>{$lang->datelimit_lastyear}</option>
                    <option value="9999" {$datecutsel['9999']}>{$lang->datelimit_beginning}</option>
                </select>
                {$gobutton}
            </form>
        </td>
    </tr>
</table>
<div class="float_left">
    {$multipage}
</div>
<div class="float_right" style="margin-top: 4px;">
    {$newthread}
</div>
<br style="clear: both;" />
<br />
<div class="float_left">
    <div class="float_left">
        <dl class="thread_legend smalltext">
            <dd><img src="{$theme['imgdir']}/newfolder.gif" alt="{$lang->new_thread}" title="{$lang->new_thread}" /> {$lang->new_thread}</dd>
            <dd><img src="{$theme['imgdir']}/newhotfolder.gif" alt="{$lang->new_hot_thread}" title="{$lang->new_hot_thread}" /> {$lang->new_hot_thread}</dd>
            <dd><img src="{$theme['imgdir']}/hotfolder.gif" alt="{$lang->hot_thread}" title="{$lang->hot_thread}" /> {$lang->hot_thread}</dd>
        </dl>
    </div>

    <div class="float_left">
        <dl class="thread_legend smalltext">
            <dd><img src="{$theme['imgdir']}/folder.gif" alt="{$lang->no_new_thread}" title="{$lang->no_new_thread}" /> {$lang->no_new_thread}</dd>
            <dd><img src="{$theme['imgdir']}/dot_folder.gif" alt="{$lang->posts_by_you}" title="{$lang->posts_by_you}" /> {$lang->posts_by_you}</dd>
            <dd><img src="{$theme['imgdir']}/lockfolder.gif" alt="{$lang->locked_thread}" title="{$lang->locked_thread}" /> {$lang->locked_thread}</dd>
        </dl>
    </div>
    <br style="clear: both" />
</div>

<div class="float_right" style="text-align: right;">
    {$inlinemod}
    {$searchforum}
    {$forumjump}
</div>
<br style="clear: both" />
{$inline_edit_js}


Leider können trozdem User die Themen im Archiv Modus lesen. Wenn Du dieses nicht nutzt, lösche die Verlinkung im Seitenfuß Templates->footer Template

Code:
<a href="<archive_url>">{$lang->bottomlinks_litemode}</a>


Ansonsten öffne die ./archive/index.php und füge nach

PHP-Code:
$plugins->run_hooks("archive_start"); 

dies ein

PHP-Code:
if($mybb->user['uid'] == 0)
{
error_no_permission();




Alle Angabe ohne Gewähr :p

Achtung ! Es können Unterschiede in den Templates auftreten, wenn ihr NICHT das standard Theme wie in meiner Anleitung verwendet !!


RE: Gäste sollen zum Login geleitet werden. - Arni2win - 03.08.2014

Danke sehr Smile

Das funktioniert schon super!

Ist es dann auch noch möglich das man einzelne Foren trotzdem zum lesen freigibt?

Mit deiner, mir gut gefallenen Lösung, sind alle Foren und Anzahl der Themen und Beiträge sichtbar. Genau wie ich es wollte. Die Königslösung wäre wenn ich einzelne Foren trotzdem zum lesen freigeben könnte.

Machbar?


RE: Gäste sollen zum Login geleitet werden. - MrBrechreiz - 03.08.2014

Dazu müssen dan wie schon erwähnt Codeänderungen oder ein Plugin her.


RE: Gäste sollen zum Login geleitet werden. - MrBrechreiz - 03.08.2014

Habe ein Uralt Plugin gefunden was das regelt. Habe es ein wenig angepasst. Simpel aufgebaut, aber es geht. Dieses Plugin hat keine Einstellung im ACP, was heisst, Du musst die Themen ID`s in das array eintragen, die von Gästen NICHT gesehen werden dürfen.


Alle Änderungen, ausser die der Gruppenberechtigungen für die Foren, solltest Du rückgängig machen, damit es funktioniert.


RE: Gäste sollen zum Login geleitet werden. - Arni2win - 03.08.2014

Klasse ! Vielen vielen Dank dafür!