blattertech informatikLukas BlatterNiederlenzerstrasse 21
5600 Lenzburg/AGSwitzerland

079 569 25 90
https://www.blattertech.ch

Adresse anzeigen

CMSMS: Automatisch Seiten-Urls generieren

4. Januar 2012 |  SNIPPLETS |  CMS MADE SIMPLE1 Kommentare

In CMS Made Simple gibt es die Möglichkeit einer Seite eine individuelle Seiten-URL zuzuweisen. Dies ist praktisch, da ein Alias eindeutig sein muss und somit eine Seite nur eine kontakt.htm aufweisen kann. Mittels der Seiten-URLs können so mehrere kontakt.html erstellt werden.

Hier ein Beispiel einer solchen Konfiguration:

Firma 1
- Über uns
- Referenzen
- Kontakt

Firma 2
- Über uns
- Referenzen
- Kontakt

Firma 3
- Über uns
- Referenzen
- Kontakt

Dies ergibt mit den Seiten-Alias normalerweise folgende Struktur:

domain.ch/firma1/kontakt.htm
domain.ch/firma2/kontakt-1.htm
domain.ch/firma3/kontakt-2.htm

Mittels eines UDT kann die URL Erstellung automatisiert werden. Man erstelle dazu den UDT (Benutzerdefinierter Tag) "ContentEditPost":

$gCms = cmsms();
$db        = cmsms()->GetDb();

$id        = $params['content']->Id();
$parentId  = $params['content']->ParentId();
$url       = $params['content']->URL();
$menutext  = $params['content']->MenuText();

// root Alias ermitteln
$contentops = $gCms->GetContentOperations();
$pageId = $id;
$rootAlias = '';

while( $pageId > 0 ) {
    $content = $contentops->LoadContentFromId($pageId);
    if( !is_object( $content ) ) {
         $rootAlias = '';
         break;
    }
    $rootAlias = $content->Alias();
    $pageId = $content->ParentId();
}

# get url from parent page
$query = "SELECT page_url FROM ". cms_db_prefix() . "content WHERE content_id = ? ";
$page_url = $db->GetOne($query, array($parentId));

if (!$url or strpos($url,$page_url) == false) {
    $urlalias = $menutext;
    $urlalias = mb_strtolower($urlalias, 'UTF-8');

    // Alle deutschen Umlaute und Sonderfälle austauschen
    $urlalias = str_replace(
        array('ä',    'ö',    'ü',    'ß',    ' - ',    ' + ',    '_',    ' / ',    '/',    'é',    'è',    'à',    'ç'),
        array('ae',    'oe',    'ue',    'ss',    '-',        '-',        '-',    '-',        '-',    'e',    'e',    'à',    'c'),
        $urlalias);

    // Alle restlichen Leerzeichen zu Bindestrichen
    $urlalias=preg_replace('/\s/s', '-', $urlalias);

    // Alles löschen, was nicht alphanumerisch ist
    $urlalias = preg_replace('/[^a-z0-9_-]/isU', '', $urlalias);

    $urlalias = trim($urlalias);

    $url = $page_url . "/". $urlalias;

    $query = "Update ". cms_db_prefix() . "content set page_url = '".$url."' WHERE content_id = ? ";
    $db->Execute($query,array($id));
}

 

Ereignisverwaltung

Ereignisverwaltung

Nun muss der UDT noch in die Ereignisverwaltung eingefügt werden:

 

 

Nun muss das Ereignis "ContentEditPost" gesucht werden. Mit klick auf den Namen kann man das Ereignis bearbeiten. Nun den UDT "ContentEditPost" hinzufügen.

UDT dem Ereignis zuweisen

UDT dem Ereignis zuweisen



 

Über den Autor:

Lukas Blatter

bloggt und twittert seit 2009 aus Leidenschaft diverse Themen rund um Webdesign, PHP, TYPO3, CMS Made Simple, Computer und weiteres.

Er ist Gründer und Inhaber von blattertech informatik, Ehemann und Vater einer Kinderschar.

Kommentare

0612-4688606
30. Juni 2017 von JM
Das Linkprofil einer Webseite gibt an, wie etliche Backlinks eine Seite
hat der, welcher Art sie befinden sich, woher sie stammen, ebendiese Ankertexte
verwendet und bei wem auf der Seite die Backlinks platziert wurden. Wie Linkaufbau (eng: Linkbuilding) sein alle Handlungen zur Anschaffung eingehender externer Links, oder auch
Backlinks auf einer Homepage bezeichnet. Verweist zum Beispiel geraume sehr bekannte Internetseite unter einsatz von Hunde mit
hohem PageRank auf ihren Blog, welcher von Hundefutter berichtet, darf dieser Backlink in der Regel höher bewertet als bei ihrer Webseite mit diesen Artikeln.

Auf Grund des hohen Spamaufkommens können zu diesem Beitrag keine Kommentare mehr abgegeben werden