Codebeispiele - Sitemap

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche

Sitemap

Beschreibung:

Eine Sitemap einbinden

Voraussetzungen:

Snippet:

<?php
  // Testen, ob die Sitemap im Menü angewählt wurde
  if ((isset($_GET['read_group']) && $_GET['read_group'] == <ID der Sitemap Gruppe>)
       || (isset($_GET['read_category']) && $_GET['read_category'] == <ID der Sitemap Gruppe>)) {
    $GLOBALS["DynPG"]->saveCurrentParams();                  // aktuelle Parametereinstellungen speichern
 
    $GLOBALS["DynPG"]->SetParam_PlugIn_Template('DPGdynmenu', 'sitemap');                   // Sitemap-Template auswählen
    $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'hide_not_public_groups', true); // versteckte Gruppen ausblenden
    $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'full_load', true);              // alle Gruppen und Artikel ausgeben
 
    $GLOBALS["DynPG"]->SetParam_A_Anytime(true);             // Sitemap muss immer angezeigt werden
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false); // Kategorienavigation (Gruppe > Untergruppe > Artikel) ausblenden
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(false);    // Drucken-Link ausblenden
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);      // Artikelkopf (Titel, Lead-Bild und Lead-Text) ausblenden 
    $GLOBALS["DynPG"]->SetParam_A_Article(1);                // Artikelnummer der dynamischen Navigation
    $GLOBALS["DynPG"]->Write_Article();                      // Sitemap ausgeben
 
    $GLOBALS["DynPG"]->loadSavedParams();                    // vorherige Parametereinstellungen wiederherstellen
  }
?>

Beispiel ausführen

<toggledisplay status="hide" showtext="▼ Quelltext anzeigen" hidetext="▼ Quelltext verbergen" linkstyle="font-size:normal;"> index.php:

<?php
  require '../../dynpg/getcontent.php';                   // DynPG-Funktionalität einbinden
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../../dynpg/'); // DynPG-Pfad setzen
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
  <title>Sitemap</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 
  <link rel="stylesheet" type="text/css" href="style.css" />    <!--eigene style.css einbinden-->
  <link rel="stylesheet" type="text/css" href="sitemap.css" />  <!--Sitemap style einbinden-->
</head>
 
<body>
  <h1>Sitemap</h1>
 
  <!-- Navigation -->
  <div id="navigation">
    <?php
    $GLOBALS["DynPG"]->SetupTemplate('uneditable');            // diese Template verhindert, dass der Artikel selbst im Frontend-Editiermodus bearbeitet werden kann
    $GLOBALS["DynPG"]->SetParam_A_Anytime(true);               // dynamische Navigation immer anzeigen
    $GLOBALS["DynPG"]->SetParam_A_Article(1);                  // Artikelnummer der dynamischen Navigation
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);        // Artikelkopf (Titel, Lead-Bild und Lead-Text) ausblenden
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false);   // Kategorienavigation (Gruppe > Untergruppe > Artikel) ausblenden
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(false);      // Drucken-Link ausblenden
    $GLOBALS["DynPG"]->Write_Article();                        // dynamische Navigation ausgeben
    $GLOBALS["DynPG"]->SetupTemplate('default');               // Standard-Template setzen
    ?>
  </div>
 
  <!-- Inhalt -->
  <div id="inhalt">
    <?php
    $GLOBALS["DynPG"]->Write_AllGroups();                      // Gruppenlisten-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->SetParam_AA_CategoryNavigation(false);  // Kategorienavigation (Gruppe > Untergruppe > Artikel) ausblenden
    $GLOBALS["DynPG"]->Write_AllArticles();                    // Artikdelliste-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);              // Parameter wieder auf false setzen (wurde bei der Navigation auf true gesetzt)
    $GLOBALS["DynPG"]->Write_Article();                        // Artikel-Detailansicht ausgeben
 
    // Testen, ob die Sitemap im Menü angewählt wurde
    if ((isset($_GET['read_group']) && $_GET['read_group'] == 7)
         || (isset($_GET['read_category']) && $_GET['read_category'] == 7)) {
      $GLOBALS["DynPG"]->saveCurrentParams();                  // aktuelle Parametereinstellungen speichern
 
      $GLOBALS["DynPG"]->SetParam_PlugIn_Template('DPGdynmenu', 'sitemap');                   // Sitemap-Template auswählen
      $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'hide_not_public_groups', true); // versteckte Gruppen ausblenden
      $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'full_load', true);              // alle Gruppen und Artikel ausgeben
 
      $GLOBALS["DynPG"]->SetParam_A_Anytime(true);             // Sitemap muss immer angezeigt werden
      $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false); // Kategorienavigation (Gruppe > Untergruppe > Artikel) ausblenden
      $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(false);    // Drucken-Link ausblenden
      $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);      // Artikelkopf (Titel, Lead-Bild und Lead-Text) ausblenden 
      $GLOBALS["DynPG"]->SetParam_A_Article(1);                // Artikelnummer der dynamischen Navigation
      $GLOBALS["DynPG"]->Write_Article();                      // Sitemap ausgeben
 
      $GLOBALS["DynPG"]->loadSavedParams();                    // vorherige Parametereinstellungen wiederherstellen
    }
    ?>
  </div>
