Ergebnis 1 bis 6 von 6

Thema: [Gelöst] Detailseite für einen Artikel (Clean URL)

  1. #1
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard [Gelöst] Detailseite für einen Artikel (Clean URL)

    Hallo,

    ich entwickle grade einen kleinen Shop, den ich über ein Modul in eine Seite einbinde.

    Nun möchte ich dynamische Artikeldetailseiten haben. Deshalb habe ich ein Zweites Modul entwickelt, was die Detailseite darstellt.

    Der Shop läuft über www.example.de/shop.html

    und die Detailseite ist über eine Unterseite erreichbar: www.example.de/shop/artikel.html

    So kann ich natürlich einen GET Parameter übergeben www.example.de/shop/artikel.html?id=2... ist aber langweilig, da ich lieber Clean URLs haben will für Google. Lieber wäre mir so: http://www.example.de/shop/artikel/s...iles-item.html

    Wie stelle ich das jetzt im Modul an, dass er den Alias "super-geiles-item" in der Datenbank sucht. Er sagt natürlich "Page not Found"...

    Den Link zur Detailseite baue ich so zusammen:

    PHP-Code:

    $res 
    $this->Database->prepare('SELECT id, alias from tl_page where id=?')->execute($this->jumpTo_detail);
    $this->detailSeiteArr $res->fetchAssoc();    

    $this->generateFrontendUrl($this->detailSeiteArr '/artikel/' .$objItems->alias
    Aber woher weiß das Detail Modul, dass es gemeint ist?

    Viele Grüße
    Geändert von poldixd (08.10.2012 um 10:50 Uhr)

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $this->Input->get("artikel"
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    PHP-Code:
    $this->Input->get("artikel"
    danke, aber er findet ja nicht einmal das Modul:

    No active page for page ID "shop/detail/artikel/3", host "example.de" and languages "de, en" (http://example.de/de/shop/detail/artikel/3.html)

  4. #4
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    du solltest schon eine Detailseite im seitenbaum haben, die ein Modul fuer die Details hat.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  5. #5
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    Die ist ja auch angelegt:

    -------------------
    Titel: "Shop"
    Alias: "shop" (http://example.de/de/detail.html)
    -------------------

    Titel: "Shop Artikel Details" (unterseite von Shop)
    Alias: "detail" (http://example.de/de/shop/detail.html)

    Modul ist auch eingefügt.

    PHP-Code:
    class shop_item_detail extends Module {

        protected 
    $strTemplate 'shop_item_detail'
        
        public function 
    generate() {
            if(
    TL_MODE == 'BE') {
                
    $t = new BackendTemplate('be_wildcard');
                
    $t->wildcard '### SHOP ITEM DETAIL  ###';
                return(
    $t->parse());
            }
            
            return 
    parent::generate();
        }
        
        protected function 
    compile(){
        
            echo 
    $this->Input->get('artikel');
        
            
    #if ( strlen($this->Input->get('artikel')) )
                
            #    echo "hi";
                
            #}
        
            #print_r($this);
        
        

    Aber leider findet er die Seite nicht, wenn ich "http://example.de/de/shop/detail/test-artikel.html" aufrufen will

  6. #6
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    ok, ich habe es raus. Es gibt spezielle Wörter in der URL, die es ermöglichen Parameter in der URL als Clean URL zu übergeben:

    /de/shop/item/wertgutschein-123.html

    gibt aus ($_GET):

    PHP-Code:
    language de
    item 
    wertgutschein-123 
    /de/shop/1/wertgutschein-123.html

    gibt aus ($_GET):

    PHP-Code:
    language de
    wertgutschein-123 

    /de/shop/page/wertgutschein-123.html

    gibt aus ($_GET):

    PHP-Code:
    language de
    page 
    wertgutschein-123 

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
  •