Das folgende Beispiel veranschaulicht die Funktionsweise von LiBe CMS.

Der folgende Quellcode ist auf das Wesentliche beschränkt. Die HTML Tags sowie id und class Attribute können je nach Anforderung hinzugefügt oder angepasst werden, bzw. können die einzelnen Bereiche an anderen Positionen oder mit zusätzlichen Abfragen in den Vorlagen verwendet werden.

Der Quellcode oder Teile davon können als Basis für die index.php deines Templates verwendet werden. (Ordner /template/mein Template Ordner/index.php)

Die Datei index.php beinhaltet alle Elemente der Seite, vom Header bis zum Footer, bestimmte Elemente können mittels PHP Abfragen ausgeblendet werden. (z.B. anhand der Variablen $start, $level, $article,$existing_sub, $menuforlevel[$??], siehe den Beispiel Quellcode auf dieser Seite und für Details:  Quellcode Anpassen )

Legende:

HTML CODE ist schwarz

PHP CODE ist blau markiert

Kommentare sind grau

 

Die Bilder sind Praxisbeispiele unter Anwendung entsprechender css Definitionen für den jeweiligen Codeblock.

Source Code Beispiel: index.php

<!DOCTYPE html>

<html lang="de">

 

<?php /*----------------------------------------------------------------------------------------------------------

Head

--------------------------------------------------------------------------------------------------------------*/ ?>

 

<head>

<?php //HEAD enthält meta, title, Stylesheets und Skripts... ?>

<meta charset="utf-8" />

<title><?php echo $title;?></title>

<link rel="stylesheet" href="<?php echo $firstparturl,$templatedir;?>main.css" type="text/css" />

<?php if (!empty($meta)) echo "<meta name=\"description\" content=\"", $meta,"\" />";?>

 

<?php //damit die Seite schneller geladen wird, kann jquery und entsprechende jquery plugins  am Ende des HMTL Codes eingebunden werden (vor </body>)... sämtliche zusätzliche Skripts innerhalb der Seite können mit $bottomload.='<script></script>'; auch im Template hinzugefügt werden.?>

<?php $bottomload="<script type=\"text/javascript\" src=\"".$firstparturl."plugins/jquery/jquery-2.2.1.min.js\"></script>";

</head>

 

 

<?php /*----------------------------------------------------------------------------------------------------------

Body

--------------------------------------------------------------------------------------------------------------*/ ?>

 

<body>

<header> Beispiel für Headlines 

<?php //Überschrift Titel und Beschreibung... ?>

<h1><?php echo $title;?></h1><?php //display the title of the topic ?>  

<h2><?php if (!empty($smalldescription)) echo $smalldescription; else echo $page_description;?></h2>  <?php //Kurzberschreibung des Themas, bzw. Seitenbeschreibung ?>

</header> 

 

<?php /*----------------------------------------------------------------------------------------------------------

NAV Site Navigation Beispiel Navigation: hier Dropdown Menü 

--------------------------------------------------------------------------------------------------------------*/ ?>

 

<nav>

<?php //Seiten Navigation... ?>

<ul><?php //buildmenuul wird mittels <li> gestartet, vorher muss also noch <ul> definiert werden?>


<?php // hier können css class Parameter definiert werden.

$css_class_dropdown="dropdown";//class wird auf <li> angewandt, wenn ein Untermenü vorhanden ist

$css_class_dropdown_depth="1";//in welcher Ebene (level) soll die Klasse angewandt werden ...

$css_class_li_active="active";//class für den gerade aktiven Artikel

$css_class_li_level[0]="li0";//$css_class_li_level ist ein Array mittels welcher ein <li class=" Parameter für eine bestimmte Ebene (level) gesetzt werden kann

$css_class_a_level[0]="a0";//$css_class_a_level ist ein Array mittels welcher ein "<a class=" Parameter für eine bestimmte Ebene (level) gesetzt werden kann

$css_class_ul_level[0]="ul0";//$css_class_ul_level ist ein Array mittels welcher ein "<ul class=" Parameter für eine bestimmte Ebene (level) gesetzt werden kann

 

echo buildmenuul("2",0, "2"); //erzeugt ein verschachteltes ul li menu: <li><a href=""></a><ul><li><a href=""></a></li></ul></li>

