Wir fügen dem oberen Menü einen neuen Button hinzu. Hier ein Beispiel für einen Button namens Chat.
Drei Dinge sind dafür erforderlich:
1. Eine Grafik welche in den Grafik Ordner des Themes übertragen wird
2. Ein Eintrag in die gewünschten Sprachdateien für den Alt Tag der Grafik
3. Das bearbeiten der index.template.php mit einem geeigneten Editor.
Wenn du ein grafisches Menü eingestellt hast fertige dir einen/einige neue/n Button/s für dein Theme / deine Themes.
Dann öffne die vorhandenen Sprachdateien und füge diesen eine Zeile für den Alt Tag der Grafik hinzu.
SMF/Themes/default/languages/index.german.php
Nehme entweder noch eine freie Zahl z.B. zwischen 36 und 40 oder einen freien Begriff. In diesem Beispiel nehmen wir einen eindeutigen Begriff und fügen folgendes hinzu:
$txt[chat] = 'Zum Chat';
Dann öffne die Datei index.template.php im Theme Ordner:
Suche nach:
// Show the menu up top. Something like [home] [help] [profile] [logout]...
Unterhalb dieser Zeile beginnt die Funktion für die Darstellung der Menübuttons, abhängig davon ob der Besucher eingelogt ist oder nicht.
Du must entscheiden wer den Button zu sehen bekommen soll.
Alle Besucher deines Forums oder nur Besucher die sich eingelogt haben.
Sollen alle Besucher den Button sehen können empfiehlt sich ein Einbau bei:
// Show the [home] and [help] buttons.
Sollen nur eingelogte Besucher den Button sehen empfiehlt sich ein Einbau vor dem Logout Button:
<a href="', $scripturl, '?action=logout;sesc=', $context['session_id'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/logout.gif" alt="' . $txt[108] . '" style="margin: 2px 0;" border="0" />' : $txt[108]), '</a>';
Hier nun die Beispielzeile für den neuen Button der zum Chat führen soll:
<a href="zum_chat.php">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/chat.gif" alt="' . $txt[38] . '" style="margin: 2px 0;" border="0" />' : $txt[chat]), '</a>', $context['menu_separator'], '
Beachte dabei folgendes:
Die Ausgabe beginnt immer mit:
echo '
Am Ende des Echo Befehls muss ein ; stehen.
Obige Beispiel Zeile endet mit , ' ist keine den Befehl abschliessende Zeile sonder könnte so zum Beispiel vor den logout Button eingefügt werden.
Soll er dahinter erscheinen musst du hinter der Zeile für den Logout Button das ; entfernen und hinter die Beispielzeile setzen.
Hat dich das so genervt von mir, dass du jetzt erstma ne Anleitung unters FAQ machen musstest oder was ?? ;D
Quote from: Ripper on April 02, 2005, 04:50:21 AM
Hat dich das so genervt von mir, dass du jetzt erstma ne Anleitung unters FAQ machen musstest oder was ?? ;D
Das ist so bei FAQs. Damit sollen "nervige" (eigentlich: häufig gestellte) Fragen vermindert werden. Leider liest kaum einer die FAQ Sektion. Naja, hoffe dir konnte endlich geholfen werden. :)
und wie kann ich die adresse ändern.also wo es hingehen soll wenn man auf den button klickt?
..und mein alt text erscheint auch nicht
Quote$txt[34] = 'Login';
$txt[35] = 'Username';
$txt[36] = 'Password';
$txt['chat'] = 'Zum Chat';
$txt[40] = 'That username does not exist.';
Quote
<a href="', $scripturl, '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/home.gif" alt="' . $txt[103] . '" style="margin: 2px 0;" border="0" />' : $txt[103]), '</a>', $context['menu_separator'], '
<a href="zum_chat.php">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/chat.gif" alt="' . $txt[38] . '" style="margin: 2px 0;" border="0" />' : $txt['chat']), '</a>', $context['menu_separator'], '
<a href="', $scripturl, '?action=help" target="_blank">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/help.gif" alt="' . $txt[119] . '" style="margin: 2px 0;" border="0" />' : $txt[119]), '</a>', $context['menu_separator'];
so hab ichs gemacht...
*edit by Neakro*
Code berichtigt...
Bei deinem rot eingefärbten geht es, indem du zum_chat.php durch die Zieladresse ersetzt.
Den Alt-Text hast du wahrscheinlich in die falsche Sprachdatei geschrieben.
Hat leider nicht funktioniert. Die Fehlermeldung bleibt immer noch bestehen.
Quote from: Neakro on May 20, 2006, 08:53:53 AM
Bei deinem rot eingefärbten geht es, indem du zum_chat.php durch die Zieladresse ersetzt.
Den Alt-Text hast du wahrscheinlich in die falsche Sprachdatei geschrieben.
Hallo. Ich bin zwar noch nicht ganz durchgestiegen bei eurem Forum, find es aber trotzdem super. Hab auch einiges geschafft umzuschreiben. (index.template). Mich würde jetzt mall interessieren, ob ich auch ein butten z.B. (chat-button) gesondert zentrieren kann...
MfG: Blackbeard
So, bin einer, der das FAQ gelesen hat ;)
Hätte da aber noch mal ne Frage dazu.
Und zwar hab ich den Button funktionierend eingebunden und klappt auch alles, aber ich hätte es gerne so, dass nur eine bestimmte Benutzergruppe (Bei mir trusted members) den Button sehen kann.
Gibts eine Möglichkeit, abzufragen, in welcher Gruppe der Member ist und den Button nur im Falle eines trusted members einzublenden?
Gruß
J!ass
Edit:
Ich nutze 1.1 RC3
if (in_array(Gruppenid, $user_info['groups')) vor dem Button-Code sollte helfen. Gruppenid muss natürlich durch die ID der entsprechenden Gruppe ersetzt werden.
Ne, klappt leider nicht :(
Bei mir sieht das Ganze so aus:
if (in_array(1, $user_info['groups'])) {
echo '
<a href="../coppermine/index.php" target=_blank>', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/galerie.gif" alt="' . $txt['Galerie'] . '" style="margin: 2px 0;" border="0" />' : $txt['Galerie']), '</a>', $context['menu_separator'];
}
Aber egal, welche Usergruppe ich einsetzte, klappt nicht.
Die Gruppe, die normalerweise genommen werden soll wäre 9, Admin wäre ja 1, aber auch das klappt nicht.
Ich hab mal testweise ne andere Bedingung eingefügt und zwar:
if ($context['allow_admin']) {
echo '
<a href="../coppermine/index.php" target=_blank>', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/galerie.gif" alt="' . $txt['Galerie'] . '" style="margin: 2px 0;" border="0" />' : $txt['Galerie']), '</a>', $context['menu_separator'];
}
Das heißt ja, dass nur die Admins den Link sehen können und das klappt auch wunderbar...
Wie gesagt, ich nutze die Version 1.1RC3
Öhm... ja. Die Variable $user_info ist glaub ich nicht in den Templates verfügbar. Du musstest ein Element zum Array context in der Load.php hinzufügen. Also z.B.
$context['groupxy'] = in_array(Gruppenid, $user_info['groups'); und dann im Template den Wert von $context['groupxy'] überprüfen.
Aalso:
In der Load.php hab ich oben folgende Zeile eingefügt:
$context['grouptrusted'] = in_array(9, $user_info['groups']);
Und in der index.template.php folgende:
if ($context['grouptrusted']) {
echo '
<a href="../coppermine/index.php" target=_blank>', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/galerie.gif" alt="' . $txt['Galerie'] . '" style="margin: 2px 0;" border="0" />' : $txt['Galerie']), '</a>', $context['menu_separator'];
}
Das müsste doch eigentlich passen, oder?
Wird aber nicht mehr angezeigt, der Button.
Du kannst die Zeile nicht irgendwo beliebig in die Load.php schreiben.
Kannst du mir denn sagen, wo ich die reinscheiben muss?
Ich hatte gestern keine Datei da, aber jetzt hab ich mal nachgeschaut.
Nach der Zeile
$context['user']['name'] = &$user_info['name'];
könntest du es z.B. einfügen.
Also ich weiß auch nicht...
Es will und will nicht klappen.
Hab die Codezeile genau an der von dir angegebenen Stelle eingefügt und auch mal testweise die Variable $context['grouptrusted'] statt des Buttons ausgeben lassen.
Die Variable ist immer leer, daher wird dann der Button auch nicht angezeigt.
Hast du die Zeile direkt von mir kopiert?
$context['groupxy'] = in_array(Gruppenid, $user_info['groups'); ist natürlich falsch und sollte $context['groupxy'] = in_array(Gruppenid, $user_info['groups']); heißen, wobei eigentlich ein Syntaxerror kommen sollte.
edit: Bei mir gehts 1a.
Ich hatte es eben auch mal zwischenzeitlich, hab dann aber was probiert.
Und zwar ist die Gruppe, die den Link nicht sehen soll die mit der ID14.
Was muss ich denn anpassen, damit genau diese Gruppe den Link nicht sieht, alle anderen aber schon.
Es geht nämlich darum, dass ich als Admin, da ich nicht die primäre Gruppe "Trusted Member" mit ID9 habe, sondern Admin mit ID1, den Link dann nicht sehe...
Deshalb würde ich es gerne so anpassen, dass alle Gruppen den Link sehen, nur eben die Member der Gruppe mit der ID14 nicht.
Entweder stellst du dann bei dir als sekundäre Gruppe Trusted Member ein oder du tauschsts die Zeile $context['groupxy'] = in_array(9, $user_info['groups']); durch $context['groupxy'] = !in_array(14, $user_info['groups']); aus. Dadurch sehen aber auch alle, die als sekundäre Gruppe die Gruppe 14 eingestellt haben, den Link nicht.
Also bei mir siehts derzeit so aus:
Load.php:
else
$context['user']['name'] = &$user_info['name'];
$context['grouptrusted'] = !in_array(14, $user_info['groups']);
und index.template.php:
if ($context['grouptrusted']) {
echo '
<a href="../coppermine/index.php" target=_blank>', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/galerie.gif" alt="' . $txt['Galerie'] . '" style="margin: 2px 0;" border="0" />' : $txt['Galerie']), '</a>', $context['menu_separator'];
} else { echo "Test"; }
Ich hab mal zum Test das echo ausgegeben und er springt immer ins else.
Hab ich irgendwo noch nen Fehler?
Btw: Vielen Dank für deine Geduld :)
Das kann eigentlich nur sein, wenn du doch irgendwo als sekundäre oder primäre Gruppe die Gruppe 14 drinnen hast.
Was zeigt er denn an, wenn du im Template irgendwo print_r($user_info['groups']); reinschreibst?
Also ich habs jetzt so gemacht, dass ich den beiden Admins, also mir selbst und meinem Bekannten, einfach als sekundäre Gruppe "Trusted Members" gegeben habe.
Keine Lust mehr, noch länger rumzuprobieren und so gehts auch, wenn es auch nicht ganz so elegant ist ;)
Danke dir noch mal für die Hilfe, klappt jetzt wunderbar!
Besteht denn auch irgendeine Möglichkeit, für alle Themes (und Sprachen) einen Menüeintrag hinzuzufügen?
Hallo!
Ich habe da ein Problem mit Joomla und SMF.
Habe wie nach Anleitung gearbeitet und es funktioniert auch - aber nicht perfekt.
Wenn ich im Standalone-Forum bin, dann kann ich mit einem Klick auf das "Forum vergr.", das Forum vergrößern.
http://www.styria-mobile.at/portal/forum/index.php
Eigentlich ist das Forum mit der Orstio SMF-Bridge gewrappt. (Joomla)
Und da ist der Haken. Das gewrappte Forum:
http://www.styria-mobile.at/portal/index.php?option=com_smf&Itemid=45
Wenn ich hier auf das "Forum vergr." klicke, dann verändert sich nichts - Wenn man in der Browser Statuszeile schaut, ist bei der vorhin genannten Grafik die gleiche Adresse. Also http://www.styria-mobile.at/portal/index.php?option=com_smf&Itemid=45
Sehr Eigenartig!
Ich möchte, dass sich das Forum auf den ganzen Bildschirm ausdehnt.
Denn ich habe die Adresse im index.template.php (babylon-theme) richtig verlinkt (http://www.styria-mobile.at/portal/forum/index.php)
Gibt es da Probleme mit Joomla? Evt. mit der Bridge?
Text upgedatet, da verändert.
Bitte um Hilfe.
// Show the [home] and [help] buttons.
echo '
<a href="', $scripturl, '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/home.gif" alt="' . $txt[103] . '" style="margin: 2px 0;" border="0" />' : $txt[103]), '</a>', $context['menu_separator'], '
<a href="http://www.styria-mobile.at/portal/index.php">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/portal.gif" alt="' . $txt[38] . '" style="margin: 2px 0;" border="0" />' : $txt['portal']), '</a>', $context['menu_separator'], '
<a href="http://www.styria-mobile.at/portal/forum/index.php">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/forum.gif" alt="' . $txt[38] . '" style="margin: 2px 0;" border="0" />' : $txt['forum']), '</a>', $context['menu_separator'], '
<a href="', $scripturl, '?action=help">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/help.gif" alt="' . $txt[119] . '" style="margin: 2px 0;" border="0" />' : $txt[119]), '</a>', $context['menu_separator'];
Michael
Hallo!
Habe folgendes Problem (links neben Portal ist ein heller Balken), welches aber nur dann auftaucht wenn man auf das "Forum" Button geht be anderen verschwindet es wieder... Fummele schon sehr lange rum, komme nicht auf mein Denkfehler... Kann mir jemand helfen?
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fwww.tvjoost.de%2Fwerer.jpg&hash=2f74513fcc65db073d8f1a16902d39f7be8b99f8)
index.template:
// Show the start of the tab section.
echo '
<table cellpadding="0" cellspacing="0" border="0" style="margin-left: 10px;">
<tr>
<td class="maintab_' , $first , '"> </td>';
// Show the [Portal] button.
echo ($current_action=='home' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'Portal' ? 'active_back' : 'back' , '">
<a href="http://www.+++++.de/" target="_top">' , $txt[37] , '</a>
</td>' , $current_action == 'Portal' ? '<td class="maintab_active_' . $last . '"> </td>' : '';
// Show the [home] button.
echo ($current_action=='home' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'home' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '">' , $txt[103] , '</a>
</td>' , $current_action == 'home' ? '<td class="maintab_active_' . $last . '"> </td>' : '';
:) habs - da stand "home" anstatt Portal!
Hello!
Habe nach dem Home Button einen neuen für mein Portal eingefügt. Funktionieren tut es, jedoch kommen da immer unzählige Fehlermeldungen. ???
// Show the [home] [portal] and [help] buttons.
echo '
<a href="', $scripturl, '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/home.gif" alt="' . $txt[103] . '" style="margin: 2px 0;" border="0" />' : $txt[103]), '</a>', $context['menu_separator'], '
<a href="http://www.styria-mobile.at/home/index.php">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/portal.gif" alt="' . $txt[38] . '" style="margin: 2px 0;" border="0" />' : $txt['portal']), '</a>', $context['menu_separator'], '
<a href="', $scripturl, '?action=help">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/help.gif" alt="' . $txt[119] . '" style="margin: 2px 0;" border="0" />' : $txt[119]), '</a>', $context['menu_separator'];
Fehlermeldungen:
default/Errors.template.php (main_above sub template - eval?)
default/Admin.template.php (main_above sub template - eval?)
Zeile: 476
babylon/BoardIndex.template.php (main_above sub template - eval?)
Zeile: 476
Zeile 476 (Rot) im Boardindex.template.php vom Babylon Theme welches ich verwende:
// Show the login bar. (it's only true if they are logged out anyway.)
if ($context['show_login_bar'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[34], ' <a href="', $scripturl, '?action=reminder" class="smalltext">(' . $txt[315] . ')</a></td>
</tr>
<tr>
<td class="windowbg" width="20" align="center">
<a href="', $scripturl, '?action=login">
<img src="', $settings['images_url'], '/icons/login.gif" alt="', $txt[34], '" border="0" /></a>
</td>
<td class="windowbg2" valign="middle">
<[color=red]form action="', $scripturl, '?action=login2" method="post" style="margin: 0;" accept-charset="', $context['character_set'], '">[/color]
<table border="0" cellpadding="2" cellspacing="0" width="100%"><tr>
<td valign="middle" align="left">
<label for="user"><b>', $txt[35], ':</b><br /><input type="text" name="user" id="user" size="15" /></label>
</td>
Bitte um Hilfe
Michael
Das wichtigste habe ich vergessen.
Use of undefined constant portal - assumed 'portal'
Wie muss der Code ausschauen, damit keine Fehlermeldung kommt?
ich möchte, das bei Klick auf Chat in meinem Menü der Chat in einem seperatem Fenster geöffnet wird. Aber wo fürge ich das ein?
So schauts jetzt aus
if ($_GET['action']=='chat') {
echo '<div style="float:left;height:22px;background:transparent url('.$settings["images_url"].'/img/menu_hl.gif);">';
} else {
echo '<div style="float:left;">';
}
echo ' <a href="', $scripturl, '?action=chat">'.$txt[800]. '</a> </div>';
wisst ihr was ich meine?
Bin schon drauf gekommen target="blank" ist das "Geheimnis gewesen.... stand nur einwenig auf der Leitung
Quote from: lexi_be on July 12, 2007, 07:19:09 AM
Bin schon drauf gekommen target="blank" ist das "Geheimnis gewesen.... stand nur einwenig auf der Leitung
target="_blank" wenn du genau nach Standard gehe möchtest ;)
ja, Danke... so hatte ich es auch im Code eingetragen. Nur hier falsch getippelt ;)
Wie sieht es den aus, wenn man ein Template hat welches diesen Pfad nciht hat
Themes/"NameMeinesTheme"/languages/index.german.php
Die Anleitung ist ja für 1.0.x ich habe 1.8.
Quote from: a.k. on February 25, 2009, 05:16:48 AM
Wie sieht es den aus, wenn man ein Template hat welches diesen Pfad nciht hat
Themes/"NameMeinesTheme"/languages/index.german.php
Dann gilt:
Themes/Default/languages/index.german.php
Wenn ich das bei default ändere, ändert sich das dann auch bei meinem Theme?
Wenn es eine Datei in deinem Theme-Verzeichnis (und den darunter liegenden) nicht gibt, wird automatisch die entsprechende Datei des Default-Theme genutzt.
Umgekehrt also, wenn dein Theme die index.german.php nicht hat, siehst du in deinem Theme auch die Änderungen die du in der index.german.php des Default-Theme vornimmst.