MyBB.de Forum

Normale Version: für Gäste nicht nutzbar: Chat und Shoutbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ich habe zwei Anliegen:

In meinem Forum habe ich einen Chat eingebaut, der auf einer externen Seite läuft, den man mittels toplinks direkt erreichen kann - leider aber auch Gäste.
Ich würde diesen Link gerne mit dem Hinweis, daß man registriert sein muss (so, wie er auch beim Aufruf des Kalenders oder Mitgliederliste erscheint) versehen - nur, wie mach' ich das?

Ich habe in meinem Forum auch eine externe Shoutbox eingebaut (fragt nicht, wie, ich weiß es nicht mehr), diese Shoutbox ist leider ebenso für Gäste sichtbar. Wie kann ich diese nur für Mitglieder sichtbar machen, für Gäste unsichtbar?

Danke schon mal im voraus!
Wenn die Shoutbox und der Chat mit dem Forum verbunden sind, muss ja die Datei global.php eingebunden werden:
PHP-Code:
require "./global.php"
Füge darunter ein:
PHP-Code:
if($mybb->user['uid'] == "0") {
    
nopermission();

Oh je,

wo genau da (ich trau' mich nicht mehr so recht, was auszuprobieren, hatte heute schon ein Schock-Erlebnis),

im template header einfügen? Ich habe da z.B. verlinkt:
Code:
<li><a
href="http://meine.domain.chat.de/" target="_blank"><img src="$theme[imgdir]/toplinks/trend.gif" border="0" alt="Chat">Chat</a></li>
<IMG SRC="http://meine.domain.chat.de/userinfo.php3?size=14&hrot=0&hgruen=0&hblau=0&vrot=255&vgruen=127&vblau=80&text=User+online">

Ich weiß gar nicht mehr, onb ich sonst noch irgendwelche Einträge vorgenommen habe?

Und wie ich die shoutbox eingebunden habe, weiß ich ja auch nicht mehr?

Doch, steht im template index:

Code:
<tr class="thead">
<td>
<div class="expcolimage"><a href="javascript:expandCollapse('shoutbox');"><img src="$theme[imgdir]/collapse$collapsedimg[shoutbox].gif" id="shoutbox_collapseimg" border="0" alt="[Open/Close]" /></a></div><div><strong>Shoutbox</strong></div>
</td>
</tr>
</thead>
<tbody style="$collapsed[shoutbox_e]" id="shoutbox_e">
<tr><td class="trow1"><iframe src="http://link.zu.meine.shoutbox.de" width=100% height=250 frameborder="0" name="Shout" marginwidth="0" marginheight="0" align="top" border="0" allowTransparency="true"></iframe> </td></tr>

Heute ist wirklich nicht mein Tag!
Du musst den Code in den PHP-Dateien einfügen, nicht in den Templates (also z.B. chat.php und shoutbox.php).
Hä,

ich hab doch gar keine chat.php oder shoutbox.php, weil die auf externen Rechnern laufen - ich habe lediglich dorthin verlinkt bzw. deren Code ins Forum eingebaut!

Und nun? Besteht noch eine Chance?
Kannst du bitte die Links zu den entsprechenden Seiten posten oder mir per PN schicken?
Da beide Sachen über externe Dienstleister läuft, ist es nicht möglich die Funktionen für Gäste komplett abzuschalten. Du könntest die Shoutbox für Gäste vom Index entfernen, das wars aber auch.

Öffne dazu das Template index und suche den Code der Shoutbox:
Code:
<table width="100%" border="0" cellspacing="1" cellpadding="4" class="tborder">
<thead>
<tr class="thead">
<td>
<div class="expcolimage"><a href="javascript:expandCollapse('shoutbox');"><img src="images/darksun/collapse.gif" id="shoutbox_collapseimg" border="0" alt="[Open/Close]" /></a></div><div><strong>Shoutbox</strong></div>
</td>
</tr>
</thead>
<tbody style="" id="shoutbox_e">
<tr><td class="trow1"><iframe src="http://126668.shoutbox.de" width=100% height=250 frameborder="0" name="Shout" marginwidth="0" marginheight="0" align="top" border="0" allowTransparency="true"></iframe> </td></tr>
</tbody>
</table>
<br/>
Schneide diesen aus und füge an dieser Stelle die Variable $index_shoutbox ein. Anschließend erstellst du im Admin-CP ein neues Template mit dem Namen index_shoutbox und dem Code, den du zuvor ausgeschnitten hast.
Danach öffnest du die Datei index.php und suchst nach:
PHP-Code:
eval("\$index = \"".$templates->get("index")."\";"); 
Davor fügst du ein:
PHP-Code:
if($mybb->user['uid'] != "0") {
    eval(
"\$index_shoutbox = \"".$templates->get("index_shoutbox")."\";");
} else {
    
$index_shoutbox "";

Hi,

klappt nicht so ganz!

Soll in der index.php es dann tatsächlich so aussehen:
PHP-Code:
if($mybb->user['uid'] != "0") {
    eval(
"\$index_shoutbox = \"".$templates->get("index_shoutbox")."\";");
} else {
    
$index_shoutbox "";
}
eval(
"\$index = \"".$templates->get("index")."\";");
outputpage($index);
?>

Noch ist für Gäste die shoutbox sichtbar!
DOCH, es klappt!!!!!

Aber jetzt eine Frage (weil ich da immer so große Probleme mit habe):

Als vorsichtiger Mensch möchte ich gerne Teile, die ich in den templates ändere oder gar entferne, lieber zu Testzwecken deaktieren (also nicht löschen), wie macht man das am besten, mit welchen Zeichen //<!-- blabla oder wie kann ich das machen, ohne nachher Scherereien zu haben?

Leider gehöre ich ja zu den äusserst neugierigen Menschen, die immer und alles ausprobieren müssen, mal mit, mal ohne Erfolg!

So habe ich es z.B. auch geschafft, ein Limit für die Beitragseditierung zu setzen! *stolz wie ein Pfau bin*
Da die Templates HTML-Code enthalten, kannst du HTML-Kommentare zum Ausklammern verwenden, also:
Code:
<!-- Kommentar -->