</body>
</html>

sitemap.css:

/* das Sitemap div */
div#sm_course_categories_menu {
 
}
 
/* Alle divs innerhalb der Sitemap */
div#sm_course_categories_menu div {
  padding-left: 20px; /* Einrückung */
  cursor: pointer;
}
 
/* Definitionen für Artikel innerhalb der Liste */
div#sm_course_categories_menu p.sm_articles {
  line-height: 20px;
  list-style-type: square;
  list-style-position: outside;
  display: list-item;
}

style.css:

/* Navigation */
div#navigation{
  /* Angaben für ein zweispaltiges Layout */
  float:left;
  width:150pt;
  margin-left:5pt;
  margin-right:5pt;
 
  border:1px solid #AAA;
}
 
/* Inhalt */
div#inhalt {
  /* Angaben für ein zweispaltiges Layout */ 
  margin-left:165pt;
  margin-right:5pt;
}
 
/* Alle divs innerhalb des Navigationsmenüs verschieben ihren Inhalt
   um 10 pt nach rechts. Durch die Verschaltelung von divs innerhalb
   des Menüs erhalten wir so eine Einrückung. */
div#course_categories_menu  div  {
  padding-left:10pt;
}
 
/* Alle links innerhalb des Navigationsmenüs */
div#course_categories_menu  a {
  text-decoration:none;
}

</toggledisplay>

XML Sitemap

Beschreibung:

Eine XML Sitemap einbinden. Die eigentliche Sitemap wird in einer separaten Datei erzeugt. Die Einbindung kann über einen Link auf die Datei oder über das Navigationsmenü erfolgen.

Voraussetzungen:

Snippet:

sitemap.xml.php:

<?php
  require '../../dynpg/getcontent.php';                   // DynPG-Funktionalität einbinden
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../../dynpg/'); // DynPG-Pfad setzen
 
  echo '<?xml version="1.0" encoding="UTF-8"?>';
 
  $GLOBALS["DynPG"]->SetParam_PlugIn_Template('DPGdynmenu', 'xml-sitemap');                  // XML-Sitemap-Template auswählen               
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'hide_not_public_groups', true);    // versteckte Gruppen ausblenden
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'full_load', true);                 // alle Gruppen und Artikel ausgeben
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_groups', 'index.php');   // Verweise auf die Hauptdatei der Webseite setzen
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_articles', 'index.php'); // Verweise auf die Hauptdatei der Webseite setzen
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_detail', 'index.php');   // Verweise auf die Hauptdatei der Webseite setzen
 
  $GLOBALS["DynPG"]->SetupTemplate('plugin_content');      // Template setzen, welches nur die XML-Anweisungen ausgibt
  $GLOBALS["DynPG"]->SetParam_A_Anytime(true);             // Sitemap muss immer angezeigt werden
  $GLOBALS["DynPG"]->SetParam_A_Article(1);                // Artikelnummer der dynamischen Navigation
  $GLOBALS["DynPG"]->Write_Article();                      // Sitemap ausgeben
?>

Beispiel ausführen

<toggledisplay status="hide" showtext="▼ Quelltext anzeigen" hidetext="▼ Quelltext verbergen" linkstyle="font-size:normal;"> index.php:

