Eine einfache Inhaltsübersicht: Unterschied zwischen den Versionen

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche
 
(Infobox-Templates eingefügt)
 
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Kategorie:Integration in eine Webseite]]
 
[[Kategorie:Integration in eine Webseite]]
 +
[[en:Integration short and sweet]]
 +
{{Einführungsartikel}}
  
== Ein paar Hinweise zum Einstieg ==
+
Im Artikel über die [[Die drei Ansichten von DynPG|drei Ansichten von DynPG]] haben wir gesehen, wie wir eine Gruppenliste, Artikelliste und Artikeldetailansicht erstellen. In diesem Artikel wollen wir die drei Ansichten nun kombinieren, um eine einfache Navigation für den Inhalt zu erstellen.
  
Infolge der bestehenden Standard-Templates ist es nicht zwingend notwendig, neue
+
== Erstellen der Inhaltsübersicht ==
Templates zu erstellen. Es kann demnach einfach erst einmal der Code eingebunden
+
werden. Ansichten werden durch das CSS "config_general.css" verändert, welches sich
+
im Verzeichnis CSS im Stammverzeichnis von DynPG befindet.
+
  
Wir verweisen darauf hin, dass diese Erklärung hier nicht die komplette Dokumentation ersetzt.
+
=== DynPG einbinden ===
Wir zeigen hier nur grob ein Muster auf, Erklärungen zu den einzelnen Varianten können
+
Zuerst binden wir [[DynPG in eine Webseite einbinden|DynPG in unsere Webseite ein]]. Dazu schreiben wir and den Anfang der PHP-Datei folgende Zeilen und passen diese wie im Artikel zur Einbindung beschrieben an den Speicherort von DynPG an:
in anderen Artikeln nachgelesen werden.
+
  
Nun zur Definition der einzelnen Ansichten.
 
 
Um DynPG in Ihren PHP-Seiten verwenden zu können, setzen Sie bitte die folgenden
 
drei Zeilen an den Anfang Ihrer PHP-Seite, noch bevor Sie irgend welche HTML-Tags
 
einfügen (d.h. auch noch vor den <tt>DOCTYPE</tt>).
 
 
<code>[php,N]
 
<code>[php,N]
 
<?php
 
<?php
   require('dynpg/getcontent.php');
+
   require('../dynpg/getcontent.php');
   $DynPG->SetParam_PathToRoot('dynpg/');
+
   $GLOBALS["DynPG"]->SetParam_PathToRoot('../dynpg/');
 
?>
 
?>
 
</code>
 
</code>
  
Sie haben daraufhin nun die Möglichkeit, verschiedene Ansichten zu implementieren,
+
=== Standard-CSS einbinden ===
welche die Aufgabe haben, den von Ihnen erzeugten Inhalt aus dem Backend ins Frontend
+
Nun sollten wir die Standard-[[CSS]] Dateien von DynPG einbinden, um ein bereits fertig definiertes Layout für die Inhaltsansicht zu erhalten. Dazu fügen wir im <tt><head></tt>-Bereich der Webseite folgende Zeile ein.
zu implementieren. Logischerweise ergeben sich daraus drei Listungen, welche
+
die Darstellung der Daten abdecken: Artikellisten, Gruppenlisten und einzelne Ansichten
+
der Artikel.
+
  
DynPG arbeitet hier mit PHP-Snipptes, Codeschnipseln, welche Sie an die jeweiligen
+
<code>[php,N]
Stellen Ihrer Seite schieben, wodurch an eben diesen Stellend er Inhalt angezeigt wird.
+
<head>
  
Der Sinn dahinter ist, dass die Templatearbeit verringert wird, da sie im äußersten Falle
+
  <!-- ... -->
nur die Templates der dynamsichen Ansichten editieren müssen, der Rest der Seite
+
kann von Ihnen frei und wie gewohnt erstellt werden.
+
  
== Die Einbindung eines einzelnen Artikels ==
+
  <?php $GLOBALS["DynPG"]->Write_CSS_JS_Header(); ?>
 +
</head>
 +
</code>
  
Im <tt><head></tt>-Bereich jeder php-Datei kann danach ein CSS definiert werden. Dabei sind
+
Dieser Befehl bindet die CSS-Dateien von DynPG ein. Sie können sich natürlich später auch eigene Stylesheets definieren.
Sie frei, an welcher Stelle Sie das Snippet einsetzen. Es empfiehlt sich aber der Übersichtlichkeit
+
 
