Autor Thema: "schöne" Sitemap erstellen.  (Gelesen 7850 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 545
  • Lob: 10
"schöne" Sitemap erstellen.
« am: November 04, 2008, 12:05:05 »
Der Static Builder erzeugt ja die Linkliste.html. Diese Datei enthält Links zu allen Seiten des Shops, also zu allen Detail-, Artikel- und Verzeichnisseiten. Wird die Linkliste.html von jeder Seite aus als "Sitemap" verlinkt, ergibt sich eine bessere Linkstrruktur, da alle Seiten des Shops von der Berwerung her "gleicher" werden und so besser gefunden werden können.
Unglücklicherweise liebt zwar Google diese Datei, aber für den Menschen ist sie ziemlich unlesbar. Dies kann man aber ändern und eine alphabetisch sortierte sitemap per SSP erstellen.

Hier das Rezept.
Man lege eine Infoseite mit dem Namen "Sitemap" an. Diese wird natürlich so wie der übrige Shop gestalltet. Im Inhaltsbereich hat man den Identifier __sitemap::generate__,
hier wir die Sitemap ausgegegeben.
Das SSP Script hier zu sieht so aus:
 
<!--spmacro:module(sitemap)

## Vom Static Builder erzeugte Linkliste
my $m_linkliste = "../.././linkliste.html";

sub generate {
    open(LINKS, "<$m_linkliste");
    my @lines = <LINKS>;
    close (LINKS);

    my @ausgaben;
   
    my $html;

    foreach my $ln (@lines) {
        $ln =~ s/\r//g;
        $ln =~ s/\n//g;
        $html .= $ln;
    }

    @lines = ();
    @lines = split(/<br>/, $html);

    foreach my $ln (@lines) {
        my ($link,$title) = getLink($ln);
        if (($link ne '') && ($title ne '')) {
            push(@ausgaben, "$title!_!$link");
        }
    }

    @ausgaben = sort {
$a = EntityToAnsi($a);
$b = EntityToAnsi($b);
        my $sa = $a;
        my $sb = $b;
        $a =~ tr/äöüÄÖÜ/aouAOU/;
        $b =~ tr/äöüÄÖÜ/aouAOU/;
        my $res = uc($a) cmp uc($b);
        $a = $sa;
        $b = $sb;
        return $res;
    } @ausgaben;
   
    my $lastchar = "";
    for (my $i = 0; $i <= $#ausgaben; $i++) {
        my ($title, $link) = split(/!_!/,$ausgaben[$i]);
        my $out = "";
$title = EntityToAnsi($title);
        my $curchar = substr($title,0,1);
        $curchar = uc($curchar);
        $curchar =~ tr/äöüÄÖÜ/AOUAOU/;

if ($lastchar ne $curchar) {
            $out .= "<br><h2 style=\"font-weight:bold;\">$curchar</h2><br>";
            $lastchar = $curchar;
        }
        $out .= "<div class=\"content\"><a href=\"$link\">$title</a></div>";
        main::mprint($out);
    }
}


sub getLink {
    my $ln = shift;
    if ($ln =~ /^.*"(.*\.html)".*>(.*)<\/a>/i) {
        return ($1, $2);
    } else {
        return ("","");
    }
}

sub EntityToAnsi {
    my $x = shift;
    $x =~ s/&#([0-9][0-9][0-9]);/pack("C",$1)/eg;  ## z.B. &#228; -> ä
    return $x;
}

-->


Das Script liest linkliste.html ein, sortiert die Einträge und gibt sie alpahbetsich gruppiert aus.




Linkback: https://www.shoppilot.net/pf/index.php?topic=1155.0
« Letzte Änderung: Februar 12, 2009, 14:57:44 von admin »


xx
"Bild" statt "Titel" in __tab__ anzeigen?

Begonnen von dobra

4 Antworten
7335 Aufrufe
Letzter Beitrag Februar 21, 2008, 15:24:34
von dobra
question
"(" und ")" nicht anzeigen

Begonnen von dobra

2 Antworten
8200 Aufrufe
Letzter Beitrag Mai 09, 2007, 10:45:31
von dobra
xx
Ich möchte auf der "Danke" Seite den Warenkorb nochmal anzeigen.

Begonnen von admin

0 Antworten
6544 Aufrufe
Letzter Beitrag Mai 24, 2006, 11:12:02
von admin
xx
"bestellen" erst einblenden, wenn Zahlart gewählt

Begonnen von dobra

0 Antworten
7596 Aufrufe
Letzter Beitrag September 09, 2007, 10:23:29
von dobra