phpSQLiteCMS HTML Sitemap Smarty Template mit Blätter Funktion
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.
Im Gegensatz zur phpSQLiteCMS HTML Sitemap ohne Blä_tter Funktion kö_nnen die Unterseiten unbegrenzt sein_ die Sitemap wird gecached und die Unterseiten die per Seite mit der Blä_tter Funktion angezeigt werden lassen sich beliebig einstellen.
Diese HTML Sitemap basiert auf der XML Sitemap die standartmäß im phpSQLiteCMS enthalten ist.
phpSQLiteCMS HTML Sitemap Einrichten
- phpSQLiteCMS Datenbankabfrage und Ausgabe
- phpSQLiteCMS Smarty Template
- phpSQLiteCMS page_type einrichten
- phpSQLiteCMS sitemaplinks_per_page
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;
// count items and get how many sitemaplinks per page
$count_result = @sqlite_query($db_content,"SELECT COUNT(*) FROM ".$db_settings['content_table']." WHERE include_sitemap");
list($item_count) = sqlite_fetch_array($count_result);
$item_pages = ceil($item_count / $settings['sitemaplinks_per_page']);
if(isset($_GET['get_1'])) $browse_page = intval($_GET['get_1']); else $browse_page = 1;
if($browse_page<1) $browse_page = 1;
if($browse_page>$item_pages) $browse_page = $item_pages;
// fetch sites sort by category
$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 LIMIT ".(($browse_page-1)*$settings['sitemaplinks_per_page']).", ".$settings['sitemaplinks_per_page']) or db_error();
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++;
}
}
// split output
$browse_array[] = 1;
if ($browse_page > 5) $browse_array[] = 0;
for($browse_page_x=$browse_page-3; $browse_page_x<$browse_page+4; $browse_page_x++)
{
if ($browse_page_x > 1 && $browse_page_x < $item_pages) $browse_array[] = $browse_page_x;
}
if ($browse_page < $item_pages-4) $browse_array[] = 0;
if ($item_pages > 1) $browse_array[] = $item_pages;
if($browse_page < $item_pages) $next_page = $browse_page + 1; else $next_page = 0;
if($browse_page > 1) $previous_page = $browse_page - 1; else $previous_page = 0;
$smarty->assign('browse_data',array($item_count, 0, $browse_page, $item_pages, $previous_page, $next_page, $settings['notes_per_page'], $browse_array));
// template
if(isset($sitemap)) $smarty->assign('sitemap', $sitemap);
$smarty->assign('Smarty Template', 'sitemap.tpl.inc');
// caching
$new_cache_file = $page;
if($browse_page > 1) $new_cache_file .= ','.$browse_page;
$new_cache_file .= '.cache';
?>
2. phpSQLiteCMS Smarty Template
Als nächstes erstellen Sie im Ordner templates/Smarty Templates/ 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/Smarty Template 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}"><{$BASE_URL}{$sitemap[ul].page}></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ändert am {$sitemap[li].last_modified}">Zuletzt geä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 $browse_data[0] > $browse_data[6]}
<!-- start page limit nav -->
<ul class="pnnav">
{if $browse_data[4]!=0}
<li><a href="{$page}{if $browse_data[4]>1},{$browse_data[4]}{/if}" title="{$page} - Vorherige Seite">Vorherige Seite</a></li>
{else}
<li><a href="{$page},{$browse_data[3]}" title="{$page} - Letzte Seite">Letzte Seite</a></li>
{/if}
{section name=x loop=$browse_data[7]}
{if $browse_data[7][x]==$browse_data[2]}
<li>{$browse_data[7][x]}</li>
{elseif $browse_data[7][x]==0}
<li>..</li>
{else}
<li><a href="{$page}{if $browse_data[7][x]>1},{$browse_data[7][x]}{/if}" title="{$page} - Seite {$browse_data[7][x]}">{$browse_data[7][x]}</a></li>
{/if}
{/section}
{if $browse_data[5]!=0}
<li><a href="{$page},{$browse_data[5]}" title="{$page} - Nächste Seite">Nächste Seite</a></li>
{else}
<li><a href="{$page}" title="{$page} - Erste Seite">Erste Seite</a></li>
{/if}
</ul>
<!-- end page limit nav -->
{/if}
{/if}
3. phpSQLiteCMS page_type
Nun fügen Sie noch 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
);
4. phpSQLiteCMS sitemaplinks_per_page
Um zu bestimmen wieviele Unterseiten per Seite bei der Blätter Funktion angezeigt werden, legen Sie im Admin-Menü unter Einstellungen, Erweiterte Einstellungen, Neue Einstellungs-Variable hinzufügen: die Variable sitemaplinks_per_page mit einem Wert von zum Beispiel 20 an.
Zum Schluß nun einfach eine neue Seite im phpSQLiteCMS anlegen und bei Eigenschaften unter Typ page_type_sitemap_html auswählen.
Ein Beispiel der Ausgabe finden Sie unter <http://gedit.net/SITEMAP>.
Links und Quellen
- Andere Artikel: phpSQLiteCMS HTML Sitemap ohne Blätter Funktion
- phpSQLiteCMS - <http://phpsqlitecms.net/>
- PHP - <http://www.php.net/>
- SQLite - <http://www.sqlite.org/>
- Smarty - <http://www.smarty.net/>
Kommentare
Hi Eitrix,Can i ask some things ?Yours posts is aaywls useful , help me every time, but here.. i am a little loose.Where put these modification ?On sugar developper blog, a nice post about ajax message box .. and then i can imagine a ehancement but how implement it on a module ? Where put modification ?For me, i have not still understand these RegardsAccount
Alessandra, Mittwoch, 16. Mai 2012, 22:41
Hello wbetise owner! I found your wbetise on Google and as a Search engine optimizer I have a tip for you that I think you will find very useful. There's a WordPress download that automatically does SEO for your page for higher rankings, it's a 1-click setup that's not expensive at all and will help you make more money and drive more visitors to your blog. Click my username to take a look. Thanks for reading.
Ramon, Samstag, 19. Mai 2012, 07:17
Hello wesitbe owner! I found your wesitbe using Google and as a Search engine optimizer I have an offer for you that I think you will find very useful. There's a WordPress download that automatically does SEO for your site for better rankings, it's a 1-click setup that's not expensive at all and will help you make more money and drive more visitors to your blog. Click my username to take a look. Thanks for reading.
Cecy, Samstag, 19. Mai 2012, 07:57
Kommentar schreiben