<?php
  require '../../dynpg/getcontent.php';                   // DynPG-Funktionalität einbinden
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../../dynpg/'); // DynPG-Pfad setzen
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
  <title>XML Sitemap</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 
  <link rel="stylesheet" type="text/css" href="style.css" />    <!--eigene style.css einbinden-->
</head>
 
<body>
  <h1>XML Sitemap</h1>
 
  <!-- Navigation -->
  <div id="navigation">
    <?php
	$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_subpages',
      Array(
        7 => Array(
          'page' => '../examples/sitemap-xml/sitemap.xml.php{query}',
          'successors' => true
        )
      )
    );    
    $GLOBALS["DynPG"]->SetupTemplate('uneditable');          // diese Template verhindert, dass der Artikel selbst im Frontend-Editiermodus bearbeitet werden kann
    $GLOBALS["DynPG"]->SetParam_A_Anytime(true);             // dynamische Navigation immer anzeigen
    $GLOBALS["DynPG"]->SetParam_A_Article(1);                // Artikelnummer der dynamischen Navigation
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);      // Artikelkopf (Titel, Lead-Bild und Lead-Text) ausblenden
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false); // Kategorienavigation (Gruppe > Untergruppe > Artikel) ausblenden
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(false);    // Drucken-Link ausblenden
    $GLOBALS["DynPG"]->Write_Article();                      // dynamische Navigation ausgeben
    $GLOBALS["DynPG"]->SetupTemplate('default');             // Standard-Template setzen
    ?>
  </div>
 
  <!-- Inhalt -->
  <div id="inhalt">
    <?php
    $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->Write_AllArticles();       // Artikdelliste-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false); // Parameter wieder auf false setzen (wurde bei der Navigation auf true gesetzt)
    $GLOBALS["DynPG"]->Write_Article();           // Artikel-Detailansicht ausgeben
    ?>
  </div>
 
  <!-- Link zur XML Sitemap -->
  <div id="footer">
    <a href="sitemap.xml.php" >XML Sitemap</a>
  </div>
</body>
</html>

sitemap.xml.php:

<?php
  require '../../dynpg/getcontent.php';                   // DynPG-Funktionalität einbinden
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../../dynpg/'); // DynPG-Pfad setzen
 
  print '<?xml version="1.0" encoding="UTF-8"?>';
 
  $GLOBALS["DynPG"]->SetParam_PlugIn_Template('DPGdynmenu', 'xml-sitemap');                  // XML-Sitemap-Template auswählen               
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'hide_not_public_groups', true);    // versteckte Gruppen ausblenden
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'full_load', true);                 // alle Gruppen und Artikel ausgeben
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_groups', 'index.php');   // Verweise auf die Hauptdatei der Webseite setzen
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_articles', 'index.php'); // Verweise auf die Hauptdatei der Webseite setzen
  $GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'href_page_detail', 'index.php');   // Verweise auf die Hauptdatei der Webseite setzen
 
  $GLOBALS["DynPG"]->SetupTemplate('plugin_content');      // Template setzen, welches nur die XML-Anweisungen ausgibt
  $GLOBALS["DynPG"]->SetParam_A_Anytime(true);             // Sitemap muss immer angezeigt werden
  $GLOBALS["DynPG"]->SetParam_A_Article(1);                // Artikelnummer der dynamischen Navigation
  $GLOBALS["DynPG"]->Write_Article();                      // Sitemap ausgeben
?>

style.css:

/* Navigation */
div#navigation{
  /* Angaben für ein zweispaltiges Layout */
  float:left;
  width:150pt;
  margin-left:5pt;
  margin-right:5pt;
 
  border:1px solid #AAA;
}
 
/* Inhalt */
div#inhalt {
  /* Angaben für ein zweispaltiges Layout */ 
  margin-left:165pt;
  margin-right:5pt;
}
 
/* Alle divs innerhalb des Navigationsmenüs verschieben ihren Inhalt
   um 10 pt nach rechts. Durch die Verschaltelung von divs innerhalb
   des Menüs erhalten wir so eine Einrückung. */
div#course_categories_menu  div  {
  padding-left:10pt;
}
 
/* Alle links innerhalb des Navigationsmenüs */
div#course_categories_menu  a {
  text-decoration:none;
}

</toggledisplay>