Einleitung

Allgemeines

Alvine kann die URL Optimierung selbst vornehmem.

Hierzu ist es wichtig das alle URLs im Shop oder der Webseite nicht selbstständig optimiert werden.

Config

Die SEO Optimierung wird in der config.inc.php aktiviert.

Wenn der dispatcher auf "null" gesetzt wird, werden keine neuen ShortUrls geschrieben und auch keine mehr im Template ersetzt. Somit kann die Original URL wieder debuggt werden.

Wenn die Optimierung wieder eingeschaltet werden soll , wird hier "#LANGUAGE#" eingetragen beim dispatcher


$cfg['content']['shortURL']['dispatcher']=null; // Der Dispatcher kann auch eine sprach-oder Länderstring sein.
$cfg['content']['shortURL']['interface'] = 'standard2'; // Interface für das erstellen der ShortUrls

Ablauf der Erstellung

Das Erstellen läuft wie folgt ab:

  1. es wird im Quelltext nach allen href Tags gesucht und durchlaufen
  2. aus jedem Link wird ein MD5 erstellt (autoid)
    a. Sprache (aktuell eingestellt Sprache im Frontend)
    b. Land (aktuell eingestelltes Land im Frontend)
    c. URL

  3. es wird nach dieser autoid in der Datenbank gesucht

  4. wird dieser Wert gefunden, wird der Link mit dem Pattern aus der Datenbank die zu dieser autoid passt ersetzt.
  5. wird dieser Wert nicht gefunden wird ein neuer Eintrag vorgenommen
  6. In der jeweiligen Pagedefinition wird die Bezeichnung der URL gesucht und in einem kleinen Dateaset verfügbar gemacht

Datenbank

Die ShortUrls befinden sich in der Tablelle "cn_shorturl".

Interface Dateien

Die Logik ist in einem Interface ausgelagert.

applicationalvineplugininterfacesmodulecontentshorturl\

Dieses Interface kann kopiert und angepasst werden.
Damit es auch verwendet wird muss in der Config.inc.php dieser Wert angepasst werden.


  $cfg['content']['shortURL']['interface'] = 'meininterface'; // Interface für das erstellen der ShortUrls  
Metadaten
Bezeichnung
In den Metadaten können Anpassungen für die Erstellung der ShortUrls gemacht werden.
metadaten
Die Logik welche Bezeichnung greift , ist wie folgt:

  1. Bezeichnung in der URL (SEO)
  2. Titel (kurz)
  3. Titel
    Sobald ein Wert gefunden wird, wird dieser genommen.
    In der Feld "Bezeichnung in der URL (SEO)" wird der Teil in der URL definiert.
    In diesem Beispiel wäre das Ergebnis

/de/funktionen

bezeichnungSEO
Template / URL Schnema

Weiter unten in diesem Dialog kann ein Template definiert werden.
Wenn das Feld leer gelassen wird, gibt es einen Defaultwert "#PARENTURLPART#/#URLPART#"
Diese Platzhalter werden mit dem Jeweiligen Inhalt gefüllt.
Hier können auch Locale verwendet werden.
Es werden die Localen von dem Plugin content.shorturl geladen.
templateURL
Beispiel:

#LOCALE_PARTNER#/#URLPART#  > partner/affiliate  

Hier kann auch das Verhalten über die Checkbox deaktiviert werden.
Über diese Checkbox, kann das erstellen einer SEO Url abgeschaltet werden.
Der Link auf diese Seite wird nicht mehr angepasst.
URLrouting
Beispiel für die Verwendung von #PARENTURLPART# und #URLPART#:
Die Seite Produktdarstellung ist eine Unterseite von Funktionen "online.shopcloud.home.functions.productpresentation"

Die Pagedefinition von "online.shopcloud.home.functions" wird geladen und nach der oben Beschrieben Logik die Bezeichnung gesucht.
Die Pagedefinition von "online.shopcloud.home.functions.productpresentation" wird geladen und nach der oben Beschrieben Logik die Bezeichnung gesucht.

Beide Werte werden in einem Dataset zu Verfügung gestellt und ersetzt.

http://localhost:8010/de/funktionen/produktdarstellung  
pagedefination
Beispiel für die Verwendung von #URLPART#:

Spezialfall shop.item.details: Darstellung von sys_master_name oder sys_master_number
Auf der Seite der Prduktdetails (plugin shop.item.details) können in den Metadaten zur Shorturlgenerierung (Template)
Platzhalter des Produkts verwendet werden.

Das ist momentan: #NAME# (sys_master_name), #NUMBER# (sys_master_number), #CATEGORY1# (Lokalisiertes Label von CID1)

Massenbearbeitung

Um auf mehreren Seiten sie SEO oprimierung abschalten zu können, kann die Massenbearbeitung verwendet werden.
Die Seiten auswählen und auf Seiten bearbeiten klicken
massenbearbeitung

