phpSQLiteCMS HTML Sitemap Smarty Template

Vorwort

Im Gegensatz zur Standart XML Sitemap von phpSQLiteCMS das ohne Style Sheet daher kommt und eher für Suchmaschinen wie Google oder Yahoo! gedacht ist, hier ein Sitemap Template für phpSQLiteCMS das problemlos in die Webseite integriert werden kann um Besuchern die Navigation und Orientierung zu erleichtert.

Diese Variante der HTML Sitemap kommt ohne Datenbank LIMIT und Blätterfunktion aus im Gegensatz zu phpSQLiteCMS HTML Sitemap mit Blätter Funktion.
Geeignet ist sie für kleinere Webseiten mit unter 50 Seiten.

Diese HTML Sitemap basiert auf der XML Sitemap die standartmäß im phpSQLiteCMS enthalten ist.

phpSQLiteCMS HTML Sitemap Einrichten

Im folgenden die einzelnen Schritte um eine HTML Sitemap in phpSQLiteCMS einzurichten.

1. phpSQLiteCMS Datenbankabfrage und Ausgabe

Als erstes erstellen Sie im Ordner cms/page_types/ die Datei sitemap_html.php. Die Datei sitemap.php existriert schon für die XML Sitemap. Folgender Inhalt kommt in die sitemap_html.php:

sitemap_html.php

<?php
# Create in /cms/page_types sitemap_html.php
# Note: sitemap.php exists for the XML Sitemap
# With the following Code:

if(!defined('IN_PARSER')) exit;

$no_cache = true;

// fetch sites order by category/page
$sitemap_result = sqlite_query($db_content, "SELECT id, page, title, last_modified, description, category_1, category_2, category_3 FROM ".$db_settings['content_table']." WHERE include_sitemap ORDER BY category_1 ASC, category_2 ASC, category_3 ASC, page ASC");
if(sqlite_num_rows($sitemap_result)>0)
 {
  $i=0;
  while ($sitemap_data = sqlite_fetch_array($sitemap_result))
   {
    $sitemap[$i]['page'] = $sitemap_data['page'];
    $sitemap[$i]['title'] = $sitemap_data['title'];
    $sitemap[$i]['description'] = stripslashes($sitemap_data['description']);
    $sitemap[$i]['last_modified'] = strftime("%d.%m.%Y, %H:%M",$sitemap_data['last_modified']);
    $sitemap[$i]['category_1'] = $sitemap_data['category_1'];
    $sitemap[$i]['category_2'] = $sitemap_data['category_2'];
    $sitemap[$i]['category_3'] = $sitemap_data['category_3'];
    $i++;
   }
 }

// template
if(isset($sitemap)) $smarty->assign('sitemap', $sitemap);
$smarty->assign('subtemplate', 'sitemap.tpl.inc');
?>

2. phpSQLiteCMS Smarty Template

Als nächstes erstellen Sie im Ordner templates/subtemplates/ die Datei sitemap_html.tpl.inc. In dieser Datei erfolgt die eigentliche Ausgabe und Formatierung der Sitemap mit Smarty, HTML und CSS. Folgender Inhalt kommt in die sitemap_html.tpl.inc:

sitemap_html.tpl.inc

{* Create in /templates/subtemplate sitemap_html.tpl.inc *}
{* With the following Code: *}
{if $sitemap}
<ul>
{section name=ul start=0 step=1 loop=$sitemap}
<li>
{if $sitemap[ul].page}
<a class="bold" href="{$BASE_URL}{$sitemap[ul].page}" title="{$sitemap[ul].title}">&lt;{$BASE_URL}{$sitemap[ul].page}&gt;</a>
<ul class="disc">
{section name=li start=$smarty.section.ul.index loop=$smarty.section.ul.index+1}
<li><a class="black" href="{$BASE_URL}{$sitemap[li].page}" title="{if $sitemap[li].description}{$sitemap[li].description}{/if}">{if $sitemap[li].description}{$sitemap[li].description}{else}{$sitemap[li].title}{/if}</a></li>
<li><a class="black" href="{$BASE_URL}{$sitemap[li].page}" title="{$sitemap[li].title} - Zuletzt ge&auml;ndert am {$sitemap[li].last_modified}">Zuletzt ge&auml;ndert am {$sitemap[li].last_modified}</li>
{if $sitemap[li].category_1}
<li><a class="black" href="{$BASE_URL}{$sitemap[li].page}" title="{$sitemap[li].title}">Kategorie</a> <a href="{$BASE_URL}{$sitemap[li].category_1}" title="Kategorie - {$sitemap[li].category_1}">{$sitemap[li].category_1}</a>{if $sitemap[li].category_2}/<a href="{$BASE_URL}{$sitemap[li].category_1};{$sitemap[li].category_2}" title="Kategorie - {$sitemap[li].category_1} - {$sitemap[li].category_2}">{$sitemap[li].category_2}</a>{/if}{if $sitemap[li].category_3}/<a href="{$BASE_URL}{$sitemap[li].category_1};{$sitemap[li].category_2};{$sitemap[li].category_3}" title="Kategorie - {$sitemap[li].category_1} - {$sitemap[li].category_2} - {$sitemap[li].category_3}">{$sitemap[li].category_3}</a>{/if}</li>
{/if}
{/section}
</ul>
{/if}
</li>
{/section}
</ul>
{/if}

3. phpSQLiteCMS page_type

Nun fügen Sie das neue Template in die pages_types.conf.php ein, um die HTML Sitemap unter Seite Bearbeiten im Reiter Eigenschaften unter Typ einbinden zu können. Die Datei liegt im Ordner cms/config/. Folgenden Inhalt fügen Sie hinzu:

page_types.conf.php

# Add to /cms/config/page_types.conf.php the following lines:
$page_types['sitemap_html'] = array(
'page_type' => 'sitemap_html.php',
'page_type_label' => 'page_type_sitemap_html',
'requires_parameter' => false
);

Zum Schluß legen Sie eine neue Seite im phpSQLiteCMS an und wählen unter Eigenschaften unter Typ page_type_sitemap_html aus.

Ein Beispiel der Ausgabe findet Sie unter <http://gedit.net/SITEMAP>__ allerdings sind hier die Einträ_ge per Seite begrenzt wie beschrieben in phpSQLiteCMS HTML Sitemap mit Blätter Funktion.

Links und Quellen

Kommentare

Auch wenn im Augenblick etwa mit der Formatierung dieser Seite nicht stimmt: Der Beitrag selbst ist durchaus interessant

Paul, Sonntag, 12. September 2010, 19:02

Kommentar schreiben

  • (optional, Email Adresse wird nicht angezeigt)