halber, dieses immer am selben Ort einzufügen.
+
=== Inhaltsübersicht ===
 +
Nun folgt das eigentliche Snippet für die Inhaltsübersicht, das Sie an einer beliebigen Stelle innerhalb der <tt>body</tt> Tags platzieren können:
 
<code>[php,N]
 
<code>[php,N]
<?php $DynPG->Write_CSS_JS_Header(); ?>
+
<body>
 +
 
 +
  <!-- ... -->
 +
 
 +
  <?php
 +
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
 +
    $GLOBALS["DynPG"]->Write_AllGroups();
 +
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
 +
    $GLOBALS["DynPG"]->Write_AllArticles();
 +
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
 +
    $GLOBALS["DynPG"]->Write_Article();
 +
  ?>
 +
</body>
 
</code>
 
</code>
 +
Die erste Anweisung bewirkt, dass die Gruppenliste immer angezeigt wird. Danach wird die Gruppenliste dann ausgegeben. Die dritte und fünfte Anweisung bewirken, dass die Artikelliste bzw. Artikel-Detailansicht abhängig vom [[Der Navigationskontext|Navigationskontext]] angezeigt werden. Das bedeutet, wenn in der Gruppenliste zu einer Gruppe navigiert wird, die Artikel enthält, so werden diese durch die Artikelliste angezeigt. In allen anderen Fällen gibt die Artikelliste nichts aus. Wird in der Artikelliste dann ein Artikel angeklickt, so wird dieser durch die Artikel-Detailansicht angezeigt. Andernfalls zeigt auch diese Ansicht nichts an. Durch dieses Prinzip haben wir nun eine einfache Inhaltsübersicht erzeugt, die alle im Backend erstellten Inhalte anzeigen kann.
  
Dieser Befehl implementiert die CSS-Dateien des CMS, alternativ können Sie natürlich
+
=== Vollständiges Beispiel ===
auch jegliche CSS-Definitionen in ihren eigenen CSS-Dateien vornehmen.
+
Das vollständige Beispiel für die Inhaltsübersicht sieht nun aus, wie folgt:
  
Nun folgt das eigentliche Snippet für den einzubindenden Artikel. Sie haben also die
 
Möglichkeit, den Artikel einfach in Ihr vorgesehenes Design einzubinden, wo auch immer
 
dies auf der Seite sein möge.
 
 
<code>[php,N]
 
<code>[php,N]
 
<?php
 
<?php
   // parameters
+
   require('../dynpg/getcontent.php');
  $DynPG->SetParam_A_CategoryNavigation(FALSE);
+
   $GLOBALS["DynPG"]->SetParam_PathToRoot('../dynpg/');
   $DynPG->SetParam_A_PrintNavigation(FALSE);
+
  $DynPG->SetParam_A_ArticleHeader(FALSE);
+
  $DynPG->SetParam_A_Article(1);
+
  // implementation
+
  $DynPG->SetParam_A_Anytime(TRUE);
+
  $DynPG->Write_Article();
+
 
?>
 
?>
 +
 +
<!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>Inhaltsübersicht</title>
 +
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 +
 +
  <?php $GLOBALS["DynPG"]->Write_CSS_JS_Header(); ?>
 +
</head>
 +
 +
<body>
 +
  <h1>Inhaltsübersicht</h1>
 +
 +
  <?php
 +
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
 +
    $GLOBALS["DynPG"]->Write_AllGroups();
 +
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
 +
    $GLOBALS["DynPG"]->Write_AllArticles();
 +
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
 +
    $GLOBALS["DynPG"]->Write_Article();
 +
  ?>
 +
</body>
 +
 +
</html>
 
</code>
 
</code>
  
Für die "1" unter <tt>SetParam_A_Article</tt> geben Sie diejenige Artikel-ID an, welche Sie implementieren möchten. Die jeweilige ID erfahren Sie im Backend.
+
=== Ausgabe im Browser ===
 +
Im Browser sollten wir nun die vollständige Inhaltsübersicht sehen können. Diese Übersicht stellt bereits eine vollständige Navigation dar, mit der Sie sich durch alle Gruppen und Artikel klicken können.
  
== Die Einbindung einer Artikelliste ==
+
[[Image:Inhaltsübersicht.png]]
  
Snippet für die Artikelliste (hier werden alle Artikel der Gruppe „DynPG“ implementiert).
+
== Einstellungen der Sichten ändern ==
<code>[php,N]
+
Wir können nun etwas an den Einstellungen für die [[Die drei Ansichten von DynPG|drei Ansichten von DynPG]] herumspielen, um zu demonstrieren, wie man die Sichten nach seinen Wünschen anpassen kann.
<?php
+
  $DynPG->SetParam_AA_Anytime(TRUE);
+
  $DynPG->SetParam_AA_Group("DynPG");
+
  $DynPG->Write_AllArticles();
+
  $DynPG->SetParam_A_Anytime(FALSE);
+
  $DynPG->SetParam_A_CategoryNavigation(TRUE);
+
  $DynPG->SetParam_A_PrintNavigation(TRUE);
+
  $DynPG->SetParam_A_ArticleHeader(TRUE);
+
  $DynPG->SetParam_A_IgnoreSeperator(TRUE);
+
  $DynPG->Write_Article();
+
?>
+
</code>
+
  
== Die Einbindung einer Gruppenliste ==
+
Funktionen zum Setzen von Parametern beginnen immer mit <tt>SetParam</tt>. Allgemein haben Sie den folgenden Aufbau:
 +
<center><tt>SetParam_'''ANSICHT'''_'''PARAMETER'''('''WERT''')</tt></center>
 +
wobei:
 +
* '''ANSICHT''' die betreffende Ansicht ist (AG - Gruppenliste, AA - Artikellsite oder A - Artikel).
 +
* '''PARAMETER''' der betreffende Parameter ist, welcher gesetzt wird.
 +
* '''WERT''' der neue Wert des Parameters ist.
  
Die dazugehörige Gruppenstruktur im Backend sähe folgendermaßen aus:
+
{{Info
*DynPG
+
|Einstellungen für die Sichten müssen immer '''vor''' dem jeweiligen <tt>Write_</tt> Befehl vorgenommen werden, da dieser die Sicht ausgibt und weitere Änderungen der Parameter sich nicht mehr auf die Ausgabe auswirken.}}
**Module
+
***diverse Artikel
+
**Demos
+
***diverse Artikel
+
  
Snippet für die Gruppenliste
+
Für die Sichten setzen wir nun die folgenden Parameter:
<code>[php,N]
+
<code>[php,y]
<?php
+
<body>
  $DynPG->SetParam_UseCategory('DynPG');
+
  <?php
  $DynPG->SetParam_AG_Anytime(TRUE);
+
    // Gruppenliste
  $DynPG->SetParam_AG_ForceNav(TRUE);
+
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
  $DynPG->Write_AllGroups();
+
    $GLOBALS["DynPG"]->SetParam_AG_Order( Array( 'INDEX' ) );
  $DynPG->SetParam_AA_Anytime(FALSE);
+
    $GLOBALS["DynPG"]->SetParam_AG_Sort( Array( 'ASC' ) );
  $DynPG->SetParam_AA_ForceNav(TRUE);
+
    $GLOBALS["DynPG"]->Write_AllGroups();
  $DynPG->Write_AllArticles();
+
 
  $DynPG->SetParam_A_CategoryNavigation(FALSE);
+
    // Artikelliste
  $DynPG->SetParam_A_PrintNavigation(TRUE);
+
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
  $DynPG->SetParam_A_ArticleHeader(TRUE);
+
    $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false);
  $DynPG->Write_Article();
+
    $GLOBALS["DynPG"]->Write_AllArticles();
?>
+
 
 +
    // Artikel-Detailansicht
 +
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
 +
    $GLOBALS["DynPG"]->SetParam_A_LinkNavigation(true);
 +
    $GLOBALS["DynPG"]->SetParam_A_PdfNavigation(true);
 +
    $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(true);
 +
    $GLOBALS["DynPG"]->SetParam_A_RecommendNavigation(true);
 +
    $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);
 +
    $GLOBALS["DynPG"]->Write_Article();
 +
  ?>
 +
</body>
 
</code>
 
</code>
  
== Diese Informationen als PDF ==
+
=== Erklärung ===
Dieser Artikel liegt auch als PDF vor, jedoch möglicherweise nicht so aktuell: [[Media:Integration.pdf|Integration.pdf]].
+
''Gruppenliste''
 +
* Zeile 5: legt fest, dass die Gruppen nach dem [[Artikel erstellen#Weitere Einstellungen|Sortierindex]] sortiert werden sollen
 +
* Zeile 6: legt fest, dass die Sortierung nach aufsteigendem [[Artikel erstellen#Weitere Einstellungen|Sortierindex]] geschehen soll
 +
 
 +
 
 +
''Artikelliste''
 +
* Zeile 11: blendet die Kategorie-Navigation (Breadcrumb-Navigation) aus
 +
 
 +
 
 +
''Artikel-Detailansicht''
 +
* Zeile 16: aktiviert den Button zur Anzeige des Links
 +
* Zeile 17: aktiviert den Button zur Konvertierung des Artikels in das PDF-Format
 +
* Zeile 18: aktiviert den Button zum Drucken des Artikels
 +
* Zeile 19: aktiviert den Button zum Weiterempfehlen des Artikels
 +
* Zeile 20: blendet den Artikel-Header (den Lead-Text und das Lead-Bild) aus
 +
 
 +
{{Info
 +
|Eine Übersicht, welche die am häufigsten verwendeten Methoden zur Änderung von Parametern enthält, finden Sie in der [[Schnellreferenz]] zum Ausdrucken. Eine vollständige Liste finden Sie in der [[Funktionsreferenz/Globals|Funktionsreferenz]].}}

Aktuelle Version vom 26. September 2011, 15:58 Uhr

Note.png Dieser Artikel ist Teil einer Reihe von Einführungsartikeln zu DynPG

Webseiten erstellen mit DynPG | DynPG in eine Webseite einbinden | Die drei Ansichten von DynPG | Eine einfache Inhaltsübersicht | Dynamisches Navigationmenü ... | CSS | Templates

zurück zu Kategorie:Integration in eine Webseite

Im Artikel über die drei Ansichten von DynPG haben wir gesehen, wie wir eine Gruppenliste, Artikelliste und Artikeldetailansicht erstellen. In diesem Artikel wollen wir die drei Ansichten nun kombinieren, um eine einfache Navigation für den Inhalt zu erstellen.

Erstellen der Inhaltsübersicht

DynPG einbinden

Zuerst binden wir DynPG in unsere Webseite ein. Dazu schreiben wir and den Anfang der PHP-Datei folgende Zeilen und passen diese wie im Artikel zur Einbindung beschrieben an den Speicherort von DynPG an:

<?php
  require('../dynpg/getcontent.php');
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../dynpg/');
?>

Standard-CSS einbinden

Nun sollten wir die Standard-CSS Dateien von DynPG einbinden, um ein bereits fertig definiertes Layout für die Inhaltsansicht zu erhalten. Dazu fügen wir im <head>-Bereich der Webseite folgende Zeile ein.

<head>
 
  <!-- ... -->
 
  <?php $GLOBALS["DynPG"]->Write_CSS_JS_Header(); ?>
</head>

Dieser Befehl bindet die CSS-Dateien von DynPG ein. Sie können sich natürlich später auch eigene Stylesheets definieren.

Inhaltsübersicht

Nun folgt das eigentliche Snippet für die Inhaltsübersicht, das Sie an einer beliebigen Stelle innerhalb der body Tags platzieren können:

<body>
 
  <!-- ... -->
 
  <?php
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
    $GLOBALS["DynPG"]->Write_AllGroups();
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
    $GLOBALS["DynPG"]->Write_AllArticles();
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
    $GLOBALS["DynPG"]->Write_Article();
  ?>
</body>

Die erste Anweisung bewirkt, dass die Gruppenliste immer angezeigt wird. Danach wird die Gruppenliste dann ausgegeben. Die dritte und fünfte Anweisung bewirken, dass die Artikelliste bzw. Artikel-Detailansicht abhängig vom Navigationskontext angezeigt werden. Das bedeutet, wenn in der Gruppenliste zu einer Gruppe navigiert wird, die Artikel enthält, so werden diese durch die Artikelliste angezeigt. In allen anderen Fällen gibt die Artikelliste nichts aus. Wird in der Artikelliste dann ein Artikel angeklickt, so wird dieser durch die Artikel-Detailansicht angezeigt. Andernfalls zeigt auch diese Ansicht nichts an. Durch dieses Prinzip haben wir nun eine einfache Inhaltsübersicht erzeugt, die alle im Backend erstellten Inhalte anzeigen kann.

Vollständiges Beispiel

Das vollständige Beispiel für die Inhaltsübersicht sieht nun aus, wie folgt:

<?php
  require('../dynpg/getcontent.php');
  $GLOBALS["DynPG"]->SetParam_PathToRoot('../dynpg/');
?>
 
<!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>Inhaltsübersicht</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 
  <?php $GLOBALS["DynPG"]->Write_CSS_JS_Header(); ?>
</head>
 
<body>
  <h1>Inhaltsübersicht</h1>
 
  <?php
    $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
    $GLOBALS["DynPG"]->Write_AllGroups();
    $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
    $GLOBALS["DynPG"]->Write_AllArticles();
    $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
    $GLOBALS["DynPG"]->Write_Article();
  ?>
</body>
 
</html>

Ausgabe im Browser

Im Browser sollten wir nun die vollständige Inhaltsübersicht sehen können. Diese Übersicht stellt bereits eine vollständige Navigation dar, mit der Sie sich durch alle Gruppen und Artikel klicken können.

Datei:Inhaltsübersicht.png

Einstellungen der Sichten ändern

Wir können nun etwas an den Einstellungen für die drei Ansichten von DynPG herumspielen, um zu demonstrieren, wie man die Sichten nach seinen Wünschen anpassen kann.

Funktionen zum Setzen von Parametern beginnen immer mit SetParam. Allgemein haben Sie den folgenden Aufbau:

SetParam_ANSICHT_PARAMETER(WERT)

wobei:

  • ANSICHT die betreffende Ansicht ist (AG - Gruppenliste, AA - Artikellsite oder A - Artikel).
  • PARAMETER der betreffende Parameter ist, welcher gesetzt wird.
  • WERT der neue Wert des Parameters ist.
Tip.png Tipp: Einstellungen für die Sichten müssen immer vor dem jeweiligen Write_ Befehl vorgenommen werden, da dieser die Sicht ausgibt und weitere Änderungen der Parameter sich nicht mehr auf die Ausgabe auswirken.

Für die Sichten setzen wir nun die folgenden Parameter:

  1. <body>
  2. <?php
  3. // Gruppenliste
  4. $GLOBALS["DynPG"]->SetParam_AG_Anytime(true);
  5. $GLOBALS["DynPG"]->SetParam_AG_Order( Array( 'INDEX' ) );
  6. $GLOBALS["DynPG"]->SetParam_AG_Sort( Array( 'ASC' ) );
  7. $GLOBALS["DynPG"]->Write_AllGroups();
  8.  
  9. // Artikelliste
  10. $GLOBALS["DynPG"]->SetParam_AA_Anytime(false);
  11. $GLOBALS["DynPG"]->SetParam_A_CategoryNavigation(false);
  12. $GLOBALS["DynPG"]->Write_AllArticles();
  13.  
  14. // Artikel-Detailansicht
  15. $GLOBALS["DynPG"]->SetParam_A_Anytime(false);
  16. $GLOBALS["DynPG"]->SetParam_A_LinkNavigation(true);
  17. $GLOBALS["DynPG"]->SetParam_A_PdfNavigation(true);
  18. $GLOBALS["DynPG"]->SetParam_A_PrintNavigation(true);
  19. $GLOBALS["DynPG"]->SetParam_A_RecommendNavigation(true);
  20. $GLOBALS["DynPG"]->SetParam_A_ArticleHeader(false);
  21. $GLOBALS["DynPG"]->Write_Article();
  22. ?>
  23. </body>

Erklärung

Gruppenliste

  • Zeile 5: legt fest, dass die Gruppen nach dem Sortierindex sortiert werden sollen
  • Zeile 6: legt fest, dass die Sortierung nach aufsteigendem Sortierindex geschehen soll


Artikelliste

  • Zeile 11: blendet die Kategorie-Navigation (Breadcrumb-Navigation) aus


Artikel-Detailansicht

  • Zeile 16: aktiviert den Button zur Anzeige des Links
  • Zeile 17: aktiviert den Button zur Konvertierung des Artikels in das PDF-Format
  • Zeile 18: aktiviert den Button zum Drucken des Artikels
  • Zeile 19: aktiviert den Button zum Weiterempfehlen des Artikels
  • Zeile 20: blendet den Artikel-Header (den Lead-Text und das Lead-Bild) aus
Tip.png Tipp: Eine Übersicht, welche die am häufigsten verwendeten Methoden zur Änderung von Parametern enthält, finden Sie in der Schnellreferenz zum Ausdrucken. Eine vollständige Liste finden Sie in der Funktionsreferenz.