//buildmenuul("end_level","submenu","collapse","limit")

//end_level bedeuted für verschachtelte ul bis zu welcher Ebene (Level) diese erzeugt werden soll.

//submenu sollte 0 sein, außer es werden zusätzliche Menüs verwendet, siehe: http://cms.libe.net/index.php/mehrere-Mens-erstellen

//collapse bedeuted: Menu ausklappen bis zum jeweiligen Level (Ebene)

//limit ... limitiert die Anzahl der Links im Menü: die Funktion generiert nur soviel Links wie im Limit definiert.

 

unset($css_class_dropdown);unset($css_class_li_level);unset($css_class_a_level);unset($css_class_ul_level); //um Ende können die Variablen wieder frei gegeben werden um nicht unabsichtlich eine andere Funktion zu manipulieren ...

?>

</ul>

</nav>

 

<?php /*----------------------------------------------------------------------------------------------------------

Breadcrumb NAV Beispiel: Breadcrumb 

--------------------------------------------------------------------------------------------------------------*/ ?>

<nav>

<?php //breadcrumb... Links zu den nächst höheren Ebenen / Levels
if ($start!=1) //nur wenn nicht die Startseite

echo "<ol><li><a href=$firstparturl>HOME</a></li>".breadcrumb("<li><a href=\"%linkurl%\">%titlemenu%</a></li>")."<li>$titel</li> </ol>"; //Der HTML Code der Funktion breadcrum kann frei definiert werden, siehe: http://cms.libe.net/index.php/Vorlagen-anpassen#platzhalterhtmltemplate

?>

</nav>

 

<?php /*----------------------------------------------------------------------------------------------------------

Article Beispiel: Artikel: Inhalt 

--------------------------------------------------------------------------------------------------------------*/ ?>

<article>

<?php //Text des Hauptartikels ... ?>

<?php echo $text;?>

 

 <?php //Änderungsdatum des Artikels wenn kein Unterartikel existiert, sollte das Veröffentlichungsdatum neuer als das Änderungsdatum sein, wird dies angepasst:  ..?>
<?php if ($start!=1 and $existing_sub!=1) echo "<div class=\"pull-right changedate\">$lang_txt_030: ".$changedate."</div>" ;?>

</article>

 

<?php /*----------------------------------------------------------------------------------------------------------

Section News Startpage Beispiel News Startpage 

--------------------------------------------------------------------------------------------------------------*/ ?>

<section>

<?php //News Bereich Startseite: ... 

if ($start==1) //nur wenn es sich um die Startseite handelt

{

$html_template="<li><a href=\"%linkurl%\"><img alt=\"%titlemenu%\" src=\"%image150%\"></a>
%datetime%
<a href=\"%linkurl%\">%titlemenu%</a>
%textpagebreak%

<a href=\"%linkurl%\">%smalldescription%</a>
</li>"; //der HTML Code kann frei angepasst werden, siehe:  http://cms.libe.net/index.php/Vorlagen-anpassen#platzhalterhtmltemplate

 

$newest= newest(4,0);//prepare Variable Newest: 

//newest("Anzahl der News-beiträge","Start von")

//Start von 0, bedeuted die neuesten Artikel; 3 zum Beispiel: starte vom 3t neuesten Artikel: Haupsächlich verwendet um ältere Artikel ev. ein anderes Layout zu geben ...

if (strlen($newest)>81) //News nur anzeigen, wenn News vorhanden

{

echo "<h1 class=\"page-header\">New Topics <a href=\"$firstparturl"."rss.php\"><img src=\"". $firstparturl. "image/rss.png\" alt=\"Newsfeed\" style=\"border:0\"></a></h1>";//Überschrift und Link zum Newsfeed (News RSS)

echo $newest;

}

}?>

</section>

 

<?php /*----------------------------------------------------------------------------------------------------------

Section Feedbacks Beispiel: Feedbacks 

--------------------------------------------------------------------------------------------------------------*/ ?>

<section>

<?php //Feedback-Modul laden

if ($addfeedback==1) //wenn die Feedback Checkbox im Artikel ausgewählt wurde:

