+ Antworten
Ergebnis 1 bis 4 von 4

Thema: [miniTutorial] Dynamischer Wrapper + SEO Urls dafür

  1. #1
    Neu an Board Avatar von UBK3
    Registriert seit
    23.01.2006
    Beiträge
    67
    Bedankte sich
    2
    Erhielt 13 Danksagungen
    in 10 Beiträgen

    Idee [miniTutorial] Dynamischer Wrapper + SEO Urls dafür

    Hier habe ich für euch ein kleines Tutorial wie man den Wrapper modifiziert um externe dynamische Seiten zb. Warplaner (vwar):
    Code:
     /vwar/war.php?action=oppinfo&oppid=18
    einbinden zu können. Nachzusehen auf meiner Clanpage oben links.

    Das Problem war immer bislang dass der Wrapper nur statisch in Joomla verlinkt wurde und per ItemID aufgerufen werden konnte.

    ~~~~Anleitung ausgehend von Joomla!1.0.11~~~~--------------------------------

    1. Öffnen von \components\com_wrapper\wrapper.html.php
    2. Suchen von (Zeile 53)
    PHP-Code:
        src="<?php echo $row->url?>"
    3. Mit folgenden Code ersetzen:
    PHP-Code:
    <?php 
        
    switch ($_GET['type'])
        {
            case 
    'clanid':
                echo 
    "src=./com.vwar/war.php?action=oppinfo&oppid=".$_GET['id'];    
                break;
            case 
    'warid':
                echo 
    "src=./com.vwar/war.php?action=details&warid=".$_GET['id'];    
                break;
            default:
                echo 
    "src=".$row->url;    
                break;
        }
    ?>
    Erläuterung: Normalerweise wird der Wrapper wie folgt aufgerufen:
    index.php?option=com_wrapper&Itemid=46

    Der neue Code ermöglicht es, den statisch verankerten Link (im Backend eingestellt, zb durch einen neuen Menüpunkt) dynamisch neuen Werten zu zuweisen.

    Nun ist es möglich, in eurem Modul den Link so anzugeben:
    index.php?option=com_wrapper&Itemid=46&type=clanid&id=9
    Da der Wert Type gesetzt wurde, wird in der SWITCH Anweisung die URL ./com.vwar/war.php?action=oppinfo&oppid= direkt in den Wrapper geladen und am Ende wird die &id=9 (als Zahl 9) angefügt.

    Jetzt fragt ihr euch, wozu man dies braucht? Ganz einfach, ich habe zb ein Modul "Lastactions" geschrieben, das uns die letzten 4 Wars auflistet. Und da jeder User/Gast dann auf das zb Ergebnis klicken kann, sollte auch der angeforderte Inhalt daraufhin auch in Joomla erscheinen, und nicht extern auf einer neuen Page. Das ging leider nicht da der Wrapper in der hinsicht unflexibel war.

    WICHTIG!!! Um dem ganzen auch ein wenig Sicherheit zu bieten, bitte ich euch die Variablen &type, &id und die anderen mit einem anderen Bezeichner zu versehen. So kann keiner sehen welche $_GET Vars verwendet werden.

    WICHTIG!!! Wenn ihr für den Wrapper ein anderes Template verwendet müsst ihr bei der URL noch die &ItemID=xx anhängen. Wichtig ist hierbei, dass eine gültige ItemID eingefügt wird, die letztendlich jedoch nur zur Templatesteuerung verwendet wird. Die angeforderte URL wird übergangen.

    >> URL verstecken (mod_rewrite muss auf dem Webserver laufen, Stichwort SEO/SEF):

    4. Öffnet eure .htaccess und fügt nach
    Code:
    RewriteEngine On
    folgenden Code ein:
    Code:
    RewriteRule ^opp_details_([0-9]+).html$ index.php?option=com_wrapper&Itemid=52&type=clanid&id=$1
    RewriteRule ^war_details_([0-9]+).html$ index.php?option=com_wrapper&Itemid=52&type=warid&id=$1
    Erläuterung:
    Die URL DeineDomain.de/opp_details_9.html wird in DeineDomain.de/index.php?option=com_wrapper&Itemid=52&type=clanid &id=$1 umgewandelt. Die &ItemId=52 ist eine gültige ItemID aus dem Backend für den Wrapper wg verschieden zugewiesener Templates.
    ([0-9]+) stellt somit $1 dar, brauchst du mehr Variablen dann sollte es so aussehen:

    Code:
    RewriteRule ^opp_details_([0-9]+)_([0-9]+)_([0-9]+).html$ index.php?option=com_wrapper&Itemid=52&type=clanid&id=$1&ids=$2&idx=$3
    Falls ihr OpenSEF verwendet und sich dann nix mehr regt bei diesen Links, dann müsst ihr bei der OpenSEF Config den ValidationLevel auf "none" stellen. Dann geht es wieder.


    Ich hoffe euch einen guten Tip gegeben zu haben und verzeiht mir meinen schlechten Schreibstil, bin leider nit so der TutWriter =)

    Tom
    Das einzige Backup das Du je brauchst ist das, wofür Du keine Zeit hattest.

    Homepage | Bugtracker | Module | Templates | Der Support war geil? Du bist befriedigt? Einfach mal Danke sagen... ^^

  2. Erhielt Danksagungen von:


  3. #2
    Neu an Board Avatar von tom711
    Registriert seit
    01.11.2006
    Ort
    Nürnberg
    Beiträge
    6
    Bedankte sich
    1
    1 Danksagung in 1 Beitrag

    Standard

    Zitat Zitat von UBK3 Beitrag anzeigen
    WICHTIG!!! Um dem ganzen auch ein wenig Sicherheit zu bieten...
    ...sollte man Ausgaben, die man manipulieren könnte immer in 'htmlspecialchars()' einschließen!
    Nicht dass sich da jemand selbst ein Formular baut und dann hässlichen Code an uns schickt und auf unserer Seite ausführt. Also immer schön 'htmlspecialchars()' dann passiert da nix! Auch wenn derjenige die Bezeichner kennt!

    Ansonsten netter Tipp!

  4. #3
    Neu an Board Avatar von UBK3
    Registriert seit
    23.01.2006
    Beiträge
    67
    Bedankte sich
    2
    Erhielt 13 Danksagungen
    in 10 Beiträgen

    Standard

    Zitat Zitat von tom711 Beitrag anzeigen
    ...sollte man Ausgaben, die man manipulieren könnte immer in 'htmlspecialchars()' einschließen!
    Nicht dass sich da jemand selbst ein Formular baut und dann hässlichen Code an uns schickt und auf unserer Seite ausführt. Also immer schön 'htmlspecialchars()' dann passiert da nix! Auch wenn derjenige die Bezeichner kennt!

    Ansonsten netter Tipp!
    Stimmt, ich vergaß ^^ War wohl auch schon ein wenig Spät gewesen.

    Tom
    Das einzige Backup das Du je brauchst ist das, wofür Du keine Zeit hattest.

    Homepage | Bugtracker | Module | Templates | Der Support war geil? Du bist befriedigt? Einfach mal Danke sagen... ^^

  5. #4
    Neu an Board
    Registriert seit
    26.12.2006
    Beiträge
    12
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard juhu, vielen Dank

    ein hoch auf dieses Tutorial...
    Hatte das gleiche Problem das ich Links im Content hatte, die z.B. eine ID hinten dran hatten. Dank dieser guten und einfachen Lösung ist meine 2 tägige Suche nach einer Lösung jetzt endlich beendet. Funktioniert super...

    Eine letzte Frage:
    die Anmerkung bezüglich htmlspecialchars() bezieht sich auf die beiden Variablen type und id oder???

+ Antworten

Ähnliche Themen

  1. SEO - Search Engine Friendly URLs -- wie bring ich die zum Laufen???
    Von x_player2005 im Forum Allgemeine Fragen zu Mambo
    Antworten: 5
    Letzter Beitrag: 25.07.2007, 10:52
  2. seo urls mit keywords
    Von yeong im Forum Allgemeine Fragen zu Joomla
    Antworten: 2
    Letzter Beitrag: 20.09.2006, 11:34
  3. nützt SEO heute noch was und umgang mit seo
    Von bufu im Forum Joomla Anfänger
    Antworten: 2
    Letzter Beitrag: 22.06.2006, 18:13
  4. SEO, htaccess und suchmaschinenfreundliche URLs
    Von Bulli im Forum Allgemeine Fragen zu Mambo
    Antworten: 5
    Letzter Beitrag: 01.09.2005, 00:56

Lesezeichen

Berechtigungen

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