Richtlinien für Lepton Templates

Lepton-CMSon Juli 29th, 20111 Kommentar

Ein Template für das Lepton CMS zu erstellen geht ganz einfach! In diesem Beitrag stellen wir die wichtigsten php Aufrufe und Richtlinien vor.

Template Guidelines

Für die Erstellung eines Lepton Templates benötigt man drei Dateien.
1. index.php
2. info.php
3. screen.css

Die .css Datei kann natürlich auch anders lauten wie z.B. template.css oder main.css.

 

Der head-Bereich einer index.php

 

Schritt 1

Das inkludieren der class.secure.php

<?php

if (defined('WB_PATH')) {	
	include(WB_PATH.'/framework/class.secure.php'); 
} elseif (file_exists($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php')) {
	include($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php'); 
} else {
	$subs = explode('/', dirname($_SERVER['SCRIPT_NAME']));	$dir = $_SERVER['DOCUMENT_ROOT'];
	$inc = false;
	foreach ($subs as $sub) {
		if (empty($sub)) continue; $dir .= '/'.$sub;
		if (file_exists($dir.'/framework/class.secure.php')) { 
			include($dir.'/framework/class.secure.php'); $inc = true;	break; 
		} 
	}
	if (!$inc) trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']));
}
// end include class.secure.php


?>


Schritt 2

DOCTYPE-Definition
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

// hier beginnt head
<head> 

Schritt 3

Meta-Angaben
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8'; ?>" />

<meta name="description" content="<?php page_description(); ?>" />
<meta name="keywords" content="<?php page_keywords(); ?>" />

Schritt 4

Das einbinden der css-Datei
<link href="<?php echo TEMPLATE_DIR; ?>/style.css" rel="stylesheet" type="text/css" />

Schritt 5

Der Page Titel

<title><?php page_title('', '[WEBSITE_TITLE]'); ?></title>
// hier endet head
</head>

 

 

Der Body der index.php

 

Beispiele für Menü, Content, Suche und Login.

 

 

<body>

<!---------- Menu ---------->

<ul>
<?php show_menu(1,0,1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>

<!-- ************** Eventuelles Unter-Menu ************** -->

<ul>
<?php show_menu(1,1,-1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>


<!---------- Menu ----------->



<!---------- Das Content ----------->

<?php page_content(1); ?>

<!---------- End Content ----------->



<!---------- Optionale Suche ---------->

	<?php 
	if (SHOW_SEARCH) { ?>
	<form action="<?php echo WB_URL; ?>/search/index.php" method="get">
		<p><input type="hidden" name="referrer" value="<?php
			echo defined('REFERRER_ID') ? REFERRER_ID : PAGE_ID; ?>" /></p>
		<fieldset>
			<legend><?php echo $TEXT['SEARCH']; ?>:</legend>
			<input type="text" name="string" class="search_string" />
			<input type="submit" name="wb_search" id="wb_search" value="<?php
			echo $TEXT['SEARCH']; ?>" />
		</fieldset>
	</form>
	<?php 
	} ?>


<!---------- Ende Optionale Suche ----------->


<!---------- Optionale Loginbox ------------>


<?php
if (FRONTEND_LOGIN == 'enabled' && VISIBILITY != 'private' 
	&& $wb->get_session('USER_ID') == '') { ?>
	<!-- login form -->
	<form name="login" id="login1" action="<?php 
		echo LOGIN_URL; ?>" method="post">
		<fieldset>
			<legend><?php echo $TEXT['LOGIN']; ?>:</legend>
			<label for="username" accesskey="1">
			<?php echo $TEXT['USERNAME']; ?>:</label>
			<input type="text" name="username" id="username" 
				style="text-transform: lowercase;" /><br />
			<label for="password" accesskey="2"><?php echo $TEXT['PASSWORD']; ?>:</label>
			<input type="password" name="password" id="password" /><br />
			<input type="submit" name="wb_login" id="wb_login" value="<?php 
			echo $MENU['LOGIN']; ?>"/><br />
	
			<!-- forgotten details link -->
			<a href="<?php echo FORGOT_URL; ?>"><?php echo $TEXT['FORGOT_DETAILS']; ?></a>

			<!-- frontend signup -->
			<?php
			if (is_numeric(FRONTEND_SIGNUP)) { ?>
			<a href="<?php echo SIGNUP_URL; ?>"><?php echo $TEXT['SIGNUP']; ?></a>
			<?php } ?>
		</fieldset>
	</form>
<?php 
} elseif (FRONTEND_LOGIN == 'enabled' && is_numeric($wb->get_session('USER_ID'))) { ?>
	<!-- logout form -->
	<form name="logout" id="logout1" action="<?php echo LOGOUT_URL; ?>" method="post">
		<fieldset>
			<legend><?php echo $TEXT['LOGGED_IN']; ?>:</legend>
			<p><?php echo $TEXT['WELCOME_BACK']; ?>, <?php echo $wb->get_display_name(); ?></p>
			<input type="submit" name="wb_login" id="wb_login" value="<?php 
			echo $MENU['LOGOUT']; ?>" />
			<!-- edit user preferences -->
			<p><a href="<?php echo PREFERENCES_URL; ?>"><?php echo $MENU['PREFERENCES']; ?></a></p>
		</fieldset>
	</form>
<?php 
} ?>


<!----------- Ende der Optionalen Loginbox -------------->



</body>
</html>

 

 

Die info.php

 

Allgemeinen Informationen was im Frontend und Backend angezeigt werden soll. Hier werden Teplatename, Speicherort, Autor, Lizenz, Beschreibung und zusätzliche Menüs sowie Inhaltsblöcke angelegt.

Im Beispiel heißt das Template Lepton-1

 


<?php

if (defined('WB_PATH')) {	
	include(WB_PATH.'/framework/class.secure.php'); 
} elseif (file_exists($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php')) {
	include($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php'); 
} else {
	$subs = explode('/', dirname($_SERVER['SCRIPT_NAME']));	$dir = $_SERVER['DOCUMENT_ROOT'];
	$inc = false;
	foreach ($subs as $sub) {
		if (empty($sub)) continue; $dir .= '/'.$sub;
		if (file_exists($dir.'/framework/class.secure.php')) { 
			include($dir.'/framework/class.secure.php'); $inc = true;	break; 
		} 
	}
	if (!$inc) trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']));
}
// end include class.secure.php

$template_directory     = 'lepton-1;
$template_name          = 'Lepton-1';
$template_function	= 'template';
$template_version       = '1.1';
$template_platform      = '1.0';
$template_author        = 'Ihr Name';
$template_license       = 'Ihre Lizenz';
$template_license_terms = 'Ihre Lizenzbedingungen evt. Backlink';
$template_guid          = 'a1619a06-4e52-44d9-bf1f-96f9809bac34333';
$template_description   = 'Ihre Beschreibung ';
$block[1]	= 'content-1';
$block[2]	= 'content-2';
$menu[1]    = 'Hauptnavigation';

?>
  • StumbleUpon
  • Digg
  • Delicious
  • Technorati
  • Yahoo! Bookmarks
  • Twitter
  • MySpace
  • Google Bookmarks
  • Facebook
  • E-Mail

Eine Antwort zu “Richtlinien für Lepton Templates”

  1. André says:

    Hallo Jürgen,
    vielen Dank für den prima Artikel.
    Kannst Du sagen, wofür die class.secure.php nötig ist? Ich war der Meinung, das Template-System von LEPTON funktioniert weitestgehend noch gleich dem von WebsiteBaker – mit Ausnahme einiger Ergänzungen in der info.php. Doch unter WB war das Inkludieren der Datei nicht nötig (dort gab es diese ja auch gar nicht). Ich würde gern wissen, was ihr Zweck ist. Habe mir schon den Code angesehen (mit dem Code-Kommentar „THIS IS A TEMPORARY AND SMALL SOLUTION!“) aber werde nicht so richtig schlau daraus. Weißt Du mehr?
    Viele Grüße
    André