Ergebnis 1 bis 8 von 8

Thema: Logo auf jeweilige Startseite verlinken und dabei Wunsch-URL-Präfix beibehalten

  1. #1
    Contao-Nutzer
    Registriert seit
    06.06.2023.
    Beiträge
    12

    Standard Logo auf jeweilige Startseite verlinken und dabei Wunsch-URL-Präfix beibehalten

    Hallo zusammen, Contao entdeckte ich ein Jahr oder so her, und bisher konnte ich Lösungen bzw. Lösungsansätze immer im Forum finden, ohne selbst posten zu müssen.

    Ich erstelle gerade eine erste mehrsprachige Contao-Website (4.13.23):

    Sprache 1: en_GB (wobei GB wichtig ist)
    URL-Präfix: en (hier lieber ohne Zusatz)
    Sprachen-Fallback: ja
    Hauptdomain: ja

    Sprache 2: de
    URL-Präfix: de

    Der gleiche Domainname ist in beiden Startpunkten eingetragen.

    config.yml:

    Code:
    # config/config.yml
    contao:
        legacy_routing: false
    Alles ist miteinander geknüpft und SprachenWechsler konfiguriert.

    Ich wusste nicht, wie ich bewirken könnte, dass ein Klick auf dem Logo User*innen zur jeweiligen Startseite führt, aber irgendwo hier im Forum (den Link habe ich leider nicht parat), fand ich folgenden Ansatz, der in der Tat funktioniert.

    Ich habe ein FE-Modul Typ HTML angelegt, das folgende beinhaltet (selbstverständlich mit richtigem Pfad):

    HTML-Code:
    <div class="logo">
    	<a href="{{env::url|urlattr}}/{{page::language|urlattr}}/" title="{{page::rootTitle|attr}}">
    		<img src="pfad/pfad/datei.svg" alt="">
    	</a>
    </div>
    Das funktioniert gut, aber eigentlich „zu gut“, indem das englische Logo so verlinkt wird:

    website.tld/en_GB/

    anstatt:

    website.tld/en/

    Da in den Startpunkt-Einstellungen das URL-Präfix "en" lautet, führt ein Klick auf dem Logo zur Fehler 404-Seite.

    Sprich, mein Wunschpräfix wird nicht berücksichtigt. (Und falls es wirklich so sein muss, würde ich den Großbuchstaben lieber los werden.)

    Klar, der Code oben ist richtig, aber ich hätte gerne gewusst, ob er irgendwie angepasst werden könnte, damit auf der englischen Website das Logo auf /en/ verlinkt wird. Ich stelle mir gut vor, dass viele von euch mit de_AT oder de_CH etc. unterwegs sind und das gleiche Problem gelöst haben.

    Ich habe mir im Handbuch die Insert-Tags gut angeschaut, mir fällt aber nichts ein, dass das Problem lösen könnte.

    (Mir ist bewusst, dass ich mich notfalls doch mit „en_GB“ anfreunden oder die Hauptsprache als nur „en“ definieren könnte.)

    Danke im Voraus für etwaige Hilfe!

    Paul

  2. #2
    Contao-Fan
    Registriert seit
    24.02.2021.
    Beiträge
    455

    Standard

    Wir haben dafür ein Plugin entwickelt, welches ein "Logo-Modul" enthält.

    Das Logo kann man in den Einstellungen unter System und auch im Page-Root überschreiben (Hier reagiert es auf den PageRoot).

    Ist für Contao 4.13 und 5.1 freigegeben, kann aber auch für Contao 4.9 in einer älteren Version installiert werden:

    - GitHub: https://github.com/oveleon/contao-company-bundle
    - Contao Extensions: https://extensions.contao.org/?p=ove...company-bundle

    ReadMe/Doku: https://github.com/oveleon/contao-co...e#logo-company

    Du kannst damit dein Logo in den Systemeinstellungen oder im Pageroot einstellen. Das Logo wird als Frontend-Modul im Seitenlayout eingebunden.
    Das Logo ist dann eine Verlinkung zu deiner index-Seite / Startseite.

    MfG

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Eine Möglichkeit wäre:
    PHP-Code:
    <a href="/<?= Contao\PageModel::findById($GLOBALS['objPage']->rootId)->urlPrefix ?>">
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Nutzer
    Registriert seit
    06.06.2023.
    Beiträge
    12

    Standard

    Danke für deine schnelle und hilfreiche Antwort auf meine Frage. Ich hab mir das Plugin kurz angeschaut.

    Ich warte, um zu schauen, ob andere mögliche Lösungsansätze hätten, weil ich es lieber „händisch“ lösen würde, ohne dafür eine Erweiterung zu installieren.

    (Gar nicht böse gemeint! Nach einigen Jahren im WP-Umfeld schätze ich an Contao, dass man mit kaum Erweiterungen ordentliche Websites erstellen kann.)

    Also mal schauen. Aber auf jeden Fall danke nochmals!

  5. #5
    Contao-Nutzer
    Registriert seit
    06.06.2023.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Eine Möglichkeit wäre:
    PHP-Code:
    <a href="/<?= Contao\PageModel::findById($GLOBALS['objPage']->rootId)->urlPrefix ?>">
    Das sieht vielversprechend aus! Probiere ich mal. (Hatte längst gemerkt, dass du fast alles weißt

  6. #6
    Contao-Nutzer
    Registriert seit
    06.06.2023.
    Beiträge
    12

    Standard

    Zitat Zitat von Inselaffe Beitrag anzeigen
    Das sieht vielversprechend aus! Probiere ich mal. (Hatte längst gemerkt, dass du fast alles weißt
    Wunderbar, es hat geklappt: danke Spooky!

    Falls in Zukunft dieser Thread noch irgendjemandem hilft: Eine PHP-Datei erstellen mit folgendem Inhalt:

    PHP-Code:
    <div class="logo">
        <a href="/<?= Contao\PageModel::findById($GLOBALS['objPage']->rootId)->urlPrefix ?>">
            <img src="pfad/pfad//logo.svg" alt="">
        </a>
    </div>
    Und unter /templates speichern. Im FE-Modul Typ HTML mittels InsertTag einbinden:

    Code:
    {{file::deine-php-datei.php}}

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Den Insert-Tag brauchst du nicht. Setze den Inhalt in ein Template namens mod_html_logo bspw., erzeuge dir ein HTML Modul wähle dieses Template aus und füge dieses Template dann in deinem Seitenlayout ein.
    Geändert von Spooky (07.06.2023 um 08:43 Uhr)
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    06.06.2023.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Den Insert-Tag brauchst du nicht nicht. Setze den Inhalt in ein Template namens mod_html_logo bspw., erzeuge dir ein HTML Modul wähle dieses Template aus und füge dieses Template dann in deinem Seitenlayout ein.
    Noch besser, danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •