Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Thread ID abhängiges Logo
#1
Moin Moin,

ich versuche momentan, ein Logo unter meinem Header zu platzieren, das von der thread id abhängt, mit anderen Worten: Ich möchte ein Logo über ausgewählten/bestimmten Threads.

Ich habe eine simple Zeile unter die Header Variable in meinem Showthread Template eingesetzt:

Code:
{$header}
<center><img src="images/fanclub/{$thread['tid']}.png"></center>

Dieses Prinzip funktioniert zwar, allerdings fügt es über JEDEM Thread ein Logo hinzu, und ich möchte eben nur bei bestimmten/ausgewählten threads ein Logo hinzufügen.

Und da mein Forum über 1.000 threads hat, möchte ich nich 1000 "unsichtbare" logos erstellen^^

Deshalb wollte ich eine if-Abfrage implementieren:

Code:
<script type="text/javascript">
function logo () {var thread = "{$thread['tid']}"; var bild = "0";
    if (thread == 3) {bild = "logo";  }
}
</script>

...

<body onload="logo()">
{$header}
<center><img src="images/fanclub/{$bild}.png"></center>

Um mal auszuprobieren, ob ich es hinbekomme, dass der Thread mit der id=3 das gewünschte Logo erhält, während alle anderen Threads ein unsichtbares Logo bekommen.

Leider sind meine Programmierfähigkeiten (wie ihr wahrscheinlich an dem Code erkannt habt), alles andere als wirkliche Fähigkeiten.^^

Deshalb brauch ich schnell mal eure Hilfe. Was habe ich in der script function logo falsch gemacht, und wie muss ich es ändern?

Vielen Dank Smile
Zitieren
#2
Falls Du dieses Plugin verwendest, kannst Du dies so machen.


In dein showthread Temüplate unter

Code:
{$header}

dies einfügen

Code:
<if $thread['tid'] == 'xx' then>
<center><img src="images/deinBild.png" alt="" /></center>
</if>
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#3
Um ehrlich zu sein, würde ich ungern ein plugin dafür installieren Wink

Es geht mit Sicherheit auch über das template, auch wenn das dann um einiges komplizierter wird wie es scheint.
Zitieren
#4
Ja, aber mit jscript würde ich es dennoch nicht machen, da viele User dies deaktiviert oder unterdrücken in ihrem Browser.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#5
(14.03.2014, 19:58)MrBrechreiz schrieb: Ja, aber mit jscript würde ich es dennoch nicht machen, da viele User dies deaktiviert oder unterdrücken in ihrem Browser.

Ich habe meinen JS code geändert, und jetzt funktioniert es.

Allerdings bist du nicht der einzige, de rmir conditional templates empfohlen hat. Meine Frage: Ist die Lösung über JS denn irendwie riskant oder hat große Nachteile, neben dem bereits genannten?
Zitieren
#6
Ich sehe das nicht so kritisch mit deaktiviertem JS. Ein großteil der heutigen Seiten werden mit jQuery und Bootstrap erstellt. Ohne JS geht da gar nichts, da wird ganz schnell aus einer (wie man so schön sagt) "Rich Webapplication" (= Modals, Dialoge, Dropdowns, Suche-Autovervollständigung, etc pp), etwas was nur noch rudimentär benutzt werden kann, weil man einfach JS braucht, um bestimmte Funktionalitäten anbieten zu können.
Im MyBB würden auch einige Funktionen nicht benutzbar sein, wie z.B. der Beitragseditor (die Buttons), mit MyBB 1.8 wird auch jQuery eingesetzt.

Dein Code bringt keine Nachteile und birgt keine Sicherheitslücken, da du nicht mit Benutzereingaben umgehen musst.

Hier ist eine verbesserte Version:
Code:
<script type="text/javascript">
function logo () {
    var threadIdsWithImages = [12, 45, 78];
    if (threadIdsWithImages.indexOf({$thread['tid']}) != -1) {
        document.getElementById('threadImageContainer').innerHTML = '<img src="images/fanclub/threadimage-{$thread['tid']}.png">';
    }
}
</script>

...

<body onload="logo()">
{$header}
<div id="threadImageContainer" style="text-align: center;"></div>
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#7
Okay danke dir Smile

Ich habe diesen Code benutzt:

Code:
<script type="text/javascript">
document.observe('dom:loaded', function(){

   var l_tidimg = document.getElementById('ImageBasedOnTid');
   var l_tid = {$thread['tid']};

   if(l_tid == 1469)
   l_tidimg.src = "images/fanclub/minato fc.png";

});
</script>

...

<center><img id="ImageBasedOnTid" src="images/fanclub/0.png" alt="" /></center></br>
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Forum Logo fest machen, bzw das man das Logo nicht Kopieren oder klauen kann?=/ BattlieldAD 44 13.161 07.06.2014, 15:07
Letzter Beitrag: MrBrechreiz
Question Logo links + Logo rechts press 45 17.821 28.01.2014, 15:49
Letzter Beitrag: MrBrechreiz
  [Erledigt]Logo NAVIGATION Logo Jan 4 3.257 01.04.2006, 07:37
Letzter Beitrag: Jan