.html an Alias anhängen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • NoName26
    Contao-Fan
    • 13.08.2010
    • 304

    #1

    .html an Alias anhängen

    Hallo,

    ich nutze das Modul CatalogEdit hier, um Besuchern die Möglichkeit zu bieten, sich in ein Händlerverzeichnis einzutragen. Das Feld "Firmenname" wird zur Generierung des Alias verwendet. Nun würde ich gerne an das Alias automatisch ein .html anhängen. Ich vermute, dass ich die Änderung in der ModuleCatalogEdit.php im Bereich der Zeilen 140/150 vornehmen muss. Aber ich weiß leider nicht genau wo.

    Kann mir da jemand weiterhelfen? Besten Dank!
    Viele Grüße, TN
  • Tim G
    Contao-Urgestein
    • 13.02.2010
    • 2212

    #2
    Hi,
    besser wäre es diese Änderungen im Template bzw. per Hook vorzunehmen.
    Was soll denn am Ende genau bei rauskommen?

    Grüße Tim
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

    Kommentar

    • NoName26
      Contao-Fan
      • 13.08.2010
      • 304

      #3
      Hi Tim,

      die URL zu den Detailseiten lautet momentan (mit FolderURL und urlcleaner) http://www.domain.de/unterverzeichni...erbeartikel-ek. Ziel soll eine URL mit abschließendem .html sein, also http://www.domain.de/unterverzeichni...rtikel-ek.html
      Viele Grüße, TN

      Kommentar

      • Tim G
        Contao-Urgestein
        • 13.02.2010
        • 2212

        #4
        Verstehe,
        das solltest du an 3 Stellen manipulieren können:
        1. Contao weit, über den generateFrontendUrl Hook. Dort nach generierten URLs suchen, die nicht mit .html enden. Sollte auch den Catalog beinflussen können.
        2. Catalog weit, über den catalogFrontendInsert Hook im CatalogEdit Modul. Dort den Anchor-hrefs das fehlende .html mitgeben. Die geänderten Daten werden an das Template weitergereicht
        3. Im Template selbst. Dort sämtliche fehlenden .html in den anchors ergänzen.

        Ich würde wohl bei 3. anfangen zu arbeiten (das Template ist variabler). Die Anpassungen sind zu gering um dafür einen inject zu setzen, aber das kann jeder für sich entscheiden

        Grüße Tim
        http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

        Kommentar

        • NoName26
          Contao-Fan
          • 13.08.2010
          • 304

          #5
          Hallo Tim,

          könntest du deinen 3. Lösungsvorschlag ein wenig erörtern (welche Datei du meinst und wie die Anpassung aussehen müsste)? Ich stehe da gerade ein wenig auf dem Schlauch und wüsste nicht, wie ich das über die catalog_edit.tpl beeinflussen könnte

          Danke!
          Viele Grüße, TN

          Kommentar

          • Tim G
            Contao-Urgestein
            • 13.02.2010
            • 2212

            #6
            Ich hab mir mal ne kleine Testumgebung gebaut.
            Mal nur so am Rande gefragt, dein alias Feld ist auch als Alias-Feld in deinen Katalog-Einstellungen eingestellt, ja? Und das alias-Feld selbst ist mit dem Firmennamen Feld verknüpft. Weil eigentlich sollte es auch ohne Anpassungen out-of-the-box funktionieren.
            http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

            Kommentar

            • NoName26
              Contao-Fan
              • 13.08.2010
              • 304

              #7
              Ja richtig:
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: mKJWf.png
Ansichten: 1
Größe: 5,7 KB
ID: 917173
              Viele Grüße, TN

              Kommentar

              • Tim G
                Contao-Urgestein
                • 13.02.2010
                • 2212

                #8
                Zitat von NoName26 Beitrag anzeigen
                Ja richtig:
                [ATTACH=CONFIG]4869[/ATTACH]
                Das ist gut so.

                In den Einstellungen vom Katalog selbst noch unter dem Punkt "Alias-Feld" dieses Feld auswählen. Dann ist das Setup richtig und eigentlich sollten dann auch die Alias richtig gesetz werden mit .html
                http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                Kommentar

                • NoName26
                  Contao-Fan
                  • 13.08.2010
                  • 304

                  #9
                  Ah, okay, da hatte ich noch "Alias" ausgewählt.

                  Allerdings konnte ich den Fehler damit nicht beheben.
                  URL vorher: .../haendler/musterfirma-gmbh
                  URL jetzt: .../haendler/Musterfirma GmbH
                  Viele Grüße, TN

                  Kommentar

                  • NoName26
                    Contao-Fan
                    • 13.08.2010
                    • 304

                    #10
                    Ich nutze FolderURL, d.h. wenn ich neue Seiten anlege, dann vergebe ich händisch die Endung. Je nach Bedarf / oder .html:

                    http://www.domain.com/werbetaschen/h...r-und-partner/
                    http://www.domain.com/werbetaschen/h...eueintrag.html

                    Vielleicht hängt es damit zusammen?
                    Viele Grüße, TN

                    Kommentar

                    • Tim G
                      Contao-Urgestein
                      • 13.02.2010
                      • 2212

                      #11
                      FolderURL sollte lediglich einen Pfad bauen über den alias. Dort wird nie ein .html händisch angehängt.
                      Der Catalog baut sich dynamische Pfade via des eingestellten alias Feldes und setzt ebenfalls automatisch ein .html dahinter.
                      Den alias Umschreiben braucht man eigentlich nur, wenn man Abweichungen von diesem normalen Prozess haben will. Z.b. wenn der Alias sich auch zwei oder mehr Feldern zusammensetzen soll.

                      Da du das alles eigentlich nicht brauchst, sollte es ohne weiteres so funktionieren. Bei mir ist das jedenfalls so - auch mit der Katalog-Bearbeitung
                      http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                      Kommentar

                      • NoName26
                        Contao-Fan
                        • 13.08.2010
                        • 304

                        #12
                        Unter System > Einstellungen > Frontend-Einstellungen > URL-Suffix kann man ja vorgeben, welches Suffix Contao anhängen soll. Da wir aus SEO-Gründen ohne index-Dateien arbeiten (stattdessen wird auf das Verzeichnis gelinkt), ist dieses Feld bei uns leer. Wir vergeben das URL-Suffix händisch für jede Seite.

                        Die .htaccess ist ebenfalls entsprechend angepasst:
                        Code:
                          ##
                          # By default, Contao adds ".html" to the generated URLs to simulate static
                          # HTML documents. If you change the URL suffix in the back end settings, make
                          # sure to change it here accordingly!
                          #
                          #   RewriteRule .*\.html$ index.php [L]   # URL suffix .html
                              RewriteRule .* index.php [L]          # No URL suffix
                          #   RewriteRule .*\.txt$ index.php [L]    # URL suffix .txt
                          #
                          # If you are using mod_cache, it is recommended to use the RewriteRule below,
                          # which adds the query string to the internal URL:
                          # 
                          #   RewriteRule (.*\.html)$ index.php/$1 [L]
                          #
                          # Note that not all environments support mod_rewrite and mod_cache!
                          ##
                        Folglich scheint es daran zu liegen, dass dem Alias im Catalog kein Alias hinzugefügt wird.

                        Daher wäre eine etwas genauere Beschreibung deines Vorschlags Nr. 3 wahrscheinlich unsere Lösung
                        Viele Grüße, TN

                        Kommentar

                        • Tim G
                          Contao-Urgestein
                          • 13.02.2010
                          • 2212

                          #13
                          Da wir aus SEO-Gründen ohne index-Dateien arbeiten (stattdessen wird auf das Verzeichnis gelinkt), ist dieses Feld bei uns leer. Wir vergeben das URL-Suffix händisch für jede Seite.
                          Ihr macht Euch das Leben damit doch unnötig schwer damit
                          Ohne index.php zuarbeiten ist richtig, aber dafür gibt es mod_rewrite. Dieses kürzt den index.php block aus deiner URL und sämtliche Contao- Alias können ohne Probleme mit .html ergänzt werden. Genau das zeigt der parseFrontendUrl Hook. Dieser wird beim umschreiben sämtlicher Alias aufgerufen und das suffix deiner Wahl angehängt z.b. '.html', oder aber auch '.xml', oder auch gar nichts.

                          Ich mach ja auch nichts anderes. Meine Seitenstruktur nutzt auch folderURL und die Alias sehen z.B. so aus: kataloge/produkte/items/produkt_1.html

                          kursiv: dynamisch vom catalog erzeugt. davor einfach der alias aus der Seitenstruktur

                          Das funktioniert perfekt.

                          --
                          Ihr müsst also zusätzlich zum alias das .html mit in der Datenbank speichern, da es nicht dynmaisch ergänzt wird. Da kommen wir mit Weg Nr. 3 nicht weiter, sondern brauchen bereits zwei Hooks.
                          1. catalogFrontendInsert - Hook // wird aufgerufen wenn ein neuer Eintrag im FE angelegt wird
                          2. catalogFrontendUpdate - Hook // wird aufgerufen wenn ein bestehender Eintrag geändert wird.
                          http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                          Kommentar

                          • Tim G
                            Contao-Urgestein
                            • 13.02.2010
                            • 2212

                            #14
                            Da stimmt noch so einiges nicht in deinem Katalog:

                            Die URLs, die erstellt wurden scheinen nicht durch ein alias-Feld gelaufen zu sein. : haendler-und-partner/haendler//items/ABC Werbeartikel e.K.
                            der Doppelslash ist sicher nur ein Vertipper, aber die Leerzeichen sind eins-zu-eins das Namens-Feld kompiert.

                            Sind das alte Einträge?
                            http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                            Kommentar

                            • Tim G
                              Contao-Urgestein
                              • 13.02.2010
                              • 2212

                              #15
                              Lange Rede...

                              Ich glaube du brauchst den geänderten Link Href eh nur im Katalog-Liste Modul.
                              Da reicht sowas hier:

                              PHP-Code:
                              <?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
                              <div class="field <?php echo $field; ?>">
                                  <div class="label"><?php echo $data['label']; ?></div>
                                  <div class="value"><?php 
                                  // check if value is a link
                                  if(strpos($data['value'], 'href='))
                                  {
                                      preg_match('/href=\"(.*?)\"/', $data['value'], $result);
                                      $strHref = $result[1];
                                      $data['value'] = str_replace($strHref, $strHref.='.html', $data['value']);
                                  }
                                  echo $data['value']; 
                                  ?></div>
                              </div>
                              <?php endif; ?>
                              http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                              Kommentar

                              Lädt...