Ergebnis 1 bis 29 von 29

Thema: Startseite/Home ohne Seitentitel

  1. #1
    Contao-Nutzer Avatar von gHeldT
    Registriert seit
    09.07.2009.
    Ort
    Berlin
    Beiträge
    163

    HTML Startseite/Home ohne Seitentitel

    Hallo;

    ich habe in der fe_page.tpl folgenden Code:

    PHP-Code:
    <title><?php echo $this->pageTitle?> | <?php echo $this->mainTitle?></title>
    Raus kommt also bspw.
    <title> Home | Titel der Website</title>
    <title> Seite 2 | Titel der Website</title>
    usw.

    Jetzt möchte ich gerade für die Startseite "Home", dass der Seitentitel (pageTitle) hier nicht ausgegeben wird sondern nur erscheint:
    <title>Titel der Website</title>.

    Ich möchte nicht verschiedene Templates und Seitenlayouts anlegen. Am liebsten wäre mir irgendeine if-Anfeisung (entschuldigt, wenn das nicht das richtige ist - PHP ist so überhaupt nicht meins ...), die ich einfügen kann, damit auf der Startseite pageTitle nicht ausgegeben wird.

    Ich hoffe das war verständlich und freue mich auf eure Hilfe.
    Geändert von gHeldT (13.06.2011 um 15:24 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Hallo, eine Möglichkeit wäre folgendes:
    PHP-Code:
    <title>
        <?php if ($this->replaceInsertTags('{{env::page_alias}}') != 'home') echo $this->pageTitle ' - '?>
        <?php echo $this->mainTitle?>
    </title>
    Nicht vergessen: home mit dem Seitenalias deiner Startseite ersetzen.

  3. #3
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Eine etwas lesbarere Variante ist folgende:

    PHP-Code:
    <title><?php if ($this->pageTitle == "Home"): echo $this->mainTitle; else: echo $this->pageTitle." - ".$this->mainTitle; endif; ?></title>
    Dann muss man nicht erst den Insert-Tag parsen. Alles was mit Insert-Tags verfügbar ist, kann man auch mit reinem PHP erreichen

  4. #4
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Und noch kürzer und wie ich finde sogar noch etwas lesbarer.

    PHP-Code:
    <title><?php echo ( $this->pageTitle != 'Home' $this->pageTitle.' | ' '' ).$this->mainTitle ?></title>

  5. #5
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Kürzer vielleicht aber es entspricht nicht dem Template Guideline von Contao. Oder hast du solche Konstrukte schonmal im Template gesehen

    Normalerweise werden dort keine Klammern und Kurzschreibweisen verwendet. Ich hab mich damit angefreundet und finde mittlerweile sogar besser.

  6. #6
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    Dann muss man nicht erst den Insert-Tag parsen. Alles was mit Insert-Tags verfügbar ist, kann man auch mit reinem PHP erreichen
    Danke für den Tipp Muss aber leider feststellen, dass Seitenname und Seitenalias nicht in $this vorhanden sind.
    Ich habe als Seitentitel nämlich gerne sowas wie "Herzlich willkommen auf ..." statt nur "Home".

  7. #7
    Contao-Nutzer Avatar von gHeldT
    Registriert seit
    09.07.2009.
    Ort
    Berlin
    Beiträge
    163

    Standard Danke!

    Hallo,

    vielen Dank für eure Hilfe! Habe jetzt mal die Lösung von jared genommen! Schön elegant! Vielen Dank dafür!

    Aber auch den anderen vielen Dank für Ihre Zeit und Mühen.

  8. #8
    Contao-Nutzer
    Registriert seit
    15.12.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von andreasisaak Beitrag anzeigen
    Eine etwas lesbarere Variante ist folgende:

    PHP-Code:
    <title><?php if ($this->pageTitle == "Home"): echo $this->mainTitle; else: echo $this->pageTitle." - ".$this->mainTitle; endif; ?></title>
    Bitte entschuldigt, dass ich dieses Topic wieder herrauskrame...

    Bei mir funktioniert obige PHP-Anweisung nicht. Der Seitentitel meiner Startseite heisst "home".
    Also füge ich folgenden Text in mein verwendetes fe_page-Template ein:

    PHP-Code:
    <title><?php if ($this->pageTitle == "home"): echo $this->mainTitle; else: echo $this->pageTitle." - ".$this->mainTitle; endif; ?></title>
    Leider steht nun aber immer noch "home - Titel der Website" im Titel...

    Was habe ich falsch gemacht?

    Edit: Aaaah! So einfach!

    Ich hatte versehentlich noch das alte fe_page.xhtml drin, obwohl ich neuerdings fe_page.html5 verwende...
    Bitte entschuldigt die Störung, dieses Posting kann prinzipiell gelöscht werden...
    Geändert von KloBoBBerLe (28.03.2013 um 18:35 Uhr)

  9. #9
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Das einfachste wäre wenn du die Extension "extendedSEO" verwendest. Damit kannst du den Seitentitel der Startseite ändern ohne das Template zu bearbeiten.

  10. #10
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.725
    Partner-ID
    634

    Standard

    @andreas

    Ich würde diese Extension gerne unter 3.X einsetzen. Gibt es schon eine Schätzung ob und ggf. wann diese verfügbar sein wird?

  11. #11
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Sagt doch was. Ich wusste nicht mal das überhaupt jemand diese Extension verwendet da es bisher noch Null Feedback dazu gab. Die grade neu veröffentlichte Version 1.2.0 im Extension Repository unterstützt auch die Contao Version 3.0.6!

    Viel Spaß.

  12. #12
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.725
    Partner-ID
    634

    Standard

    Danke, das ging ja schnell. Modul ist installiert (3.0.4) jedoch kommen folgende Fehlermeldung (Autoload-Datei habe ich auch schon neu erstellt, jedoch auch keine Änderung)
    Code:
    Recoverable error: Argument 1 passed to ExtendedSeo::generatePage() must be an instance of Contao\Database\Mysql\Result, instance of Contao\PageModel given, called in /home/www/sunwave/system/modules/core/pages/PageRegular.php on line 126 and defined in …/system/modules/x-seo/ExtendedSeo.php on line 18
    
    #0 …/system/modules/x-seo/ExtendedSeo.php(18): __error(4096, 'Argument 1 pass...', '/home/www/sunwa...', 18, Array)
    #1 …/system/modules/core/pages/PageRegular.php(126): ExtendedSeo->generatePage(Object(Contao\PageModel), Object(Contao\LayoutModel), Object(Contao\PageRegular))
    #2 …/index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
    #3 …/index.php(411): Index->run()
    #4 {main}
    
    
    Recoverable error: Argument 2 passed to ExtendedSeo::generatePage() must be an instance of Contao\Database\Mysql\Result, instance of Contao\LayoutModel given, called in /home/www/sunwave/system/modules/core/pages/PageRegular.php on line 126 and defined in …/system/modules/x-seo/ExtendedSeo.php on line 18
    
    #0 …/system/modules/x-seo/ExtendedSeo.php(18): __error(4096, 'Argument 2 pass...', '/home/www/sunwa...', 18, Array)
    #1 …/system/modules/core/pages/PageRegular.php(126): ExtendedSeo->generatePage(Object(Contao\PageModel), Object(Contao\LayoutModel), Object(Contao\PageRegular))
    #2 …/index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
    #3 …/index.php(411): Index->run()
    #4 {main}
    
    
    Warning: Cannot modify header information - headers already sent by (output started at /home/www/sunwave/system/helper/functions.php:69) in …/system/modules/core/library/Contao/Template.php on line 277
    
    #0 [internal function]: __error(2, 'Cannot modify h...', '/home/www/sunwa...', 277, Array)
    #1 …/system/modules/core/library/Contao/Template.php(277): header('Vary: User-Agen...', false)
    #2 …/system/modules/core/classes/FrontendTemplate.php(221): Contao\Template->output()
    #3 …/system/modules/core/pages/PageRegular.php(163): Contao\FrontendTemplate->output()
    #4 …/index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
    #5 …/index.php(411): Index->run()
    #6 {main}
    
    
    Warning: Cannot modify header information - headers already sent by (output started at /home/www/sunwave/system/helper/functions.php:69) in …/system/modules/core/library/Contao/Template.php on line 278
    
    #0 [internal function]: __error(2, 'Cannot modify h...', '/home/www/sunwa...', 278, Array)
    #1 …/system/modules/core/library/Contao/Template.php(278): header('Content-Type: t...')
    #2 …/system/modules/core/classes/FrontendTemplate.php(221): Contao\Template->output()
    #3 …/system/modules/core/pages/PageRegular.php(163): Contao\FrontendTemplate->output()
    #4 …/index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
    #5 …/index.php(411): Index->run()
    #6 {main}

  13. #13
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Den Fehler habe ich hier unter einer 3.0.6 nicht. Ich schau mir das mal an.

  14. #14
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Du hast "Fehlermeldungen anzeigen" aktiv, richtig?

  15. #15

  16. #16
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    Aktualisiere bitte nochmal die Extension.

  17. #17
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.725
    Partner-ID
    634

    Standard

    Danke Andreas, das war es!

  18. #18
    Contao-Fan Avatar von varix
    Registriert seit
    26.03.2010.
    Ort
    Berlin
    Beiträge
    626

    Standard

    Hi,

    gerade gelesen und wollte es auch installieren, allerdings kommt während der Installation die Fehlermeldung
    Code:
    Fatal error: Cannot redeclare class tl_page in /var/www/web259/html/fahranfaenger/system/modules/core/dca/tl_page.php on line 1702
    Contao 3.0.6

    Komme auch nicht mehr ins BE....gleiche Fehlermeldung

    .....per FTp gelöscht, DB aktualisiert, BE&FE laufen wieder.

    varix
    Geändert von varix (04.04.2013 um 15:37 Uhr)

  19. #19
    Contao-Urgestein Avatar von andreasisaak
    Registriert seit
    07.07.2009.
    Beiträge
    4.097
    User beschenken
    Wunschliste

    Standard

    @Varix

    Geht es nun oder nicht bei dir?

  20. #20
    Contao-Nutzer
    Registriert seit
    27.10.2010.
    Beiträge
    64

    Standard

    Hey Andreas,

    wird mit deiner Erweiterung die Extension "keywords" überflüssig? Damit kann ich auch Suchbegriffe und Die Beschreibung pflegen.

    Mit der Lösung über das Template kann ich ein Teil meines Problemes schon lösen, allerdings ist bei mir die Startseite der Blog. Und um doppelte title-Tags zu vermeiden habe ich über das pagination-Template* auch die Seitenzahl in der Form "(Seite 1 von 34)" in meinen Titel eingebunden. Diesen Part bekomme ich mit deiner Lösung nicht weg auf der Startseite.

    Hat jemand eine Idee wie ich das Problem lösen kann?

    Aktuell: "pageTitel - (Pagination) - rootTitel"
    Ziel für die Startseite: "rootTitel"
    Mit obiger Lösung: "- (Pagination) - rootTitel"

    Wäre klasse wenn jemand helfen kann! Danke!

    MfG, Robert


    *Code um Seitenzahl im Titel anzuzeigen:
    HTML-Code:
    <?php global $objPage; $objPage->rootTitle = ' ('.$this->total.') - '.$objPage->rootTitle; ?>
    Geändert von toushenne (10.07.2013 um 15:41 Uhr)

  21. #21
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    380

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Und noch kürzer und wie ich finde sogar noch etwas lesbarer.

    PHP-Code:
    <title><?php echo ( $this->pageTitle != 'Home' $this->pageTitle.' | ' '' ).$this->mainTitle ?></title>
    Ich hab das mal umgedreht und eingebaut, vielen Dank dafür!

    PHP-Code:
    <?php echo $this->pageTitle == 'Home' $this->mainTitle $this->mainTitle.' | '.$this->pageTitle ?>
    Merkwürdigerweise kann ich hier aber nicht mit einem Insert Tag arbeiten: 'Home' funktioniert, '{{link_title::2}}' funktioniert nicht.
    An was liegt das?

    ToM

  22. #22
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Eventuell ist kein Titel gesetzt, sondern nur der Name?

    Versuch mal die folgenden:

    Code:
    {{page::title}}
    {{page::pageTitle}}
    Der erste gibt den Namen der Seite aus, der zweite den Titel...

  23. #23
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    380

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Eventuell ist kein Titel gesetzt, sondern nur der Name?

    Versuch mal die folgenden:

    Code:
    {{page::title}}
    {{page::pageTitle}}
    Der erste gibt den Namen der Seite aus, der zweite den Titel...
    Ich hab mich blöd ausgedrückt: Ich möchte gerne das 'Home' ersetzen, das ändert sich ja je nach Seite.
    Die ID 2 ändert sich normalerweise seltener, denn Startpunkt der Seite ist normalerweise die Seite, die man zuerst nach der Hauptseite (ID 1) anlegt.

    Wenn ich den Inserttag '{{link_title::2}}' in einem normalen Text Inhaltselement ausgebe, erscheint das 'Home', also der Titel der Seite.
    Ich hoffe, mein Kauderwelsch ist verständlich.

    Generell funktioniert mein oben geposteter Code einwandfrei, nur möchte ich halt die den Text entfernen, da variabel und mit einer nunja Variablen (= Inserttag) arbeiten.

    ToM

  24. #24
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Ich hab dich falsch verstanden und trotzdem die richtige Lösung gepostet

    Die page:: Tags sind immer auf die aktuelle Seite bezogen.

  25. #25
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    380

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Ich hab dich falsch verstanden und trotzdem die richtige Lösung gepostet
    Hehe.
    Mein Versuch mit den beiden Vars ergibt aber was anderes:

    Code:
    $this->pageTitle == 'Home' ? $this->mainTitle : $this->mainTitle.' | '.$this->pageTitle
    ergibt: Name der Seite

    Code:
    $this->pageTitle == '{{page::title}}' ? $this->mainTitle :  $this->mainTitle.' | '.$this->pageTitle
    ergibt: Name der Seite | Home

    Code:
    $this->pageTitle == '{{page::pageTitle}}' ? $this->mainTitle :  $this->mainTitle.' | '.$this->pageTitle
    ergibt: Name der Seite | Home


    Das erste wäre der Wunsch, der so auch funktioniert, nur die Inserttags machen da nicht mit. Irgendwas übersehe ich, und meinem Gefühl nach ist es nur eine Kleinigkeit...

    ToM
    Mein kleiner Contao Spielplatz - Status: Portierung von 2.11.17 auf 4.11.x in Arbyte... Fertsch Noi, erst kurz vor Stuttgart 21 ganz fertig

  26. #26
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Jetzt verstehe ich dich...

    Dafür brauchst du eine Ersetzungsfunktion:

    PHP-Code:
    <?php
    echo ( $this->pageTitle == $this->replaceInsertTags('{{page::title}}') ? $this->mainTitle $this->mainTitle.' | '.$this->pageTitle );
    So?

  27. #27
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    380

    Standard

    Noch nicht ganz, aber wir nähern uns: Ich muss dem Inserttag ja noch eine ID der einen Seite angeben können, wo er NUR den Seitentitel anzeigen soll (= Startseite), auf allen anderen Seiten soll er ja Titel der aktuellen Seite mit "|" getrennt dranpappen.
    Sprich sowas wie {{page_title::*}}, wobei * == ID
    Die Funktion replaceInsertTags() war mir neu, erscheint aber sehr nützlich.

    ToM

    Edith sagt: Bingo! Meine vorherige Idee mit dem {{link_title::*}} Inserttag passt, zusammen mit der Funktion replaceInsertTags()
    Das war die Kleinigkeit, die mir fehlte...

    Lösung:
    PHP-Code:
    <?php echo ( $this->pageTitle == $this->replaceInsertTags('{{link_title::2}}') ? $this->mainTitle $this->mainTitle.' | '.$this->pageTitle ); ?>
    Danke!!!

    ToM
    Geändert von Nightwing (17.05.2014 um 12:24 Uhr)
    Mein kleiner Contao Spielplatz - Status: Portierung von 2.11.17 auf 4.11.x in Arbyte... Fertsch Noi, erst kurz vor Stuttgart 21 ganz fertig

  28. #28
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Okay, 5 Beitrage bevor ich begriffen habe was du eigentlich vorhast

    Ist heute nicht mein Tag, aber hauptsache du hast irgendetwas Verständliches aus meinen Beiträgen hinausziehen können.

  29. #29
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    380

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Okay, 5 Beitrage bevor ich begriffen habe was du eigentlich vorhast

    Ist heute nicht mein Tag, aber hauptsache du hast irgendetwas Verständliches aus meinen Beiträgen hinausziehen können.
    Hehe , ja hat ein bischen gedauert, aber meine Beiträge waren bestimmt auch schwer verständlich.
    Muss wohl am Freitag Abend gelegen haben...

    ToM
    Mein kleiner Contao Spielplatz - Status: Portierung von 2.11.17 auf 4.11.x in Arbyte... Fertsch Noi, erst kurz vor Stuttgart 21 ganz fertig

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
  •