Tutorial - Meta-Daten und dynamische Seitentitel

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche

Note.png Dieser Artikel ist Teil der Tutorialreihe "Erstellen einer einfachen Webseite".

Teil 1: Planung und Erstellung der Webseite im Backend | Teil 2: Aufbau einer einfachen Webseite | Teil 3: Anpassen des dynamischen Menüs | Teil 4: Einbau einer Sitemap | Teil 5: Meta-Daten und dynamische Seitentitel | Teil 6: Die dynamische Suche | Teil 7: Der Home-View

Einleitung

Mit DynPG haben Sie die Möglichkeit, automatisch Seitentitel und Meta-Daten wie Schlüsselwörter und eine Beschreibung der Webseite, die sog. Meta-Keywords und die Meta-Description, zu erstellen. Dies stellt neben der Sitemap eine weitere Möglichkeit der Suchmaschinenoptimierung dar. DynPG erzeugt nicht nur eine Liste von Keywords für die gesamte Webseite, sondern erstellt separate Listen für jede einzelne Seite, die Sie für den jeweiligen Artikel im Backend angeben können. Zusätzlich kann auch automatisch eine Beschreibung und der Titel der jeweiligen Seite erzeugt werden.

Den Code für dieses Beispiel finden Sie hier: Download

Note.png Bemerkung: Beachten Sie bitte die Hinweise zur Konfiguration des Beispiel-Codes.

Generierung der Keywords und Titel

Für die Generierung der Keywords werden die im Backend für den jeweiligen Artikel eingetragenen Suchindizes verwendet. Die Meta-Description, d.h. die Beschreibung der Seite wird aus dem Lead-Text des Artikels generiert. Dadurch können Sie komfortabel die Schlüsselwörter und Beschreibung für alte und neue Artikel ändern, ohne dabei den Code ändern zu müssen. Die eigentliche Generierung wird dann durch das Frontend übernommen. Dazu fügen wir die folgenden drei neuen Snippets für Titel, Keywords und Beschreibung zu unserer Webseite hinzu:


meta_title.php

<?php
    $GLOBALS["DynPG"]->saveCurrentParams();
    $GLOBALS["DynPG"]->setupTemplate('title');
 
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_AG_ForceNav(FALSE);
    $GLOBALS["DynPG"]->SetParam_AG_Order( Array( 'INDEX' ) );
    $GLOBALS["DynPG"]->SetParam_AG_Sort( Array( 'ASC' ) );
    $GLOBALS["DynPG"]->Write_AllGroups();
 
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_AA_Order( Array( 'date_from' ) );
    $GLOBALS["DynPG"]->SetParam_AA_Sort( Array( 'DESC' ) );
    $GLOBALS["DynPG"]->SetParam_AA_Maxview(10);
    $GLOBALS["DynPG"]->SetParam_AA_ForceNav(FALSE);
    $GLOBALS["DynPG"]->SetParam_AA_CategoryNavigation(FALSE);
    $GLOBALS["DynPG"]->Write_AllArticles();
 
    $GLOBALS["DynPG"]->SetParam_A_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(FALSE); 
    $GLOBALS["DynPG"]->SetParam_A_fullLoadText(FALSE); 
    $GLOBALS["DynPG"]->Write_Article();
 
    $GLOBALS["DynPG"]->loadSavedParams();
    $GLOBALS["DynPG"]->setupTemplate('default');
?>

Dieses Snippet wird an Stelle des Titels eingebunden, d.h. innerhalb der HTML <title> tags. Durch das verwendete Template wird dann der Gruppen- oder Artikelname als Seitentitel im Browser angezeigt.


meta_keywords.php (meta_description.php)

<?php
    $GLOBALS["DynPG"]->saveCurrentParams();
    $GLOBALS["DynPG"]->setupTemplate('meta'); // bzw. $GLOBALS["DynPG"]->setupTemplate('description') für die Beschreibung
 
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_AG_ForceNav(FALSE);
    $GLOBALS["DynPG"]->SetParam_AG_Order( Array( 'INDEX' ) );
    $GLOBALS["DynPG"]->SetParam_AG_Sort( Array( 'ASC' ) );
    $GLOBALS["DynPG"]->Write_AllGroups();
 
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_AA_Order( Array( 'date_from' ) );
    $GLOBALS["DynPG"]->SetParam_AA_Sort( Array( 'DESC' ) );
    $GLOBALS["DynPG"]->SetParam_AA_Maxview(10);
    $GLOBALS["DynPG"]->SetParam_AA_ForceNav(FALSE);
    $GLOBALS["DynPG"]->SetParam_AA_CategoryNavigation(FALSE);
    $GLOBALS["DynPG"]->Write_AllArticles();
 
    $GLOBALS["DynPG"]->SetParam_A_Anytime(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(FALSE);
    $GLOBALS["DynPG"]->SetParam_A_fullLoadText(FALSE);
    $GLOBALS["DynPG"]->Write_Article();
 
    $GLOBALS["DynPG"]->loadSavedParams();
    $GLOBALS["DynPG"]->setupTemplate('default');
?>
?>

Dieses Snippet erzeugt abhängig vom verwendeten Template entweder eine Liste aller für die Gruppe oder den Artikel existierenden Keywords oder die Beschreibung der Seite. Es wird im HTML Kopf der Webseite als Wert des entsprechenden Meta-Tags eingebunden.

Einbindung

Das Einbinden ist nun nicht weiter schwierig. Wir ändern einfach den HTML-Kopf in folgender Weise ab:

index.php

<head>
    <title>
        <?php include("inc/metadata/meta_title.php"); ?>
    </title>
 
    <meta name="keywords" content="<?php include("inc/metadata/meta_keywords.php"); ?>" />
    <meta name="description" content="<?php include("inc/metadata/meta_description.php"); ?>" />
    ...
</head>


Für den Home Artikel wird nach Abarbeitung der Scripts zum Beispiel folgende Ausgabe erzeugt:

Ausgabe im Browser

<head>
    <title>
        Home
    </title>
 
    <meta name="keywords" content="DynPG CMS Websites" />
    <meta name="description" content="DynPG steht für dynamic web pages und ist ein kostenfreies CMS" />
    ...
</head>


Die kurze Beschreibung stammt von dem Lead-Text des Artikels. Die drei beispielhaften Keywords wurden im Backend dem Home-Artikel, durch Leerzeichen getrennt und ohne Kommata, zugewiesen. Sie können diese Schlüsselwörter beim Bearbeiten eines Artikels festlegen.

Tutorial Search Keys.png