{

echo "<h1>Feedback:</h1>";

include("plugins/libe/feedback.php");

}

?>

</section>

 

<?php /*----------------------------------------------------------------------------------------------------------

Menu Subtopics Beispiel Menu Subtopics 

--------------------------------------------------------------------------------------------------------------*/ ?>

<section>

<?php //wenn es untergeordnete Artikel gibt, kann davon ein Menü erzeugt werden (Verknüpfung und Minibild)
//Variablen die in buildmenu verwendet werden können:
$css_clearfix=3;//schreibe bei jedem 3ten Artikel einen extra HTML Code: z.B. Zeilenumbruch, ...

$css_clearfix_tag="<div></div>";//hier der HTML Code für jeden 3ten Artikel
$html_template="<a href=\"%linkurl%\"><img alt=\"%titlemenu%\" class=\"img-thumbnail scale\" src=\"%image150%\"></a>

%titlemenu% %smalldescription% %textpagebreak%

<a href=\"%linkurl%\">%titlemenu%</a>\n";//HTML Template for buildmenu siehe Platzhalter html_template
if ($start!=1 and $search!=1 and $existing_sub) //wenn nicht die Startseite, nicht dieSuche und wenn ein untergeordneter Artikel existiert

echo buildmenu($level+1,$level+1,$level+1);//Aufruf der Funktion unter Berücksichtigung von  $html_template $level+1 bedeuted die Artikel der nächst höheren Ebene (Level)

unset($html_template);unset($css_clearfix);unset($css_clearfix_tag);//Variablen freigeben
?>

</section>

<?php /*----------------------------------------------------------------------------------------------------------

Nav Previous Next Beispiel Previous Next 

--------------------------------------------------------------------------------------------------------------*/ ?>

<?php if ($start!=1 and $level>1){//Anzeigen, nur wenn nicht die Startseite und eine Linktiefe (Ebene) grösser 1; wird also erst bei Artikeln angezeigt die in 2ter Ebene oder tiefer sind.

?>

<nav>

<?php //vorheriger und nächster Artikel
echo prev_topic("<a href=\"%linkurl%#breadcrumb\" class=\"prev_topic\">%titlemenu%</a>\n");//der HTML Code der Funktion prev_topic kann frei definiert werden, siehe: Platzhalter html_template
echo next_topic("<a href=\"%linkurl%#breadcrumb\" class=\"next_topic\">%titlemenu%</a>\n");//der HTML Code der Funktion next_topic kann frei definiert werden, siehe:Platzhalter html_template
?>

</nav>

<?php }//Ende der Auswahl start und level?>

 

<?php /*----------------------------------------------------------------------------------------------------------

Form Search Beispiel Search 

--------------------------------------------------------------------------------------------------------------*/ ?>

<form role="search" action="<?php echo $firstparturl;?>index.php/search/" method="get">

<input placeholder="Search on this Page" type="search" name="s" value="" />
<input type="submit" value="suche"/>
</form>

 

<?php /*----------------------------------------------------------------------------------------------------------

Footer Beispiel Footer 

--------------------------------------------------------------------------------------------------------------*/ ?>

<footer> 

<?php echo loadcontent("footer-text");//lädt den Inhalt des Spezialartikels Footer-text, mittels loadcontent können Bereiche der Seite mittels des Artikel-Editors bearbeitet werden. Diese Artikel müssen nicht im Menü angelegt werden.?>

<?php //Footer enthält Copyright, Impressum, ... ?>

Copyright Notice,

<small><a href="http://cms.libe.net">powered by LiBe CMS</a></small>

<?php

echo $page_title;//zeigt den Seitentitel, dieser ist in den Einstellungen definiert

echo $page_description;//zeigt die Seitenbeschreibung, diese ist in den Einstellungen definiert

 

if ($start==1) echo singlelink("Impressum"); //zeigt einen Link zu Impressum wenn ein Inhalt in Impressum geschreiben wurde. 

?> 

</footer>

<?php //lädt Skripts die im Quellcode definiert wurden
echo $bottomload;?> 

<?php include("plugins/libe/counter.php"); //aktiviert den Besucherzähler: Voraussetzung dafür ist der Ordner /counter auf dem Webserver

?>

</body>

</html>


Feedback: