Ergebnis 1 bis 11 von 11

Thema: Modul SITEMAP anpassen / modifizieren (Hier: href verändern)

  1. #1
    Contao-Nutzer Avatar von esjot
    Registriert seit
    04.12.2009.
    Ort
    Köln
    Beiträge
    22

    Frage Modul SITEMAP anpassen / modifizieren (Hier: href verändern)

    Hellohello liebe Contaoisten,

    ich habe da mal eine Frage. Folgende Ausgangssituation:

    Ich habe eine Sitemap, die sich in einer Mediabox öffnet. Jetzt möchte ich gerne den generierten <a>'s innerhalb der Sitemap abgewöhnen sich im "_self" zu öffnen, denn sonst habe ich die Seiten innerhalb der Mediabox geladen, und das ist absolut nicht gut so. Jetzt würde ich gerne meinem Sitemap Modul beibringen können, die generierten Links mit einem target="_parent" oder zumindest einem _blank zu öffnen. Gibt's da einen Weg, denn aus dem Sitemapmodul werde ich nicht schlau. Mit dem $this etc, da blick ich nicht durch. Vielleicht gibt es ja auch einfach ein besseres, respektive modifizierbareres Stück Code im Erweiterungskatalog (ausser die googlesitemap, denn eine SEO sensitive xml Sitemap habe ich schon an anderer Stelle).

    Über hilfreiche Antworten würde ich mich sehr freuen,
    viele Grüße aus Köllefornien,
    S.J.

  2. #2
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Guten morgen,

    aus dem mal wieder verregneten Tal

    Ich habe mir die Erweiterung noch nicht genauer angeschaut, aber gibt es kein Template das man modifizieren kann?
    Würde jetzt nach dem Template schauen, welches verwendet wird, mir eine Kopie davon in den Template Ordner schieben und hier frech die Option "hart" rein schreiben. Denn das wäre der einfachste Weg und wenn das Template eh nur dafür ist, sollte es auch keine Probleme geben.

    Ansonsten heißt es die Erweiterung durchzugehen, die Stelle zu suchen wo die Links generiert werden und anschließen eine Variable einführen, welche dann über das Backend gesteuert werden kann
    Dazu muss man dann aber leider PHP und HTML können ggf. könnte bei der Mediabox auch noch JavaScript dazu kommen.

    LG Kirsten
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  3. #3
    Contao-Nutzer Avatar von esjot
    Registriert seit
    04.12.2009.
    Ort
    Köln
    Beiträge
    22

    Standard

    Hey KATgirl,

    das mod_sitemap.tpl schüsselt sich so auf:

    Code:
    <!-- indexer::stop -->
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>
    
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <?php echo $this->items; ?>
    
    </div>
    <!-- indexer::continue -->
    Da habe ich mir schon einen var Dump ausgeben lassen, der mir zumindest sagten wo in etwa ich im Core ran müsste. Aber selbst da ist es nicht eindeutig wo die Links für die Sitemap generiert werden, da alles (und nichts) mit $this angesteuert wird.

    Ich werd nicht schlau draus.

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo esjot,

    das Sitemap-Modul greift auf Navigationstemplates vom Typ "nav_xxx.tpl" zurück (siehe Moduleinstellungen). Daher könntest Du dort - sofern notwendig - Deinen Anpassungen machen.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,


    schau mal diese Zeile:
    Code:
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    sieht so aus, als wenn ein HTML-Tag geöffnet wird und anschließend geschlossen, dazwischen steht dann der Titel oder was auch immer

    Ich wäre jetzt ja mal frech und würde folgendes versuchen:
    Code:
    <<?php echo $this->hl; ?> target="_parent"><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    Wie gesagt wäre mein Versuch!

    Ansonsten wenn das wirklich auf Navigationstemplates zurückgreift, dann darüber gehen, wobei mir das Magenschmerzen wegen der doch sicher verwendeten Navigation bereiten würde, nicht das die sich dann in die Quere kommen.

    LG Kirsten
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  6. #6
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo KATgirl,

    das würde sich aber nur auf die Überschrift des Moduls beziehen.

    Wenn ich esjot richtig verstanden habe, dann möchte er vermeiden, dass sich die einzelnen Links der Sitemap im geöffneten Fenster der Mediabox öffnen...
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  7. #7
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,

    das habe ich schon verstanden

    Sprich, wenn ich Dich jetzt verstehe, erzeugt die Zeil nur die Überschrift des Modules und
    Code:
    <?php echo $this->items; ?>
    sorgt für die Befüllung mit den Links.

    Wenn dem so ist, dann bleibt wirklich nur Dein schon erwähnter Eingriff über das Navigationstemplate oder man holt sich $this->items und bastelt es anschließend seinen Vorstellungen um.

    z.B.
    Code:
    <?php echo str_replace("<a ", "<a target='_parent' ", "$this->items");?>
    Habe es nun doch mal schnell getestet, klappt bei mir mit target='_blank', aber ich habe ja auch keine Mediabox noch dazwischen.
    Geändert von KATgirl (24.09.2010 um 17:22 Uhr)
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  8. #8
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Also ich würde das betreffende Navigationstemplate in den "/templates"-Ordner kopieren, umtaufen, dort dann die gewünschten Änderungen vornehmen und dieses Template dann im Modul auswählen.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Schaut mal hier, ist mir diese Woche unter gekommen
    http://www.contao-community.de/showt...ar-in-lightbox
    In Post 14 gibts noch n Link von Planepix auf ne Anleitung.

    Da geht es zwar um das Login-Formular, aber ich meine das ist die gleiche Problematik, die dort dann auch gelöst wird.

    Grüße
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  10. #10
    Contao-Nutzer Avatar von esjot
    Registriert seit
    04.12.2009.
    Ort
    Köln
    Beiträge
    22

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Also ich würde das betreffende Navigationstemplate in den "/templates"-Ordner kopieren, umtaufen, dort dann die gewünschten Änderungen vornehmen und dieses Template dann im Modul auswählen.
    Das klingt irgendwie am vielversprechendsten. Den Weg den Andreas (danke dafür!) vorgeschlagen hat erscheint mir zunächst etwas oversized. Im Prinzip muss man ja wie xchs vorgeschlagen hat, in einem Template angeben können wie sich der Link aufbaut und das dann dem Sitemap Modul zuweisen.

    Jetzt ist natürlich (immer noch) die offene Frage: WO?

    Das nav_default.tpl sieht ja so aus:

    PHP-Code:
    <ul class="<?php echo $this->level?>">
    <?php foreach ($this->items as $item): ?>
    <?php 
    if ($item['isActive']): ?>
    <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li>
    <?php else: ?>
    <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
    <?php endif; ?>
    <?php 
    endforeach; ?>
    </ul>
    Ich gehe mal davon aus, dass in Zeile sechs die hrefs generiert werden. Aber leider hört mein PHP können dann auch schon wieder auf.

    EDIT: Ich war Schneeblind und habe die einfache <a> Struktur vor lauter PHP nicht gesehen.
    Jetzt klappts wunderbar.
    Tolle Sache, also ihr alle!
    Geändert von esjot (28.09.2010 um 08:43 Uhr)

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn du jetzt target="xxx" in deinen Links hast, müsstest du den Dokumententyp auf 'Transitional' einstellen und nicht auf 'Strict'. Das Attribut TARGET ist nämlich nicht valide.

    Die valide Alternative geht über Javascript. Wenn du innerhalb Contaos mal einen Link so einstellst, dass er in einem neuen Fenster(TAB) geöffnet wird, kannst du dir den erzeugten Javascript-Code im A-Element ansehen.

    Öffnest du die Sitemap denn als eigene Seite (IFRAME) in der lightbox, oder als Inline-HTML. Bei zweiterem dürftest du das Problem eigentlich erst gar nicht haben, da müsste sich dann alles in einem Browsertab abspielen.

    Grüße

    ps Anstatt var_dump($xxx) im Template zu benutzen versuche mal $this->showTemplateVars() (nichts in die Klammer eintragen), das gibt dir die Variablen aus, welche das Tamplate zurückliefert.
    Geändert von Andreas (28.09.2010 um 14:47 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Felder modifizieren (löschen, umbenennen, verändern)
    Von TWA_DarkSun im Forum xtmembers
    Antworten: 15
    Letzter Beitrag: 07.03.2014, 11:48
  2. reCaptcha Modul anpassen (CSS)
    Von nettic im Forum Sonstige Erweiterungen
    Antworten: 10
    Letzter Beitrag: 10.03.2011, 13:10
  3. news modul erweitern/verändern
    Von blueamerican im Forum Sonstige Erweiterungen
    Antworten: 5
    Letzter Beitrag: 10.07.2010, 10:25
  4. Backendprofilfelder verändern in eigenem Modul
    Von johannes.enjoy im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 20.06.2010, 10:58
  5. Modul-Templates anpassen?
    Von cube1893 im Forum Allgemeine Inhaltselemente
    Antworten: 3
    Letzter Beitrag: 25.03.2010, 17:54

Lesezeichen

Lesezeichen

Berechtigungen

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