Beiträge: 81
Themen: 8
Registriert seit: 28.09.2015
Huhu,
ich hab in meine Toplinks einen Link zu meinem Chat eingebaut. Nun wollte ich, dass dieser Link nicht für Gäste und nicht für Benutzer mit einer Beitragszahl unter einem bestimmten Betrag sichtbar ist. Ich dachte, die einfachste Lösung wäre es, das über die Benutzergruppen und die Benutzertitel zu lösen und ein if-else im Header-Template einzufügen. Nur habe ich entweder die falschen Variablen benutzt oder sonstwas nicht bedacht. Die IDs selbst habe ich in der Datenbank überprüft, die sind korrekt. Plugin für PHP in den Templates ist aktiv und funktioniert.
Vielleicht findet einer von euch den Fehler?
PHP-Code:
<if $user['usergroup'] == 1 || $user['usertitle'] == 1 || $user['usertitle'] == 2 then>
<ul class="menu top_links">
{$menu_portal}
{$menu_search}
{$menu_memberlist}
{$menu_calendar}
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help" class="help">{$lang->toplinks_help}</a></li>
</ul>
<else>
<ul class="menu top_links">
{$menu_portal}
{$menu_search}
{$menu_memberlist}
{$menu_calendar}
<li><a href="http://vitaler-hund-forum.de/chat/" target="_blank" class="chat">Chat</a></li>
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help" class="help">{$lang->toplinks_help}</a></li>
</ul>
</if>
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Einerseits gibt es keine Variable $user, meinst du vielleicht $mybb->user?
Und andererseits enthält $mybb->user['usertitle'] nur den eigenen Benutzertitel, falls überhaupt im Profil eingestellt. Sinnvoller wäre es wohl $mybb->user['postnum'] zu verwenden.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 81
Themen: 8
Registriert seit: 28.09.2015
21.07.2016, 10:22
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016, 10:25 von keineAhnung.)
Wie, $user gibt es nicht? Ich hab mit Hilfe von hier für meine Memberlist ein if-else geschrieben, um bei bestimmten Usergruppen die Benutzertitel anzeigen zu lassen, bei anderen nicht. Das funzt auch und sieht so aus:
PHP-Code:
<if $user['usergroup'] == 4 || $user['usergroup'] == 3 || $user['usergroup'] == 6 || $user['usergroup'] == 7 then>
Ich dachte, darauf könnte ich für diesen neuen Zweck aufbauen. Und laut Datenbank sind usertitle die, die ich vorgegeben habe? Zumindest sind die dort und db_usertitle drin und mit genau dieser Nummer versehen.
Wenn es natürlich eine postnum gibt, ist das noch viel besser bzw. einfacher. Habs ausprobiert und es scheint zu funzen. Falls noch jemand was ähnliches sucht, so geht es jetzt:
PHP-Code:
<if $mybb->user['postnum'] <= 25 then>
Für User mit 25 oder weniger Beiträgen ist der Link dann weg. Nur mit < statt <= funzt auch, also für User mit weniger als 25 Beiträgen.
Vielen Dank für die schnelle Hilfe!!
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
(21.07.2016, 10:22)keineAhnung schrieb: Wie, $user gibt es nicht?
Im Template header ist $user standardmäßig nicht definiert. An anderen Stellen schon.
(21.07.2016, 10:22)keineAhnung schrieb: Und laut Datenbank sind usertitle die, die ich vorgegeben habe? Zumindest sind die dort und db_usertitle drin und mit genau dieser Nummer versehen.
Das ist aber die Spalte "usertitle" im der Tabelle mybb_users.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 81
Themen: 8
Registriert seit: 28.09.2015
Ach jetzt, danke, bin wohl leicht verwirrt dank Hitze und Gewitterwetter.^^
Ich bin nur froh, dass es funzt
.
Gibt es vll eine Möglichkeit, das auch nach Zeit zu begrenzen? Die mybb-Zeit ist ja auch irgendwie verankert, da müsste ich ja bspw 17-23 Uhr eingeben können?
Beiträge: 100
Themen: 13
Registriert seit: 19.04.2020
Hallo,
ich habe auch dasselbe oder ein ähnliches Problem bei MyBB 1.8.22. Habe einen externen Link bei den toplinks eingefügt und würde diesen Link gerne nur für eingeloggte User anklickbar machen. Mein Code im ACP: Home » Template-Sets » Default Templates » Template bearbeiten: header
lautet:
<ul class="menu top_links">
<if $mybb->user['usergroup'] == 1 then>
<li><a href="./member.php?action=login">{$lang->toplinks_chat}</a>
<else>
<a href="https://ExternalLink" target="_blank">{$lang->toplinks_chat}</a></li>
</if>
{$menu_arcade}
{$menu_portal}
{$menu_search}
{$menu_memberlist}
{$menu_calendar}
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help" class="help">{$lang->toplinks_help}</a></li>
</ul>
Allerdings wird der if-Befehl nicht angewendet, sondern stattdessen erscheinen immer beide Links gleichzeitig (neben einander), egal ob man eingeloggt ist oder nicht. Kann man an diesem Ergebnis irgendwas ändern?
LG
Beiträge: 1.709
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
Das mit dem <else> funzt bei mir auch nicht. Versuche es mal mit:
Code:
<ul class="menu top_links">
<if $mybb->user['usergroup'] == 1 then>
<li><a href="./member.php?action=login">{$lang->toplinks_chat}</a>
</if>
<if $mybb->user['usergroup'] != 1 then>
<a href="https://ExternalLink" target="_blank">{$lang->toplinks_chat}</a></li>
</if>
{$menu_arcade}
{$menu_portal}
{$menu_search}
{$menu_memberlist}
{$menu_calendar}
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help" class="help">{$lang->toplinks_help}</a></li>
</ul>
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [
Unixzeit ⇔ Realzeit] ♦ [
BOM-Finder] ♦ [
SQL-Prefix-Changer] ♦ [
USV-Rechner] ♦ [
PlugIns]
Beiträge: 2.239
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
12.05.2020, 07:45
(Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2020, 08:00 von Schnapsnase.)
(12.05.2020, 07:28)Gerti schrieb: Das mit dem <else> funzt bei mir auch nicht.
<else> funktioniert sogar sehr gut.
Aus welchem Grund soll das nicht funktionieren?
@
masi1234
1. Zuerst solltest Du mal aus jedem Link ein eigenes Listenelement machen.
2. Du kannst in Templates keinen php-Code verwenden.
Dafür ist ein Plugin nötig. Siehe:
hier
Beiträge: 100
Themen: 13
Registriert seit: 19.04.2020
Danke Euch! Die Lösung mit dem Plugin funktioniert gut.