News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Link hinter dem Logo verändern

Started by stucki, June 07, 2014, 06:25:14 AM

Previous topic - Next topic

stucki

SMF 2.0.7


Moin Leute,

ich möchte gerne den Link hinter dem SMF Logo oben im Header verändern.  Aktuell zeigt er auf http://xyz/index.php und ich möchte gerne das er auf http:/xyz/index.php?action=forum zeigt oder, dass der Link entfernt ist, aber das vorhandene Logo muss bestehen bleiben.


In der /Themes/themename/index.template.php scheint folgender Code dafür verantwortlich zu sein. Nur leider reichen meine Kenntnisse nicht aus, den entsprechend anzupassen. Kann mir Jemand dabei behilflich sein?
// The top bar

top_bar();



echo '

<div id="header">

<h1 class="forumtitle">

<a href="', $scripturl, '">', empty($context['header_logo_url_html_safe']) ? '<img src="' . $settings['images_url'] . '/theme/logo.png" alt="' . $context['forum_name'] . '" />' : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>

</h1>';



// The user area


Dieser Mod entfernt den Link, aber leider auch das Logo und ersetzt es mit der Bezeichnung vom Forum.

Leier nicht das was ich suche.

Hoff das mir Jemand weiterhelfen kann.

Schon mal Danke im Voraus ;)

Tekkla

$scripturl
steht für (deinem Beispiel folgend) "http:/xyz/index.php". Folglich würde
$scripturl . '?action=forum'
zum Erfolg führen.

Allerdings solltest du bedenken, dass diese Variable sehr weit in SMF verbreitet ist. Wenn du den Logolink anpasst, dann sind alle anderen Links, die $scripturl nutzen, um auf die index Seite zu verweisen, weiterhin ohne den action=Forum Parameter.


Edit:
1. Was mir grad einfällt. Wird durch die Rewrite Regel in der htaccess Datei nicht index.php auf index.php?action=forum "gesetzt"? Wozu dann noch den Link anpassen?
2. Um den Link zu entfernen, musst du den das img umspannenden a-Tag entfernen.



stucki

Quote from: Tekkla on June 07, 2014, 08:19:08 AM

Edit:
1. Was mir grad einfällt. Wird durch die Rewrite Regel in der htaccess Datei nicht index.php auf index.php?action=forum "gesetzt"? Wozu dann noch den Link anpassen?
2. Um den Link zu entfernen, musst du den das img umspannenden a-Tag entfernen.

Dachte ich auch, dass durch die htaccess alles nach ?action=forum umgeleitet wird, aber ist leider nicht so.

So ganz glücklich bin ich natürlich auch nicht mit der Lösung, wie du schon sagst die Ressource $scripturl von anderen Bereichen im SMF genutzt wird.

Aber mir geht´s halt darum, dass die User im "normal Fall" immer auf der ?action=forum landen.

Könnte man das noch anders lösen?

DeVIL-I386

#3
Quote from: stucki on June 07, 2014, 06:25:14 AM
ich möchte gerne das er auf http:/xyz/index.php?action=forum zeigt
Sollte so funktionieren:

<a href="', $scripturl, '">', empty($context['header_logo_url_html_safe']) ? '<img src="' . $settings['images_url'] . '/theme/logo.png" alt="' . $context['forum_name'] . '" />' : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>

in

<a href="./index.php?action=forum"><img src="./Themes/FastLine/images/theme/logo.png" alt="FCS-FORUM"></a>

ändern.

stucki

Quote from: Tekkla on June 07, 2014, 08:19:08 AM
$scripturl
steht für (deinem Beispiel folgend) "http:/xyz/index.php". Folglich würde
$scripturl . '?action=forum'
zum Erfolg führen.



Wenn ich den Code so ändere <a href="', $scripturl . '?action=forum' '">', empty($context['header_logo_url_html_safe']) ? '<img src="' . $settings['images_url'] . '/theme/logo.png" alt="' . $context['forum_name'] . '" />' : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>

kommt folgende fehlermeldung Template Analyse Fehler!

Ein Problem trat beim Laden des /Themes/FastLine/index.template.php Templates oder der Sprachdatei auf. Bitte überprüfe die Syntax und versuche es erneut. Bitte beachte, dass einzelne Anführungszeichen (') oft mit einem Backslash (\) auskommentiert werden müssen. Um nähere Informationen von PHP zu diesem Fehler zu erhalten, versuche die Seite direkt aufzurufen.

Du kannst auch versuchen, die Seite zu aktualisieren oder das Standard-Theme zu benutzen.

Parse error: syntax error, unexpected ''">'' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in .../Themes/FastLine/index.template.php on line 191
182: echo !empty($settings['forum_width']) ? '
183: <div id="wrapper" style="width: ' . $settings['forum_width'] . '">' : '', '';
184:
185: // The top bar
186: top_bar();
187:
188: echo '
189: <div id="header">
190: <h1 class="forumtitle">
191: <a href="', $scripturl . '?action=forum' '">', empty($context['header_logo_url_html_safe']) ? '<img src="' . $settings['images_url'] . '/theme/logo.png" alt="' . $context['forum_name'] . '" />' : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>
192: </h1>';
193:
194: // The user area
195: user_area();

stucki

So funktioniert es, aber nun wird mir mein Logo nicht mehr angezeigt. Da scheint was mit dem Pfad nicht zu stimmen.

<a href="/index.php?action=forum"><img src="../theme/logo.png" alt="XY Forum"></a>

stucki

Hab den Code jetzt so angepasst und es funktioniert 8)

<a href="/index.php?action=forum">', empty($context['header_logo_url_html_safe']) ? '<img src="' . $settings['images_url'] . '/theme/logo.png" alt="' . $context['forum_name'] . '" />' : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>

Vielen Dank für Eure Hilfe!

Tekkla

Das ist der Fehler.

<a href="', $scripturl . '?action=forum' '">

Um Texte (Strings) in PHP zu verknüpfen, nimmt man in aller Regel einen Punkt.
Werden Strings mit dem Befehl echo ausgegeben, dann kann man auch ein Komma verwenden.
Strings in PHP beginnen mit ' und enden mit '
Eine Variable beginn, wie bei $scripturl, mit einem $.


Folglich wäre folgendes richtig
<a href="', $scripturl, '?action=forum">

Meine Antwort war nicht zielgerichtet, sondern zu allgemein. Sorry.

Advertisement: