Codebeispiele - Templates: Unterschied zwischen den Versionen

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Category:Beispiele == Minimalbeispiel == {{Code Example | Beschreibung = Ein Beispiel für ein minimales Template | Link = http://examples.gampe…“)
 
K (Template mit PHP Anweisung)
 
(Eine dazwischenliegende Version des gleichen Benutzers werden nicht angezeigt)
Zeile 194: Zeile 194:
 
}}
 
}}
  
== Template mit PHP Anweisung ==
+
== Template mit PHP-Anweisung ==
 
{{Code Example
 
{{Code Example
 
| Beschreibung = Ein Beispiel für ein [[Templates|Template]] mit einer PHP Anweisung
 
| Beschreibung = Ein Beispiel für ein [[Templates|Template]] mit einer PHP Anweisung

Aktuelle Version vom 9. Oktober 2011, 19:35 Uhr

Minimalbeispiel

Beschreibung:

Ein Beispiel für ein minimales Template

Voraussetzungen:

-

Snippet:

index.php:

<?php
  $GLOBALS["DynPG"]->setupTemplate('minimal');  // Beispiel-Template setzen
 
  $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_Article();           // Artikel-Detailansicht ausgeben
?>

<DynPG Ordner>/tpl/MyCMS/minimal/detail.tpl:

<!-- Dies ist ein Kommentar (er wird nicht angezeigt) -->
{$CONTENT} <!--Den Inhalt des Artikels ausgeben--> 

Dies ist ein <b>selbstdefiniertes Template</b>  <!--beliebiger HTML-Code-->

<!--Alles was hier drinsteht, wird nach dem Aufruf von $DynPG->Write_Article(); eingefügt -->

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>Seite mit dynamischen Navigationsmenü</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>Minimalbeispiel: Template</h1>
 
  <div id="navigation">
    <?php
    $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
    ?>
  </div>
 
  <div id="inhalt">
    <?php
    $GLOBALS["DynPG"]->setupTemplate('minimal');  // Beispiel-Template setzen
 
    $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-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>
</body>
</html>

<DynPG Ordner>/tpl/MyCMS/minimal/detail.tpl:

<!-- Dies ist ein Kommentar (er wird nicht angezeigt) -->
{$CONTENT} <!--Den Inhalt des Artikels ausgeben--> 

Dies ist ein <b>selbstdefiniertes Template</b>  <!--beliebiger HTML-Code-->

<!--Alles was hier drinsteht, wird nach dem Aufruf von $DynPG->Write_Article(); eingefügt -->

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>

Template mit Bedingung

Beschreibung:

Ein Beispiel für ein Template mit Bedingung

Voraussetzungen:

-

Snippet:

index.php:

<?php
  $GLOBALS["DynPG"]->setupTemplate('example_cond_statement'); // Beispiel-Template setzen
 
  $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_Article();           // Artikel-Detailansicht ausgeben
?>

<DynPG Ordner>/tpl/MyCMS/example_cond_statement/detail.tpl:

<!-- Wenn Artikelname = "dynpg ist Open Source und Freeware!" dann Inhalt und zusätzlichen Text ausgeben -->
{$# ('{$TITLE}'=='Willkommen auf der Beispielwebseite') #}
  Mein <b>Lieblingsartikel</b>!
  
  {$CONTENT}
{$# End #}

<!-- andernfalls nur den Inhalt ausgeben -->
{$# ('{$TITLE}'!='Willkommen auf der Beispielwebseite') #}
  {$CONTENT}
{$# End #}

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>Beispiel: Template mit Bedingung</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>Beispiel: Template mit Bedingung</h1>
 
  <div id="navigation">
    <?php
    $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
    ?>
  </div>
 
  <div id="inhalt">
    <?php
    $GLOBALS["DynPG"]->setupTemplate('example_cond_statement'); // Beispiel-Template setzen
 
    $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-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>
</body>
</html>

<DynPG Ordner>/tpl/MyCMS/example_cond_statement/detail.tpl:

<!-- Wenn Artikelname = "dynpg ist Open Source und Freeware!" dann Inhalt und zusätzlichen Text ausgeben -->
{$# ('{$TITLE}'=='Willkommen auf der Beispielwebseite') #}
  Mein <b>Lieblingsartikel</b>!
  
  {$CONTENT}
{$# End #}

<!-- andernfalls nur den Inhalt ausgeben -->
{$# ('{$TITLE}'!='Willkommen auf der Beispielwebseite') #}
  {$CONTENT}
{$# End #}

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>

Template mit PHP-Anweisung

Beschreibung:

Ein Beispiel für ein Template mit einer PHP Anweisung

Voraussetzungen:

-

Snippet:

index.php:

<?php
  $GLOBALS["DynPG"]->setupTemplate('example_php_expr');  // Beispiel-Template setzen
 
  $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-Ansicht ausgeben
  $GLOBALS["DynPG"]->Write_Article();           // Artikel-Detailansicht ausgeben
?>

<DynPG Ordner>/tpl/MyCMS/example_php_expr/detail.tpl:

<!--Zeichenlänge des Titels anzeigen-->
Die Länge des Titels beträgt {$#PHP (strlen("{$TITLE}")) #} Zeichen<br /><br />

{$CONTENT}  <!--Inhalt 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>Seite mit dynamischen Navigationsmenü</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>Beispiel: Template mit PHP-Anweisung</h1>
 
  <div id="navigation">
    <?php
    $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
    ?>
  </div>
 
  <div id="inhalt">
    <?php
    $GLOBALS["DynPG"]->setupTemplate('example_php_expr'); // Beispiel-Template setzen
 
    $GLOBALS["DynPG"]->Write_AllGroups();         // Gruppenlisten-Ansicht ausgeben (standardmäßig abhängig vom Navigationskontext)
    $GLOBALS["DynPG"]->Write_AllArticles();       // Artikelliste-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>
</body>
</html>

<DynPG Ordner>/tpl/MyCMS/example_php_expr/detail.tpl:

<!--Zeichenlänge des Titels anzeigen-->
Die Länge des Titels beträgt {$#PHP (strlen("{$TITLE}")) #} Zeichen<br /><br />

{$CONTENT}  <!--Inhalt 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>