MyBB.de Forum

Normale Version: Template mit <if canview> ergänzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Habe mal die Foren sichtbar gemacht und die Leseberechtigung entzogen.

Mit
PHP-Code:
<if $permission['canthreadview'] == 0 then>{$lang->textvariable}</if> 
oder
PHP-Code:
<if $canthreadview == 0 then>{$lang->textvariable}</if> 
wird der Zusatztext allen Usern angezeigt.

Mit
PHP-Code:
<if $permission['canthreadview'] == 1 then>{$lang->textvariable}</if> 
oder
PHP-Code:
<if $canthreadview == 1 then>{$lang->textvariable}</if> 
wird der Zusatztext allen Usern nicht angezeigt

Wie bereits erwähnt, ist das Ziel eine Vorinformation bereits bei der Kategorie mit auszugeben.
(09.05.2022, 08:50)Gerti schrieb: [ -> ]Wie bereits erwähnt, ist das Ziel eine Vorinformation bereits bei der Kategorie mit auszugeben.

Das ist m.M. nach nicht möglich. Du kannst die Information nur im jeweiligen Forum ausgeben.
Da aber dann im Template forumbit_depth2_forum
forumbit_depth2_forum ist nicht zielführend.
Bisher ist lediglich der von Dir gepostete Lösungsweg funktionierend und somit zielführend. Nur der hierzu erforderliche Pflegeaufwand wäre das Problem.
@Gerti
Du beschäftigst dich doch lange genug mit MyBB, sodass es doch mal an der Zeit wäre, dich in die Nuzung von selbst erstellten Plugins einzuarbeiten. Dieses herumdoktorn in den Templates ist, gelinde gesagt, eher unprofessionell.
@SvePu

Richtig. Wink  Ohne Plugin wird das nicht zum Ziel führen.
Es muss eine Verbindung Usergruppe (gid) <-> Permission (canview) oder (canviewthreads) geben.
Ohne Query wird das nichts.
Ich kann da grundsätzlich mit Euerer Ausführung konform gehen.

Nur hapert es bei mir an den PHP-Kenntissen wie man diese Anforderung zunächst mit SELECT ausliest, dann nach Wünschen zusammenführt und dann als Variable ausgeben kann. Bin ja bereits zu lernen, aber wo selbst wenn ich MyBB-Literatur hierzu lese, bauen sich für mich Berge auf und blicke dann nicht durch. Sorry, aber bin da leider entwerder begriffstutzig oder auf einem Auge blind.
Mit diesem Lösungsansatz, erweitert auf:
PHP-Code:
<if ((in_array($mybb->user['usergroup'], array(4,5)) || in_array($mybb->user['additionalgroups'], array(4,5))) && $forum['fid'] == 11then>{$lang->textvariable}</if> 
sowie die weiteren <elseif Anweisungen>
funktioniert es jetzt wie gewünscht.

Danke nochmals für den Tipp.
Es mag zwar für dich funktionieren, ist aber trotzdem falsch. additionalgroups kann mehrere Gruppen enthalten, sodass in_array ein fehlerhaftes Ergebnis liefert. Mit is_member() gibt es eine elegantere und bessere Möglichkeit Gruppenmitgliedschaften abzufragen.
@Gerti

Wie Stefan schon sagt, ist additionalgroups ein String und kein Array.
Du musst es vorher zu einem Array machen:

PHP-Code:
$agroups $mybb->user['additionalgroups'];
$secgroup explode(','$agroups);
foreach (
$secgroup as $addtionalgroup

Danach kannst du mit der Variable $addtionalgroup korrekt weiterarbeiten.
Dies wird aber im Template wohl nicht funktionieren, weil es evtl. das Plugin "PHP in Templates" überfordert. Wink
Kannst du ja selbst testen.
@Gerti
Um Stefans Hinweis für dich mal etwas aufzudröseln...
Seine Variante ist sehr wohl eleganter und sollte auch im Template funktionieren (mit PHPTPL):
PHP-Code:
<if (is_member([4,5,10], $mybb->user['uid'])) then

Mit dieser Funktion wird primäre und sekundäre Gruppe gleichfalls abgefragt.
Dieser Hinweis wird nicht benötigt.

Das PlugIn phptpl ist für mich stets aktiv gegeben.

Mit
PHP-Code:
<if (is_member([1,2,3], $mybb->user['uid'])) && $forum['fid'] == xy then>{$lang->textvariable_1}
   <elseif (
is_member([4,5], $mybb->user['uid'])) && $forum['fid'] == yz then>{$lang->textvariable_1}
   <elseif (
is_member([6,7], $mybb->user['uid'])) && $forum['fid'] == xz then>{$lang->textvariable_1}
<else>
{
$lang->textvariable_2}
</if> 
funktioniert es perfekt.

Ein aufrichtigen Danke für Eure Hilfestellungen.

Wenn sich jetzt noch jemand für dieses Problem (Job) findet, bin ich glücklich.
Seiten: 1 2 3