Hier gibt es 3 Möglichkeiten
1. setzten > auf den gewählten Seiten wird keine SEO optimierung vorgenommen
2. löschen > die SEO optimierung wird wieder aktiviert
3. nicht ändern > es wird nichts geändert
urlrouting_2

Locale

Das Plugin content.shorturl wurde dafür erstellt. Dieses Plugin muss nicht auf einer Seite installiert werden, es dient ausschließlich für
die Bereitstellung der Libs und Localen
Das Interface "standard2" greift auf diese Locale zu und können somit für den Kunden optimal angepasst werden.

Filter
Alle shop.filter Plugins schreiben in einen Globalen Platzhalter #ALVINE_SHOPFILTER_ALL#

desweiteren schreibt jeder seine eigenen Werte auch in ein separaten Platzhalter #ALVINE_SHOPFILTER_{FILTERTYP}# wie zum Beispiel : #ALVINE_SHOPFILTER_CATEGORY#.

Diese Platzhalter werden jeweils mit "sxx_call[BOXID][FILTERKEY]=5,64" befüllt und können so auch im Template verkettet werden #ALVINE_SHOPFILTER_CATEGORY#&#ALVINE_SHOPFILTER_COLOR#

Die Funktion ist Zentral in der Lib des shop.item.filter Plugins hinterlegt. Jeder Filter ruft diese Funktion in CASE 2 auf.
Navigationen

Die Navigationen shop.navigaion.list und shop.navigation.filter wurden mit einem neuen Platzhalter ausgestattet
#FIELD:PAGE_ABSOLUTE_URL#
Dieser übernimmt die komplette Logik der Darstellung der URL. Hier sind alle aktuell gesetzten Filter enthalten , im Prinzip so wie der globale Platzhalter #ALVINE_SHOPFILTER_ALL#
nur mit dem entscheidenden Unterschied , das hier die eigenen Werte pro Filter in der Url raus genommen werden:
Beispiel :
Aktuell ist der Kategorie Filter mit dem Wert 10 gesetzt.

Der Platzhalter #FIELD:PAGE_URL# würde nun den Wert 10 setzten wobei der absolute Platzhalter in diesem Fall "reset" setzten würde weil der Wert 10 in der Session vorhanden ist.

<a href="#FIELD:PAGE_ABSOLUTE_URL#">#FIELD:LABEL#</a>
Auschluss von Shorturl-Optimierung auf Basis der Plugins
Manchmal ist es notwendig die Optimierung gerade in der Gallerie durch dir Nutzung von sehr vielen Filtern einzugrenzen. Hierzu kann
In der Core-Liste "content_shorturl_exclude" ein entsprechender Eintrag ergänzt werden

um z.B: die Optimierung nicht durchzuführen, falls im Parameter ein Filter vom Typ "shop.item.filter.price" vorkommt. Wenn nun eine
URL auf diesen Filter zutrifft wird sie nicht in die cn_shorturl eingetragen und auch nicht ersetzt.

In der Standard-Auschluss Liste sind folgende Filter ausgeschlossen:

$list[0]  = "shop.item.filter.price";
$list[0]  = "shop.item.filter.assignment1";
$list[0]  = "shop.item.filter.assignment2";
$list[0]  = "shop.item.filter.assignment3";

ShortUrls in der Galerie

Bei den ShortUrls in der Galerie ist es wichtig, das immer ALLE Filter, die gesetzt wurden, bei jedem Link, übergeben werden. Pagedefinition

Auf der Seite online.shop.products.gallery sollte folgendes Template definiert werden:

#SYS_DESTINATION#/#SYS_DEPARTMENT#/#SYS_CATEGORY#/#SYS_BRAND#/#SYS_VARIANT#/#SYS_COLOR#

Wobei alle anderen Platzhalter auch zusätzlich möglich sind.


#URLPART#/#SYS_DEPARTMENT#/#SYS_CATEGORY#/#SYS_BRAND#/#SYS_VARIANT#/#SYS_COLOR#

Hier ein Beispiel:

Beispiel Farbe schwarz ist gefiltert und Farbe rot soll noch zusätzlich gefiltert werden.

Es wird also COID 3,2 übergeben
colorfilter
SEO optimierte Version
colorfilter_1
Wenn die Farbe zurück gesetzt werden soll , wird die URL bei klick auf rot als "reset" übergeben
colorfilter_2
SEO optimierte Version
colorfilter_3
Wennzu der Farbe rot , die Variante 80B gefiltert werden soll, muss der Wert für die Farbe 3 und die 80B der Variante gemeinsam übergeben werden.
colorvariante
SEO optimierte Version
color_version

Referenzen
* automatische Erstellung der URLs