]> git.mjollnir.org Git - s9y.git/commitdiff
Bulletproof
authorgarvinhicking <garvinhicking>
Sat, 25 Aug 2007 12:07:56 +0000 (12:07 +0000)
committergarvinhicking <garvinhicking>
Sat, 25 Aug 2007 12:07:56 +0000 (12:07 +0000)
96 files changed:
docs/NEWS
serendipity_config.inc.php
templates/bulletproof/UTF-8/lang_de.inc.php [new file with mode: 0644]
templates/bulletproof/UTF-8/lang_en.inc.php [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_adminframe.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_banner.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_banner_fluid.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_default.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_default_a.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_default_h.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_frontpage.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_frontpage_a.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_frontpage_h.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_logout.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_logout_a.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_logout_h.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_personal.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_personal_a.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_personal_h.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_weblog.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_weblog_a.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_button_weblog_h.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_footer.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_infopane.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_infopane_fluid.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_prettybutton.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_admin.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_appearance.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_body.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_default.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_entries.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_foot.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_further.png [new file with mode: 0644]
templates/bulletproof/admin/img/bp_admin_sidebar_media.png [new file with mode: 0644]
templates/bulletproof/admin/style.css [new file with mode: 0644]
templates/bulletproof/admin/style_fluid.css [new file with mode: 0644]
templates/bulletproof/base.css [new file with mode: 0644]
templates/bulletproof/blank_style.css [new file with mode: 0644]
templates/bulletproof/blue_style.css [new file with mode: 0644]
templates/bulletproof/commentform.tpl [new file with mode: 0644]
templates/bulletproof/commentpopup.tpl [new file with mode: 0644]
templates/bulletproof/comments.tpl [new file with mode: 0644]
templates/bulletproof/config.inc.php [new file with mode: 0644]
templates/bulletproof/content.tpl [new file with mode: 0644]
templates/bulletproof/entries.tpl [new file with mode: 0644]
templates/bulletproof/entries_archives.tpl [new file with mode: 0644]
templates/bulletproof/entries_summary.tpl [new file with mode: 0644]
templates/bulletproof/green_style.css [new file with mode: 0644]
templates/bulletproof/ie6.css [new file with mode: 0644]
templates/bulletproof/ie7.css [new file with mode: 0644]
templates/bulletproof/img/back.png [new file with mode: 0644]
templates/bulletproof/img/blank.png [new file with mode: 0644]
templates/bulletproof/img/blank_back.png [new file with mode: 0644]
templates/bulletproof/img/blank_forward.png [new file with mode: 0644]
templates/bulletproof/img/blank_graph_bar.png [new file with mode: 0644]
templates/bulletproof/img/blue_back.png [new file with mode: 0644]
templates/bulletproof/img/blue_forward.png [new file with mode: 0644]
templates/bulletproof/img/blue_graph_bar.png [new file with mode: 0644]
templates/bulletproof/img/blue_header.jpg [new file with mode: 0644]
templates/bulletproof/img/blue_xml.png [new file with mode: 0644]
templates/bulletproof/img/bulletproof_button.png [new file with mode: 0644]
templates/bulletproof/img/forward.png [new file with mode: 0644]
templates/bulletproof/img/graph_bar_horisontal.png [new file with mode: 0644]
templates/bulletproof/img/green_back.png [new file with mode: 0644]
templates/bulletproof/img/green_closequote.png [new file with mode: 0644]
templates/bulletproof/img/green_forward.png [new file with mode: 0644]
templates/bulletproof/img/green_graph_bar.png [new file with mode: 0644]
templates/bulletproof/img/green_openquote.png [new file with mode: 0644]
templates/bulletproof/img/green_xml.png [new file with mode: 0644]
templates/bulletproof/img/purple_back.png [new file with mode: 0644]
templates/bulletproof/img/purple_body.jpg [new file with mode: 0644]
templates/bulletproof/img/purple_forward.png [new file with mode: 0644]
templates/bulletproof/img/purple_graph_bar.png [new file with mode: 0644]
templates/bulletproof/img/purple_header.jpg [new file with mode: 0644]
templates/bulletproof/img/purple_nav.png [new file with mode: 0644]
templates/bulletproof/img/purple_xml.png [new file with mode: 0644]
templates/bulletproof/img/quicksearch.png [new file with mode: 0644]
templates/bulletproof/img/s9y_banner_small.png [new file with mode: 0644]
templates/bulletproof/img/xml.gif [new file with mode: 0644]
templates/bulletproof/index.tpl [new file with mode: 0644]
templates/bulletproof/info.txt [new file with mode: 0644]
templates/bulletproof/js/p7_eqCols2_10.js [new file with mode: 0644]
templates/bulletproof/lang_de.inc.php [new file with mode: 0644]
templates/bulletproof/lang_en.inc.php [new file with mode: 0644]
templates/bulletproof/plugin_calendar.tpl [new file with mode: 0644]
templates/bulletproof/plugin_contactform.tpl [new file with mode: 0644]
templates/bulletproof/plugin_dynamicform.tpl [new file with mode: 0644]
templates/bulletproof/plugin_staticpage.tpl [new file with mode: 0644]
templates/bulletproof/plugin_staticpage_aboutpage.tpl [new file with mode: 0644]
templates/bulletproof/plugin_staticpage_searchresults.tpl [new file with mode: 0644]
templates/bulletproof/preview.png [new file with mode: 0644]
templates/bulletproof/preview_fullsize.jpg [new file with mode: 0644]
templates/bulletproof/preview_iframe.tpl [new file with mode: 0644]
templates/bulletproof/purple_style.css [new file with mode: 0644]
templates/bulletproof/sidebar.tpl [new file with mode: 0644]
templates/bulletproof/style.css [new file with mode: 0644]

index 6e49a28438562688c55a0b9bc56e16ad23f58f8e..21ee616167c10711e95548bf569b3e408d029662 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -1,8 +1,9 @@
 # $Id$
 
-Version 1.2 ()
+Version 1.2 (August 26th, 2007)
 ------------------------------------------------------------------------
 
+    * Added bulletproof template by http://s9y-bulletproof.com
     * (beta4) Fix comment-RSS feeds
     
     * (beta4) serendipity_plugin_comments now also supports Favatars in 
index 755c28fe1f9c0fa5aefac87abc746b174ad8b4d8..8f4a83a53427e6762ed612fb6a76415d4a6d3937 100644 (file)
@@ -41,7 +41,7 @@ if (defined('USE_MEMSNAP')) {
 }
 
 // The version string
-$serendipity['version']         = '1.2-beta5';
+$serendipity['version']         = '1.2';
 
 // Setting this to 'false' will enable debugging output. All alpa/beta/cvs snapshot versions will emit debug information by default. To increase the debug level (to enable Smarty debugging), set this flag to 'debug'.
 $serendipity['production']      = (preg_match('@\-(alpha|beta|cvs)@', $serendipity['version']) ? false : true);
diff --git a/templates/bulletproof/UTF-8/lang_de.inc.php b/templates/bulletproof/UTF-8/lang_de.inc.php
new file mode 100644 (file)
index 0000000..befdc27
--- /dev/null
@@ -0,0 +1,65 @@
+<?php\r
+// Colorsets\r
+@define('THEME_COLORSET', 'Farbwahl');\r
+@define('BP_COLORSET_DEF', 'Leer');\r
+@define('BP_COLORSET_OPT1', 'Violett');\r
+@define('BP_COLORSET_OPT2', 'Blau');\r
+@define('BP_COLORSET_OPT3', 'Grün');\r
+// Layout\r
+@define('LAYOUT_TYPE','Layout des Blogs (B = Blogeinträge, S = Seitenleiste, CF = Content first)');\r
+@define('LAYOUT_SBS','Dreispaltig S-B-S');\r
+@define('LAYOUT_BSS','Dreispaltig, B-S-S, CF');\r
+@define('LAYOUT_SSB','Dreispaltig, S-S-B');\r
+@define('LAYOUT_SB','Zweispaltig, Seitenleiste links');\r
+@define('LAYOUT_BS','Zweispaltig, Seitenleiste rechts, CF');\r
+@define('LAYOUT_SC','Einspaltig, Seitenleiste(n) unten, CF');\r
+@define('JAVASCRIPT_COLUMNS','Gleich lange Spalten Ã¼ber Javascript erzeugen (Kann den Seitenaufbau verzögern.)');\r
+// Custom header\r
+@define('BP_CUSTOM_HEADER','Eigene Header-Grafik aus der Mediendatenbank verwenden');\r
+@define('BP_HEADER_IMAGE','Auswahl der Header-Grafik');\r
+@define('BP_HEADER_TYPE','Kachelung der Header-Grafik');\r
+@define('BP_HEADER_BANNER', 'Banner (nicht gekachelt)');\r
+@define('BP_HEADER_HTILED', 'Horizontal gekachelt');\r
+@define('BP_HEADER_VTILED', 'Vertikal gekachelt');\r
+@define('BP_HEADER_BTILED', 'Horizontal und vertikal gekachelt');\r
+@define('BP_HEADER_POSHOR', 'Horizontale Ausrichtung');\r
+@define('BP_HEADER_POSVER', 'Vertikale Ausrichtung');\r
+@define('BP_CENTER', 'zentriert');\r
+@define('BP_TOP', 'oben');\r
+@define('BP_BOTTOM', 'unten');\r
+// Fahrner Image Replacement\r
+@define('FIR_BTITLE','Blogtitel im Header anzeigen');\r
+@define('FIR_BDESCR','Blogbeschreibung im Header anzeigen');\r
+// Entry footer\r
+@define('ENTRY_FOOTER_POS','Position des Eintragsfußes');\r
+@define('BELOW_ENTRY','Unter dem Eintrag');\r
+@define('BELOW_TITLE','Unter dem Titel des Eintrags');\r
+@define('SPLIT_FOOTER','Aufgeteilter Eintragsfuß');\r
+@define('FOOTER_AUTHOR','Verfasser im Eintragsfuß anzeigen');\r
+@define('FOOTER_CATEGORIES','Kategorie(n) im Eintragsfuß anzeigen');\r
+@define('FOOTER_TIMESTAMP','Zeitstempel im Eintragsfuß anzeigen');\r
+@define('FOOTER_COMMENTS','Anzahl der Kommentare im Eintragsfuß anzeigen');\r
+@define('FOOTER_TRACKBACKS','Anzahl der Trackbacks im Eintragsfuß anzeigen');\r
+// coComment support\r
+@define('COCOMMENT_ACTIVE','coComment (http://www.cocomment.com) in Kommentarformulare einbinden');\r
+// Counter code\r
+@define('COUNTER_CODE', 'Code für Counter und/oder Statistik-Tools einfügen');\r
+@define('USE_COUNTER', 'Oben eingegeben Counter-Code in das Blog einbinden');\r
+// Additional footer text\r
+@define('FOOTER_TEXT', 'Hier zusätzlichen Text, der im Seitenfuss erscheinen soll, einfügen.');\r
+@define('USE_FOOTER_TEXT', 'Oben eingegebenen Text einbinden');\r
+//Sitenav\r
+@define('SITENAV_POSITION','Darstellung der Navigationsleiste');\r
+@define('SITENAV_NONE','Keine Navigationsleiste');\r
+@define('SITENAV_ABOVE','Über dem Kopfbereich');\r
+@define('SITENAV_BELOW','Unter dem Kopfbereich');\r
+@define('SITENAV_LEFT','Oben in der linken Seitenleiste');\r
+@define('SITENAV_RIGHT','Oben in der rechten Seitenleiste');\r
+@define('SITENAV_FOOTER','Links der Navigationleiste zusätzlich im Seitenfuss anzeigen (werden nicht angezeigt, wenn oben "Keine Navigationsleiste" ausgewählt wurde)');\r
+@define('SITENAV_QUICKSEARCH','Suchfeld in der Navigationsleiste anzeigen (funktioniert nur, wenn Navigationsleiste Ã¼ber oder unter dem Kopfbereich; Anzeige des entsprechenden Seitenleistenplugins wird automatisch unterdrückt)');\r
+@define('SITENAV_TITLE','Titel des Navigations-Menüs (nur bei Anzeige in der Seitenleiste');\r
+@define('SITENAV_TITLE_TEXT','Hauptmenü');\r
+@define('NAVLINK_AMOUNT', 'Anzahl der Links in der Navigationsleiste (Styles verwalten-Seite muss danach neu geladen werden)');\r
+@define('NAV_LINK_TEXT', 'Text des Navigationsleisten-Links');\r
+@define('NAV_LINK_URL', 'URL des Navigationsleisten-Links');\r
+?>
\ No newline at end of file
diff --git a/templates/bulletproof/UTF-8/lang_en.inc.php b/templates/bulletproof/UTF-8/lang_en.inc.php
new file mode 100644 (file)
index 0000000..44af674
--- /dev/null
@@ -0,0 +1,67 @@
+<?php\r
+// Colorsets\r
+@define('THEME_COLORSET', 'Colorset');\r
+@define('BP_COLORSET_DEF', 'Blank');\r
+@define('BP_COLORSET_OPT1', 'Purple');\r
+@define('BP_COLORSET_OPT2', 'Blue');\r
+@define('BP_COLORSET_OPT3', 'Green');\r
+// Layout\r
+@define('LAYOUT_TYPE','Blog layout (B = Blog entriee, S = Sidebar, CF = Content first)');\r
+@define('LAYOUT_SBS','Three columns S-B-S');\r
+@define('LAYOUT_BSS','Three columns, B-S-S, CF');\r
+@define('LAYOUT_SSB','Three columns, S-S-B');\r
+@define('LAYOUT_SB','Two columns, S-B');\r
+@define('LAYOUT_BS','Two columns, B-S, CF');\r
+@define('LAYOUT_SC','One column, sidebars below, CF');\r
+@define('JAVASCRIPT_COLUMNS','Generate equal heights columns using javascript (May slow down page rendering a little.)');\r
+// Custom header\r
+@define('BP_CUSTOM_HEADER','Custom header image from media database');\r
+@define('BP_HEADER_IMAGE','Choose image');\r
+@define('BP_HEADER_TYPE','Tiling of header image');\r
+@define('BP_HEADER_BANNER', 'Banner (no tiling)');\r
+@define('BP_HEADER_HTILED', 'Horizontally tiled');\r
+@define('BP_HEADER_VTILED', 'Vertically tiled');\r
+@define('BP_HEADER_BTILED', 'Tiles horizontally and vertically');\r
+@define('BP_HEADER_POSHOR', 'Horizontal alignment');\r
+@define('BP_HEADER_POSVER', 'Vertical alignment');\r
+@define('BP_CENTER', 'centered');\r
+@define('BP_TOP', 'top');\r
+@define('BP_BOTTOM', 'bottom');\r
+// Fahrner Image Replacement\r
+@define('FIR_BTITLE','Show blog title in the header');\r
+@define('FIR_BDESCR','Show blog description in the header');\r
+// Date format\r
+@define('BP_DATE_FORMAT', 'Date format');\r
+// Entry footer\r
+@define('ENTRY_FOOTER_POS','Position of the entry footer');\r
+@define('BELOW_ENTRY','Below the entry');\r
+@define('BELOW_TITLE','Below the entry title');\r
+@define('SPLIT_FOOTER','Split entry footer');\r
+@define('FOOTER_AUTHOR','Show author in the entry footer');\r
+@define('FOOTER_CATEGORIES','Show categories in the entry footer');\r
+@define('FOOTER_TIMESTAMP','Show timestamp in the entry footer');\r
+@define('FOOTER_COMMENTS','Show number of comments in the entry footer');\r
+@define('FOOTER_TRACKBACKS','Show number of trackback in the entry footer');\r
+// coComment support\r
+@define('COCOMMENT_ACTIVE','Integrate coComment (http://www.cocomment.com) into comment form');\r
+// Counter code\r
+@define('COUNTER_CODE', 'Insert code for counter and/or web stat tool');\r
+@define('USE_COUNTER', 'Choose whether to use counter code inserted above');\r
+// Additional footer text\r
+@define('FOOTER_TEXT', 'Use this to insert additional text into the page footer');\r
+@define('USE_FOOTER_TEXT', 'Integrate footer text');\r
+//Sitenav\r
+@define('SITENAV_POSITION','Position of the navbar');\r
+@define('SITENAV_NONE','No navbar');\r
+@define('SITENAV_ABOVE','Above the banner');\r
+@define('SITENAV_BELOW','Below the banner');\r
+@define('SITENAV_LEFT','At the top of the left sidebar');\r
+@define('SITENAV_RIGHT','At the top of the right sidebar');\r
+@define('SITENAV_FOOTER','Also show navigation links in the footer (not displayed regardless of choice if "No navbar" is selected above)');\r
+@define('SITENAV_QUICKSEARCH','Show quicksearch in the navbar (only works in navbar above or below banner; quicksearch sidebar item will be suppressed automagically)');\r
+@define('SITENAV_TITLE','Title for navigation menu (only displayed when located at the top of a sidebar)');\r
+@define('SITENAV_TITLE_TEXT','Main menu');\r
+@define('NAVLINK_AMOUNT', 'Enter number of links in the navbar (needs reload of the Manage Styles page)');\r
+@define('NAV_LINK_TEXT', 'Enter the navbar link text');\r
+@define('NAV_LINK_URL', 'Enter the full URL of your link');\r
+?>
\ No newline at end of file
diff --git a/templates/bulletproof/admin/img/bp_admin_adminframe.png b/templates/bulletproof/admin/img/bp_admin_adminframe.png
new file mode 100644 (file)
index 0000000..83185cb
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_adminframe.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_banner.png b/templates/bulletproof/admin/img/bp_admin_banner.png
new file mode 100644 (file)
index 0000000..7c5c594
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_banner.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_banner_fluid.png b/templates/bulletproof/admin/img/bp_admin_banner_fluid.png
new file mode 100644 (file)
index 0000000..445fa80
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_banner_fluid.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_default.png b/templates/bulletproof/admin/img/bp_admin_button_default.png
new file mode 100644 (file)
index 0000000..de89db8
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_default.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_default_a.png b/templates/bulletproof/admin/img/bp_admin_button_default_a.png
new file mode 100644 (file)
index 0000000..5e41279
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_default_a.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_default_h.png b/templates/bulletproof/admin/img/bp_admin_button_default_h.png
new file mode 100644 (file)
index 0000000..6a6d765
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_default_h.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_frontpage.png b/templates/bulletproof/admin/img/bp_admin_button_frontpage.png
new file mode 100644 (file)
index 0000000..e697e5a
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_frontpage.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_frontpage_a.png b/templates/bulletproof/admin/img/bp_admin_button_frontpage_a.png
new file mode 100644 (file)
index 0000000..295c8bc
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_frontpage_a.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_frontpage_h.png b/templates/bulletproof/admin/img/bp_admin_button_frontpage_h.png
new file mode 100644 (file)
index 0000000..f2378d7
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_frontpage_h.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_logout.png b/templates/bulletproof/admin/img/bp_admin_button_logout.png
new file mode 100644 (file)
index 0000000..aef481e
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_logout.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_logout_a.png b/templates/bulletproof/admin/img/bp_admin_button_logout_a.png
new file mode 100644 (file)
index 0000000..f8968c7
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_logout_a.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_logout_h.png b/templates/bulletproof/admin/img/bp_admin_button_logout_h.png
new file mode 100644 (file)
index 0000000..ef3d8a3
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_logout_h.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_personal.png b/templates/bulletproof/admin/img/bp_admin_button_personal.png
new file mode 100644 (file)
index 0000000..1329690
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_personal.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_personal_a.png b/templates/bulletproof/admin/img/bp_admin_button_personal_a.png
new file mode 100644 (file)
index 0000000..ad2b5b3
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_personal_a.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_personal_h.png b/templates/bulletproof/admin/img/bp_admin_button_personal_h.png
new file mode 100644 (file)
index 0000000..11747a3
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_personal_h.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_weblog.png b/templates/bulletproof/admin/img/bp_admin_button_weblog.png
new file mode 100644 (file)
index 0000000..3892e22
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_weblog.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_weblog_a.png b/templates/bulletproof/admin/img/bp_admin_button_weblog_a.png
new file mode 100644 (file)
index 0000000..d383d70
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_weblog_a.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_button_weblog_h.png b/templates/bulletproof/admin/img/bp_admin_button_weblog_h.png
new file mode 100644 (file)
index 0000000..ffa63a7
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_button_weblog_h.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_footer.png b/templates/bulletproof/admin/img/bp_admin_footer.png
new file mode 100644 (file)
index 0000000..254b548
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_footer.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_infopane.png b/templates/bulletproof/admin/img/bp_admin_infopane.png
new file mode 100644 (file)
index 0000000..6670ae8
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_infopane.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_infopane_fluid.png b/templates/bulletproof/admin/img/bp_admin_infopane_fluid.png
new file mode 100644 (file)
index 0000000..cf9d91b
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_infopane_fluid.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_prettybutton.png b/templates/bulletproof/admin/img/bp_admin_prettybutton.png
new file mode 100644 (file)
index 0000000..e341afd
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_prettybutton.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_admin.png b/templates/bulletproof/admin/img/bp_admin_sidebar_admin.png
new file mode 100644 (file)
index 0000000..7be5ff8
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_admin.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_appearance.png b/templates/bulletproof/admin/img/bp_admin_sidebar_appearance.png
new file mode 100644 (file)
index 0000000..56f59db
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_appearance.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_body.png b/templates/bulletproof/admin/img/bp_admin_sidebar_body.png
new file mode 100644 (file)
index 0000000..548cfcb
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_body.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_default.png b/templates/bulletproof/admin/img/bp_admin_sidebar_default.png
new file mode 100644 (file)
index 0000000..7ddc124
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_default.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_entries.png b/templates/bulletproof/admin/img/bp_admin_sidebar_entries.png
new file mode 100644 (file)
index 0000000..d07c44d
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_entries.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_foot.png b/templates/bulletproof/admin/img/bp_admin_sidebar_foot.png
new file mode 100644 (file)
index 0000000..831ddee
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_foot.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_further.png b/templates/bulletproof/admin/img/bp_admin_sidebar_further.png
new file mode 100644 (file)
index 0000000..3d99f25
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_further.png differ
diff --git a/templates/bulletproof/admin/img/bp_admin_sidebar_media.png b/templates/bulletproof/admin/img/bp_admin_sidebar_media.png
new file mode 100644 (file)
index 0000000..d090b31
Binary files /dev/null and b/templates/bulletproof/admin/img/bp_admin_sidebar_media.png differ
diff --git a/templates/bulletproof/admin/style.css b/templates/bulletproof/admin/style.css
new file mode 100644 (file)
index 0000000..f5077c0
--- /dev/null
@@ -0,0 +1,544 @@
+/**********************************************************************/
+/* Template: Bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the Bulletproof admin interface by Don Chambers     */
+/* Fixed width design                                                 */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+body {
+    font: 100.01% Verdana, Arial, Helvetica, sans-serif;
+    margin: 0;
+    text-align: center;
+    background: #888888;
+    direction: {LANG_DIRECTION};
+}
+
+/* body ID */
+/* styles to this ID or body would have the same effect */
+#serendipity_admin_page { 
+}
+
+/* these are a default for headings not styled more specifically through an additional class */
+h1 {font-size: 170%;}
+h2 {font-size: 150%;}
+h3 {font-size: 140%;}
+h4 {font-size: 125%;}
+
+/* all links except those specifically overridden by other class or id further down*/
+a:link, a:visited, a:active {
+   text-decoration: none;
+   color: #055BC6;
+}
+
+a:hover {
+    text-decoration: none;
+    color: #FF6600;
+}
+
+/* approximately equal to frontend #wrapper but does not include footer         */
+#serendipityAdminFrame {
+    text-align: left;
+    margin: 0px auto;
+    border: 0;
+    width: 970px;
+    background: #ffffff url('{TEMPLATE_PATH}img/bp_admin_adminframe.png') top left repeat-y;
+}
+
+/* container is a table, so font must be set on tbody to affect td's */
+/* this font size affects everything except #footer                  */
+#serendipityAdminFrame tbody {
+    font-size: 80%;
+}
+
+/* equal to frontend #serendipity_banner */
+#serendipityAdminBanner {
+    color: #ffffff;
+    background: #5792D8 url('{TEMPLATE_PATH}img/bp_admin_banner.png') top left no-repeat;
+    height: 105px;
+    padding: 0;
+    line-height: 0.7em;
+}
+
+/* First line in banner, ie 'Serendipity Administration Suite' */
+#serendipityAdminBanner h1 {
+    font-weight: bold;
+    padding: 0;
+    margin: 12px 0 0 15px;
+}
+
+/* Second line in banner, ie blog name */ 
+#serendipityAdminBanner h2 {
+    font-weight: normal;
+    padding: 0;
+    margin-left: 15px;
+}
+
+/* approximately equal to BP frontend #sitenav when located below header */
+#serendipityAdminInfopane {
+    background: #CCCCCC url('{TEMPLATE_PATH}img/bp_admin_infopane.png') top left no-repeat;
+    text-align: right;
+    font-size: 75%;
+    line-height: 70%;
+    height: 24px;
+    color: #055BC6;
+    padding:0 10px 0 0;
+}
+
+/* approximately equal to frontend #content */
+.serendipityAdminContent {
+    padding: 3px 8px 0 8px;
+    text-align: left;
+}
+
+/* all content identified as a span, notably config descriptions */
+/* !important required to override in-line styles                */
+.serendipityAdminContent span{
+    color: #055BC6 !important;
+}
+
+/* welcome message on sign-on screen, ie */
+/* 'welcome to serendipity admin suite'  */
+/* 'please enter your credentials'       */
+#serendipityAdminWelcome{
+    color: #055BC6;
+}
+
+/* 'back to blog' link in bottom left of sign-on screen */
+#serendipityBackToBlog {
+    padding: 0 0 10px 10px;
+}
+/* welcome back text displayed after successfully logging in */
+.serendipityWelcomeBack {
+    color: #055BC6;
+    margin: 0;
+}
+
+/***** SIDEBAR STYLES *****/
+
+/* s9y v1.2 class between top and bottom menu blocks */
+/* display: none prevents excess space (<br />) from */
+/* appearing between these 2 menu blocks and the     */
+/* menu blocks in between                            */
+.serendipitySideBarMenuSpacer {
+    display: none;
+}
+
+/* Equal to frontend sidebar - positioned left due to table structure */
+#serendipitySideBar {
+    width: 208px;
+    padding: 3px 0 0 0;
+}
+
+/* style certain elements of admin frontpage navigation blocks the same      */
+.further_links,
+/* serendipitySideBarMenu is a combination of sidebaritem and sidebarcontent */
+/* actual width will be sidebar width less side margins and side borders     */
+ul.serendipitySideBarMenu {
+    list-style: none;
+    overflow: hidden; 
+    background: #EEEEEE url('{TEMPLATE_PATH}img/bp_admin_sidebar_body.png') repeat-y;
+    padding: 0;
+    width: 200px;
+    margin: 0 0 2px 8px;
+}
+
+/* just the further links container */
+.further_links {
+/* for width equal to left sidebar links, set width equal to sidebar less */
+/* serendipitySideBarMenu left & right margins plus L&R borders.          */
+/* Width does not need to be uniquely defined if ul.serentipitySideBarMenu*/
+/* has no borders or L&R padding                                          */
+    float: right;
+}
+
+/* navigation within the container of further_links */
+.further_links ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+/* all <li>s -  serendipitySideBarMenuHead then needs to be styled separately    */
+/* this can change when all plugins have been updated to include s9y ver.1.2     */
+/* class of serendipitySideBarMenuLink which applies only to navigational links  */
+/* just as serendipitySideBarMenuHead only applies to the title even though both */
+/* are <li>s. */
+/* Update: All plugins HAVE been modified to include class serendipitySideBarLink*/
+/* The method below, however, works for users not using the most recent plugins. */
+.further_links li,
+.serendipitySideBarMenu li{
+    line-height: 105%
+}
+
+.further_links li a,
+.serendipitySideBarMenu li a {
+    font-size: 90%;
+    padding-left: 5px;
+}
+
+/* these are the titles for each menu block */
+.further_links .further_links_head,
+li.serendipitySideBarMenuHead {
+/* this background is a default in the event additional menu blocks are added in the future, but not presently defined */
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_default.png') no-repeat;
+    font-weight: bold;
+    font-size: 100%;
+    color: #30303f;
+    height: 30px;
+    padding: 0 0 0 5px;
+    line-height: 28px;
+    margin: 0 0 5px 0;
+    overflow: hidden;
+}
+
+/* unique graphics for the middle 4 menu blocks and further_links */
+ul.serendipitySideBarMenuEntry .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_entries.png') no-repeat;
+}
+ul.serendipitySideBarMenuMedia .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_media.png') no-repeat;
+}
+ul.serendipitySideBarMenuAppearance .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_appearance.png') no-repeat;
+}
+ul.serendipitySideBarMenuUserManagement .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_admin.png') no-repeat;
+}
+.further_links .further_links_head {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_further.png') no-repeat;
+}
+
+/* set background for all menu block footers including any added in the future, but not presently defined */
+.further_links .further_links_foot,
+ul.serendipitySideBarMenu .serendipitySideBarMenuFoot {
+background: #EEEEEE url('{TEMPLATE_PATH}img/bp_admin_sidebar_foot.png') no-repeat;
+    display: block !important;
+    height: 8px;
+    margin: 3px 0 0 0;
+    font-size: 0; /* ie6, otherwise item is too tall */
+}
+
+/* main links (top 2) and logout links (bottom 2) are styled to */
+/* look like buttons - each of which has a unique icon          */
+ul.serendipitySideBarMenuLogout,
+ul.serendipitySideBarMenuMain {
+    background: none;
+    margin-bottom: 0;
+    padding: 0;
+}
+
+ul.serendipitySideBarMenuLogout li,
+ul.serendipitySideBarMenuMain li {
+    margin-bottom: 3px;
+    overflow: hidden;
+}
+
+ul.serendipitySideBarMenuLogout li a,
+ul.serendipitySideBarMenuMain li a,
+ul.serendipitySideBarMenuLogout li a:hover,
+ul.serendipitySideBarMenuMain li a:hover{
+    font-size: 100%;
+    font-weight: bold;
+    margin: 0;
+    padding-left: 5px;
+    line-height: 28px;
+}
+
+ul.serendipitySideBarMenuMain a,
+ul.serendipitySideBarMenuLogout a{
+/* this background is a default in the event additional links are added in the future, but not presently defined */
+/* it is an orange button with a double blue arrow pointing right */
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_default.png') no-repeat;
+    display: block;
+    height: 33px;
+}
+
+/* default button hover and active states */
+ul.serendipitySideBarMenuMain a:hover,
+ul.serendipitySideBarMenuLogout a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_default_h.png') no-repeat;
+}
+
+ul.serendipitySideBarMenuMain a:active,
+ul.serendipitySideBarMenuLogout a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_default_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+/* unique images for each of the main and logout links - normal, hover and active states */
+li.serendipitySideBarMenuMainFrontpage a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_frontpage.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainFrontpage a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_frontpage_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainFrontpage a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_frontpage_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuMainPersonal a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_personal.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainPersonal a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_personal_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainPersonal a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_personal_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_weblog.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_weblog_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_weblog_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuLogoutLogout a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_logout.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutLogout a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_logout_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutLogout a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_logout_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+/* do not show MenuFoot for the button type links */
+ul.serendipitySideBarMenuLogout .serendipitySideBarMenuFoot,
+ul.serendipitySideBarMenuMain .serendipitySideBarMenuFoot {
+    display: none !important;
+}
+
+/***** END OF SIDEBAR STYLES *****/
+
+/* Admin items presented consecutively such as entries  */
+/* comments, users, groups, templates etc.              */
+/* first class common to both odd and even items        */
+.serendipity_admin_list_item {
+    border: 1px solid #72878A;
+    margin: 0 0 5px 0;
+}
+/* only the uneven/odd list items */
+.serendipity_admin_list_item_uneven {
+    background: #DFDFDF;
+}
+
+/* only the even list items */
+.serendipity_admin_list_item_even {
+    background: #EEEEEE;
+}
+
+/* admin messages reporting an error */
+.serendipityAdminMsgError {
+    text-align: center; 
+    font-weight: bold;
+    margin: 10px 0;
+    color: red;
+    font-size: 100%;
+}
+
+/* any message indicating no error */
+.serendipityAdminMsgSuccess {
+    text-align: center;
+    font-weight: bold;
+    margin: 10px 0; 
+    color: green;
+    font-size: 100%;
+}
+
+/* used in spartacus and plugin config*/
+.serendipityAdminMsgNotice,
+.serendipityAdminMsgNote {
+    text-align: center;
+    font-weight: bold;
+    margin: 10px 0;
+    color: blue;
+    font-size: 100%;
+}
+
+/* new input classes available in s9y v1.2 */
+.input_checkbox, .input_radio, .input_file, .input_textbox, .input_button, label, select, textarea{
+    font: 100% Verdana, Arial, Helvetica, sans-serif;
+}
+.input_textbox, select, textarea {
+    border: 1px solid #72878A;
+    background: #F8F9FA;
+}
+
+/* style for text of input buttons */
+/* new class of input_button also exists for all input buttons */
+input.serendipityPrettyButton,
+a.serendipityPrettyButton {
+    text-decoration: none;
+    font-weight: bold;
+    padding: 2px;
+    margin: 2px 2px 0px 2px;
+    color: #ffffff;
+    cursor: pointer;
+    background: #055BC6 url('{TEMPLATE_PATH}img/bp_admin_prettybutton.png') 0% 50%;
+    border: 1px solid #055BC6;
+    font-size: 90%;
+}
+
+/* make anchor version look more like the input version */
+a.serendipityPrettyButton {
+    padding: 3px;
+}
+
+/* entry preview window  */
+#serendipity_iframe {
+    border: 1px solid #72878A !important;
+    text-align: left !important;
+    margin: 0; }
+
+
+/* this exists exclusively in /templates/default/admin/media_items.tpl */
+.serendipityImageButton {
+    cursor: pointer; }
+
+/* icon links, such as edit, delete, reply, etc     */
+/* IconLink is used when icon is left of link text  */
+/* IconLinkRight is when icon is right of link text */
+/* Style approx the same except for margin settings */
+/* which provide separation between icon and text   */
+a:link.serendipityIconLink,
+a:visited.serendipityIconLink {
+    border: 0;
+    font-weight: bold;
+    text-decoration: none;
+    margin-right: 4px; }
+
+.serendipityIconLink img {
+    margin-right: 2px;
+    vertical-align: bottom;
+    border: 0; }
+
+a:link.serendipityIconLinkRight,
+a:visited.serendipityIconLinkRight {
+    border: 0;
+    font-weight: bold;
+    text-decoration: none;
+    margin-left: 4px; }
+
+.serendipityIconLinkRight img {
+    margin-left: 2px;
+    vertical-align: bottom;
+    border: 0; }
+
+/* this is not really implemented, but classes do exist in backend code */
+.direction_ltr {direction: ltr;}
+.direction_rtl {direction: rtl;}
+
+/*style for block that appears above list of available plugins available for installation */
+/* usually contains a filter dropdown box */ 
+.serendipity_pluginlist_header form{
+    border: 1px solid #72878A;
+    padding: 10px;
+    margin: 0 0 15px 0;
+    background: #EEEEEE;
+}
+
+/* style for block that appears above each type of plugin (Backend: User management, Frontend: Entry Related, etc)*/
+.serendipity_pluginlist_section {
+    margin:20px 0 20px 0;
+    padding:10px;
+    border:1px solid #72878A;
+    color:#505050;
+    line-height:1.5em;
+    background: #EEEEEE;
+}
+
+/* custom fields within Advanced Options for entries */
+#serendipity_customfields {
+    width: 100%; }
+
+#serendipity_customfields .customfield_name {
+    background-color: #FAFAFA;
+    width: 25%;
+    padding-left: 5px; }
+
+#serendipity_customfields .customfield_value {
+    background-color: #FFFFFF;
+    width: 75%;
+    padding: 0;
+}
+
+#serendipity_customfields .customfield_value textarea {
+    width: 100%;
+    height: 100px;
+    padding: 0;
+    margin:0; }
+
+/* left side window for choosing media to insert into entry */
+#serendipityAdminBodyImageSelectorTree {
+    width: auto;
+    font-size: 73%;
+}
+
+#serendipityAdminBodyImageSelectorTree tbody{
+    font-size: 80%;
+}
+
+/* right side window for choosing media to insert into entry */
+/* will default to body background if not specified */
+#serendipityAdminBodyImageSelector {
+    width: auto;
+    margin: 0px;
+    background: #FFFFFF;
+    font-size: 80%;
+}
+
+#serendipityAdminBodyImageSelector tbody{
+    font-size: 80%;
+}
+
+/* Manage Styles - template name in list of available templates */
+/* !important required to override inline style */
+span.serendipityTemplateSelectName {
+    color: #055BC6 !important;
+}
+
+/* New v1.2 class - a hover effect in the plugin list */
+.serendipity_PluginAdminHighlight {
+    background: #ededed;
+}
+
+/* Added class in s9y v1.2 */
+/* container between AdminFrame and AdminFooter */
+/* can be used to emulate a footer while allowing */
+/* "powered by" text to fall below everything else in the actual footer */
+.serendipityAdminFooterSpacer {
+    display: none;
+}
+
+/* Equal to frontend #footer but falls below of #serendipityAdminFrame wrapper */
+#serendipityAdminFooter {
+    border: 0;
+/*have to pick up some of the styles from wrapper so they apply to footer div below table*/
+    margin: 0 auto;
+    width: 970px;
+    background: #CCCCCC url('{TEMPLATE_PATH}img/bp_admin_footer.png') top left no-repeat; 
+    height: 35px; 
+    font-size: 70%;
+    line-height: 30px;
+    padding: 0;
+}
+
diff --git a/templates/bulletproof/admin/style_fluid.css b/templates/bulletproof/admin/style_fluid.css
new file mode 100644 (file)
index 0000000..ae904b2
--- /dev/null
@@ -0,0 +1,546 @@
+/**********************************************************************/
+/* Template: Bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the Bulletproof admin interface by Don Chambers     */
+/* Fluid width design                                                 */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+body {
+    font: 100.01% Verdana, Arial, Helvetica, sans-serif;
+    margin: 5px 0 0 0;
+    text-align: center;
+    background: #888888;
+    direction: {LANG_DIRECTION};
+}
+
+/* body ID */
+/* styles to this ID or body would have the same effect */
+#serendipity_admin_page { 
+}
+
+/* these are a default for headings not styled more specifically through an additional class */
+h1 {font-size: 170%;}
+h2 {font-size: 150%;}
+h3 {font-size: 140%;}
+h4 {font-size: 125%;}
+
+/* all links except those specifically overridden by other class or id further down*/
+a:link, a:visited, a:active {
+   text-decoration: none;
+   color: #055BC6;
+}
+
+a:hover {
+    text-decoration: none;
+    color: #FF6600;
+}
+
+/* approximately equal to frontend #wrapper but does not include footer         */
+#serendipityAdminFrame {
+    text-align: left;
+    margin: 0px auto;
+    border: 0;
+    width: 95%;
+    background: #ffffff;
+}
+
+/* container is a table, so font must be set on tbody to affect td's */
+/* this font size affects everything except #footer                  */
+#serendipityAdminFrame tbody {
+    font-size: 80%;
+}
+
+/* equal to frontend #serendipity_banner */
+#serendipityAdminBanner {
+    color: #ffffff;
+    background: #5792D8 url('{TEMPLATE_PATH}img/bp_admin_banner_fluid.png') top left repeat-x;
+    height: 94px;
+    border: 3px solid #ffffff;
+    padding: 0;
+    line-height: 0.7em;
+}
+
+/* First line in banner, ie 'Serendipity Administration Suite' */
+#serendipityAdminBanner h1 {
+    font-weight: bold;
+    padding: 0;
+    margin: 17px 0 0 5px;
+}
+
+/* Second line in banner, ie blog name */ 
+#serendipityAdminBanner h2 {
+    font-weight: normal;
+    padding: 0;
+    margin-left: 5px;
+}
+
+/* approximately equal to BP frontend #sitenav when located below header */
+#serendipityAdminInfopane {
+    background: #CCCCCC url('{TEMPLATE_PATH}img/bp_admin_infopane_fluid.png') top left repeat-x;
+    border-left: 3px solid #ffffff;
+    border-right: 3px solid #ffffff;
+    text-align: right;
+    font-size: 75%;
+    line-height: 70%;
+    height: 24px;
+    color: #055BC6;
+    padding:0;
+}
+
+/* approximately equal to frontend #content */
+.serendipityAdminContent {
+    padding: 3px 3px 0 8px;    
+    text-align: left;
+}
+
+/* all content identified as a span, notably config descriptions */
+/* !important required to override in-line styles                */
+.serendipityAdminContent span{
+    color: #055BC6 !important;
+}
+
+/* welcome message on sign-on screen, ie */
+/* 'welcome to serendipity admin suite'  */
+/* 'please enter your credentials'       */
+#serendipityAdminWelcome{
+    color: #055BC6;
+}
+
+/* 'back to blog' link in bottom left of sign-on screen */
+#serendipityBackToBlog {
+    padding: 0 0 10px 10px;
+}
+/* welcome back text displayed after successfully logging in */
+.serendipityWelcomeBack {
+    color: #055BC6;
+    margin: 0;
+}
+
+/***** SIDEBAR STYLES *****/
+
+/* s9y v1.2 class between top and bottom menu blocks */
+/* display: none prevents excess space (<br />) from */
+/* appearing between these 2 menu blocks and the     */
+/* menu blocks in between                            */
+.serendipitySideBarMenuSpacer {
+    display: none;
+}
+
+/* Equal to frontend sidebar - positioned left due to table structure */
+#serendipitySideBar {
+    width: 203px;
+    padding: 3px 0 0 0;
+}
+
+/* style certain elements of admin frontpage navigation blocks the same      */
+.further_links,
+/* serendipitySideBarMenu is a combination of sidebaritem and sidebarcontent */
+/* actual width will be sidebar width less side margins and side borders     */
+ul.serendipitySideBarMenu {
+    list-style: none;
+    overflow: hidden; 
+    background: #EEEEEE url('{TEMPLATE_PATH}img/bp_admin_sidebar_body.png') repeat-y;
+    padding: 0;
+    width: 200px;
+    margin: 0 0 3px 3px;
+}
+
+/* just the further links container */
+.further_links {
+/* for width equal to left sidebar links, set width equal to sidebar less */
+/* serendipitySideBarMenu left & right margins plus L&R borders.          */
+/* Width does not need to be uniquely defined if ul.serentipitySideBarMenu*/
+/* has no borders or L&R padding                                          */
+    float: right;
+}
+
+/* navigation within the container of further_links */
+.further_links ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+/* all <li>s -  serendipitySideBarMenuHead then needs to be styled separately    */
+/* this can change when all plugins have been updated to include s9y ver.1.2     */
+/* class of serendipitySideBarMenuLink which applies only to navigational links  */
+/* just as serendipitySideBarMenuHead only applies to the title even though both */
+/* are <li>s. */
+/* Update: All plugins HAVE been modified to include class serendipitySideBarLink*/
+/* The method below, however, works for users not using the most recent plugins. */
+.further_links li,
+.serendipitySideBarMenu li{
+    line-height: 105%
+}
+
+.further_links li a,
+.serendipitySideBarMenu li a {
+    font-size: 90%;
+    padding-left: 5px;
+}
+
+/* these are the titles for each menu block */
+.further_links .further_links_head,
+li.serendipitySideBarMenuHead {
+/* this background is a default in the event additional menu blocks are added in the future, but not presently defined */
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_default.png') no-repeat;
+    font-weight: bold;
+    font-size: 100%;
+    color: #30303f;
+    height: 30px;
+    padding: 0 0 0 5px;
+    line-height: 28px;
+    margin: 0 0 5px 0;
+    overflow: hidden;
+}
+
+/* unique graphics for the middle 4 menu blocks and further_links */
+ul.serendipitySideBarMenuEntry .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_entries.png') no-repeat;
+}
+ul.serendipitySideBarMenuMedia .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_media.png') no-repeat;
+}
+ul.serendipitySideBarMenuAppearance .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_appearance.png') no-repeat;
+}
+ul.serendipitySideBarMenuUserManagement .serendipitySideBarMenuHead {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_admin.png') no-repeat;
+}
+.further_links .further_links_head {
+    background: #B0BEC0 url('{TEMPLATE_PATH}img/bp_admin_sidebar_further.png') no-repeat;
+}
+
+/* set background for all menu block footers including any added in the future, but not presently defined */
+.further_links .further_links_foot,
+ul.serendipitySideBarMenu .serendipitySideBarMenuFoot {
+background: #EEEEEE url('{TEMPLATE_PATH}img/bp_admin_sidebar_foot.png') no-repeat;
+    display: block !important;
+    height: 8px;
+    margin: 3px 0 0 0;
+    font-size: 0; /* ie6, otherwise item is too tall */
+}
+
+/* main links (top 2) and logout links (bottom 2) are styled to */
+/* look like buttons - each of which has a unique icon          */
+ul.serendipitySideBarMenuLogout,
+ul.serendipitySideBarMenuMain {
+    background: none;
+    margin-bottom: 0;
+    padding: 0;
+}
+
+ul.serendipitySideBarMenuLogout li,
+ul.serendipitySideBarMenuMain li {
+    margin-bottom: 3px;
+    overflow: hidden;
+}
+
+ul.serendipitySideBarMenuLogout li a,
+ul.serendipitySideBarMenuMain li a,
+ul.serendipitySideBarMenuLogout li a:hover,
+ul.serendipitySideBarMenuMain li a:hover{
+    font-size: 100%;
+    font-weight: bold;
+    margin: 0;
+    padding-left: 5px;
+    line-height: 28px;
+}
+
+ul.serendipitySideBarMenuMain a,
+ul.serendipitySideBarMenuLogout a{
+/* this background is a default in the event additional links are added in the future, but not presently defined */
+/* it is an orange button with a double blue arrow pointing right */
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_default.png') no-repeat;
+    display: block;
+    height: 33px;
+}
+
+/* default button hover and active states */
+ul.serendipitySideBarMenuMain a:hover,
+ul.serendipitySideBarMenuLogout a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_default_h.png') no-repeat;
+}
+
+ul.serendipitySideBarMenuMain a:active,
+ul.serendipitySideBarMenuLogout a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_default_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+/* unique images for each of the main and logout links - normal, hover and active states */
+li.serendipitySideBarMenuMainFrontpage a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_frontpage.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainFrontpage a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_frontpage_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainFrontpage a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_frontpage_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuMainPersonal a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_personal.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainPersonal a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_personal_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuMainPersonal a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_personal_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_weblog.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_weblog_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutWeblog a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_weblog_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+li.serendipitySideBarMenuLogoutLogout a{
+    background: #FBB73C url('{TEMPLATE_PATH}img/bp_admin_button_logout.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutLogout a:hover{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_logout_h.png') no-repeat;
+}
+
+li.serendipitySideBarMenuLogoutLogout a:active{
+    background: #FDE33F url('{TEMPLATE_PATH}img/bp_admin_button_logout_a.png') no-repeat;
+    line-height: 30px !important;
+}
+
+/* do not show MenuFoot for the button type links */
+ul.serendipitySideBarMenuLogout .serendipitySideBarMenuFoot,
+ul.serendipitySideBarMenuMain .serendipitySideBarMenuFoot {
+    display: none !important;
+}
+
+/***** END OF SIDEBAR STYLES *****/
+
+/* Admin items presented consecutively such as entries  */
+/* comments, users, groups, templates etc.              */
+/* first class common to both odd and even items        */
+.serendipity_admin_list_item {
+    border: 1px solid #72878A;
+    margin: 0 0 5px 0;
+}
+/* only the uneven/odd list items */
+.serendipity_admin_list_item_uneven {
+    background: #DFDFDF;
+}
+
+/* only the even list items */
+.serendipity_admin_list_item_even {
+    background: #EEEEEE;
+}
+
+/* admin messages reporting an error */
+.serendipityAdminMsgError {
+    text-align: center; 
+    font-weight: bold;
+    margin: 10px 0;
+    color: red;
+    font-size: 100%;
+}
+
+/* any message indicating no error */
+.serendipityAdminMsgSuccess {
+    text-align: center;
+    font-weight: bold;
+    margin: 10px 0; 
+    color: green;
+    font-size: 100%;
+}
+
+/* used in spartacus and plugin config*/
+.serendipityAdminMsgNotice,
+.serendipityAdminMsgNote {
+    text-align: center;
+    font-weight: bold;
+    margin: 10px 0;
+    color: blue;
+    font-size: 100%;
+}
+
+/* new input classes available in s9y v1.2 */
+.input_checkbox, .input_radio, .input_file, .input_textbox, .input_button, label, select, textarea{
+    font: 100% Verdana, Arial, Helvetica, sans-serif;
+}
+.input_textbox, select, textarea {
+    border: 1px solid #72878A;
+    background: #F8F9FA;
+}
+
+/* style for text of input buttons */
+/* new class of input_button also exists for all input buttons */
+input.serendipityPrettyButton,
+a.serendipityPrettyButton {
+    text-decoration: none;
+    font-weight: bold;
+    padding: 2px;
+    margin: 2px 2px 0px 2px;
+    color: #ffffff;
+    cursor: pointer;
+    background: #055BC6 url('{TEMPLATE_PATH}img/bp_admin_prettybutton.png') 0% 50%;
+    border: 1px solid #055BC6;
+    font-size: 90%;
+}
+
+/* make anchor version look more like the input version */
+a.serendipityPrettyButton {
+    padding: 3px;
+}
+
+/* entry preview window  */
+#serendipity_iframe {
+    border: 1px solid #72878A !important;
+    text-align: left !important;
+    margin: 0; }
+
+
+/* this exists exclusively in /templates/default/admin/media_items.tpl */
+.serendipityImageButton {
+    cursor: pointer; }
+
+/* icon links, such as edit, delete, reply, etc     */
+/* IconLink is used when icon is left of link text  */
+/* IconLinkRight is when icon is right of link text */
+/* Style approx the same except for margin settings */
+/* which provide separation between icon and text   */
+a:link.serendipityIconLink,
+a:visited.serendipityIconLink {
+    border: 0;
+    font-weight: bold;
+    text-decoration: none;
+    margin-right: 4px; }
+
+.serendipityIconLink img {
+    margin-right: 2px;
+    vertical-align: bottom;
+    border: 0; }
+
+a:link.serendipityIconLinkRight,
+a:visited.serendipityIconLinkRight {
+    border: 0;
+    font-weight: bold;
+    text-decoration: none;
+    margin-left: 4px; }
+
+.serendipityIconLinkRight img {
+    margin-left: 2px;
+    vertical-align: bottom;
+    border: 0; }
+
+/* this is not really implemented, but classes do exist in backend code */
+.direction_ltr {direction: ltr;}
+.direction_rtl {direction: rtl;}
+
+/*style for block that appears above list of available plugins available for installation */
+/* usually contains a filter dropdown box */ 
+.serendipity_pluginlist_header form{
+    border: 1px solid #72878A;
+    padding: 10px;
+    margin: 0 0 15px 0;
+    background: #EEEEEE;
+}
+
+/* style for block that appears above each type of plugin (Backend: User management, Frontend: Entry Related, etc)*/
+.serendipity_pluginlist_section {
+    margin:20px 0 20px 0;
+    padding:10px;
+    border:1px solid #72878A;
+    color:#505050;
+    line-height:1.5em;
+    background: #EEEEEE;
+}
+
+/* custom fields within Advanced Options for entries */
+#serendipity_customfields {
+    width: 100%; }
+
+#serendipity_customfields .customfield_name {
+    background-color: #FAFAFA;
+    width: 25%;
+    padding-left: 5px; }
+
+#serendipity_customfields .customfield_value {
+    background-color: #FFFFFF;
+    width: 75%;
+    padding: 0;
+}
+
+#serendipity_customfields .customfield_value textarea {
+    width: 100%;
+    height: 100px;
+    padding: 0;
+    margin:0; }
+
+/* left side window for choosing media to insert into entry */
+#serendipityAdminBodyImageSelectorTree {
+    width: auto;
+    font-size: 73%;
+}
+
+#serendipityAdminBodyImageSelectorTree tbody{
+    font-size: 80%;
+}
+
+/* right side window for choosing media to insert into entry */
+/* will default to body background if not specified */
+#serendipityAdminBodyImageSelector {
+    width: auto;
+    margin: 0px;
+    background: #FFFFFF;
+    font-size: 80%;
+}
+
+#serendipityAdminBodyImageSelector tbody{
+    font-size: 80%;
+}
+
+/* Manage Styles - template name in list of available templates */
+/* !important required to override inline style */
+span.serendipityTemplateSelectName {
+    color: #055BC6 !important;
+}
+
+/* New v1.2 class - a hover effect in the plugin list */
+.serendipity_PluginAdminHighlight {
+    background: #ededed;
+}
+/* Added class in s9y v1.2 */
+/* container between AdminFrame and AdminFooter */
+/* can be used to emulate a footer while allowing */
+/* "powered by" text to fall below everything else in the actual footer */
+.serendipityAdminFooterSpacer {
+    display: none;
+}
+
+/* Equal to frontend #footer but falls below of #serendipityAdminFrame wrapper */
+#serendipityAdminFooter {
+    border: 0;
+/*have to pick up some of the styles from wrapper so they apply to footer div below table*/
+    margin: 0 auto;
+/*    background: #CCCCCC; */
+    width: 95%;
+    height: 24px;
+    font-size: 70%;
+    line-height: 24px;
+    padding: 0;
+}
+
diff --git a/templates/bulletproof/base.css b/templates/bulletproof/base.css
new file mode 100644 (file)
index 0000000..c05a5e3
--- /dev/null
@@ -0,0 +1,232 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Base stylesheet                                                    */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
+/* WARNING: Don't edit this stylesheet unless you know what you're    */
+/*          doing! These styles are crucial to the layout, they're    */
+/*          actually the reason this template is called 'bulletproof' */
+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
+
+body, html {
+    margin: 0;
+    padding: 0;
+}
+
+body {
+    text-align: center;
+}
+
+#wrapper {
+    overflow: hidden;
+    width: 95%;
+    margin: 1em auto;
+    text-align: left;
+}
+
+#sitenav {
+    float: left;
+    width: 100%;
+}
+
+#sitenav ul {
+    list-style-type: none;
+    display: inline;
+    margin-left: 0;
+    padding-left: 0;
+}
+
+#sitenav ul li {
+    display: inline;
+}
+
+#navbarsearchform {
+    float: right;
+    display: inline;
+}
+
+#sbsitenav ul {
+    list-style-type: none;
+}
+
+#serendipityLeftSideBar,
+#serendipityLeftSideBarLeft,
+#serendipityLeftSideBarRight,
+#content {
+    float: left;
+}
+
+#serendipityLeftSideBar,
+#serendipityRightSideBar,
+#serendipityLeftSideBarLeft,
+#serendipityLeftSideBarRight {
+    display: inline;
+}
+
+#serendipityRightSideBar {
+     float: right;
+     clear: right;
+}
+
+/* 3-column widths */
+.threemain {
+    width: 60%;
+}
+.threeside {
+    width: 20%;
+}
+
+/* 2-column widths */
+.twomain {
+    width: 75%;
+}
+.twoside {
+    width: 25%;
+}
+
+/* 1-column widths */
+.onemain {
+    width: 100%;
+}
+.oneside {
+    width: 50%;
+    max-width: 300px;
+}
+.onefull {
+    width: 100%;
+    max-width: 300px;
+}
+
+#footer {
+    position: relative;
+    clear: both;
+    margin: 0;
+    padding: 0!important;
+    width: auto;
+    height: 100%;
+}
+
+/*** Accessibility styles ***/
+#skiplinks {
+    display: none;
+}
+
+#skiplinks ul {
+    list-style-type: none;
+    display: inline;
+    margin-left: 0;
+    padding-left: 0;
+}
+
+#skiplinks ul li {
+    display: inline;
+    padding: 0 10px;
+}
+
+/* without this, the navbar wipes out part of the banner */
+/* if the navbar is located above the banner             */
+#serendipity_banner {
+    clear: both;
+}
+
+/* Fahrner Image Replacement for the header */
+.invisible {
+    margin-left: -5000px;
+}
+.visible { /* just a placeholder - don't use this class */
+           /* unless you know what you're doing         */ }
+
+/* this is needed to clear floats from floated images */
+.belowentry,
+.infofooter {
+    clear: both;
+}
+
+/*** Some s9y-specific stuff ***/
+/* centering something     */
+.serendipity_center {
+    margin-left: auto;
+    margin-right: auto;
+    text-align: center;
+}
+
+/* messages from s9y */
+.serendipity_msg_important {
+    color: red;
+    margin-bottom: 1em;
+}
+.serendipity_msg_notice {
+    color: green;
+    margin-bottom: 1em;
+}
+
+.serendipity_entry_extended {
+    clear: both;
+}
+
+/* prevent styling of the extended placeholder, */
+/* otherwise the background image is visible    */
+#extended {
+    background: none;
+    display: none;
+}
+
+/* styling the continue reading byline, needed   */
+/* to stop firefox making the link 100% wide     */
+.continue_reading {
+    display: block;
+    padding-top: 10px;
+}
+
+/* styling the bulletproof button link in footer */
+#serendipity_bulletproof_button img {
+    border: none;
+}
+
+.serendipity_Entry_Date,
+.serendipity_commentBody {
+    overflow: auto;
+}
+
+.serendipitySideBarContent input,
+.serendipitySideBarContent select {
+    width: 95%;
+}
+
+ul.archives_row {
+    list-style-type: none;
+}
+
+ul.archives_row li.archives_graph,
+ul.archives_row li.archives_date,
+ul.archives_row li.archives_count,
+ul.archives_row li.archives_count_link {
+    float: left;
+}
+
+ul.archives_row li.archives_graph,
+ul.archives_row li.archives_date,
+ul.archives_row li.archives_count,
+ul.archives_row li.archives_count_link,
+ul.archives_rowli.archives_link {
+    width: 19.9%;
+}
+
+ul.staticpage_navigation {
+    list-style-type: none;
+    display: inline;
+}
+
+ul.staticpage_navigation li {
+    display: inline;
+}
+
+#theme_chooser select{
+    width: 90%;
+}
diff --git a/templates/bulletproof/blank_style.css b/templates/bulletproof/blank_style.css
new file mode 100644 (file)
index 0000000..ca68bb2
--- /dev/null
@@ -0,0 +1,33 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the colorset 'blank'                                */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+#wrapper,
+#navbarsearchform input {
+    border: 1px solid #ddd;
+/* this is just to outline the wrapper since there are no */
+/* colors in the 'blank' colorset. Same for other borders */
+}
+
+#serendipity_banner,
+#sitenav {
+    border-bottom: 1px solid #ddd;
+}
+
+#footer {
+    border-top: 1px solid #ddd;
+}
+
+input#serendipityQuickSearchTermField {
+    border: 1px solid #ddd!important;
+}
+
+.s9y_wrap {
+    font-size: 69%;
+}
\ No newline at end of file
diff --git a/templates/bulletproof/blue_style.css b/templates/bulletproof/blue_style.css
new file mode 100644 (file)
index 0000000..005866a
--- /dev/null
@@ -0,0 +1,287 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the colorset 'blue'                                 */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+.serendipity_xml_icon {
+    background: url('img/blue_xml.png') center center no-repeat;
+    padding: 10px 0;
+    margin: 0;
+    visibility: visible;
+}
+
+ .serendipity_xml_icon img {
+    visibility: hidden;
+}
+
+a {
+    color: #1F5F7F;
+    text-decoration: none;
+}
+
+a:hover {
+    color: #505050;
+}
+
+body {
+    background-color: #fff;
+}
+
+#wrapper {
+    width: 85%;
+    font-family:  verdana, arial, helvetica, sans-serif;
+    font-size: 69%;
+    background-color: #fff;
+    border-left: 8px solid #dfdfdf;
+    border-right: 8px solid #dfdfdf;
+    margin: 0px auto;
+}
+
+#serendipity_banner {
+    margin: 0;
+    height: 140px;
+    background: #3D98C5 url('img/blue_header.jpg') repeat-x center left ;
+    border: 0px;
+}
+
+#serendipity_banner h1 {
+    font-weight: bold;
+    font-size: 140%;
+    text-transform: uppercase;
+    letter-spacing: .3em;
+    font-size: 180%;
+    padding: 0.25em;
+}
+
+#serendipity_banner h2 {
+    font-weight: normal;
+    font-size: 100%;
+    text-transform: uppercase;
+    letter-spacing: .3em;
+    font-size: 130%;
+    padding: 0.25em;
+}
+
+#serendipity_banner a { 
+    color: #ffffff;
+    text-decoration: none; 
+}
+
+#serendipity_below_banner {
+    /* not used in this template */
+}
+
+#sitenav {
+    background-color: #efefef;
+    border-top: 2px solid #dfdfdf;
+    border-bottom: 4px solid #dfdfdf;
+    margin: 0;
+    padding: 0;
+}
+
+#sitenav ul li {
+    font-size: 90%;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    margin: 0;
+    padding: 0; 
+    display: inline;
+}
+
+#sitenav ul a{
+    border-bottom: 4px solid #efefef;
+    margin: 0 2px 0 0;
+    padding: 6px 10px 6px 10px;
+    float: left;
+    overflow: hidden;
+}
+
+#sitenav ul a:hover,
+#sitenav .currentpage a {
+    border-bottom: 4px solid #3D98C5;
+    padding: 6px 10px 6px 10px;
+    background-color: #efefef;
+}
+
+#serendipityLeftSideBar,
+#serendipityLeftSideBarLeft,
+#serendipityRightSideBarLeft,
+#serendipityRightSideBar,
+#serendipityLeftSideBarRight, 
+#serendipityRightSideBarRight {
+    background-color: #ffffff;
+    color: #505050;
+    overflow: hidden; 
+}
+
+#content {
+    background-color: #ffffff;
+    color: #505050;
+}
+
+#content h3 {
+    font-size: 100%;
+    margin: 10px 0 0 0;
+}
+
+.serendipity_commentsTitle {
+    font-size: 100%;
+    font-weight: bold;
+}
+
+#content h4 {
+    text-transform: uppercase;
+    font-size: 120%;
+    letter-spacing: .2em;
+    margin: 5px 0 15px 0;
+}
+
+.serendipity_entryFooter {
+    font-size: 90%;
+    margin: 5px 0;
+    padding: 8px 0;
+    border-top: 1px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+}
+
+.serendipity_pageFooter {
+    margin: 5px 0 10px;
+}
+
+.serendipitySideBarItem {
+    margin: 10px;
+    padding: 0;
+    border: 0px none;
+    overflow: hidden;
+    height: 100%; 
+}
+
+.serendipitySideBarTitle {
+    text-transform: uppercase;
+    font-size: 95%;
+    letter-spacing: .2em;
+    color: #505050;
+    padding: 8px 5px 8px 5px;
+    border-left: 4px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+    background-color: #efefef;
+    margin: 0;
+}
+
+.serendipitySideBarContent {
+    font-size: 90%;
+    padding: 10px;
+    border-left: 4px solid #dfdfdf;
+    background-color: #efefef;
+    margin: 0;
+}
+
+.serendipitySideBarFooter {
+    /* not used in this template */
+}
+
+#sbsitenav {
+    padding: 10px;
+    margin: 0;
+}
+
+#sbsitenav ul{
+    margin: 0;
+    list-style-type: none;
+}
+
+#sbsitenav ul a {
+    border-left: 4px solid #dfdfdf;
+    padding: 8px 0px 8px 10px;
+    display: block;
+}
+
+#sbsitenav ul a:hover,
+#sbsitenav .currentpage a {
+    border-left: 4px solid #3D98C5;
+}
+
+#sbsitenav li {
+    font-size: 90%;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    background-color: #efefef;
+    margin: 0 0 2px 0;
+    padding: 0;
+    overflow: hidden;
+}
+
+#month,
+.serendipity_weekDayName, 
+#today  {
+    font-size: 100%;
+}
+
+#footer {
+    font-size: 80%;
+    background-color: #dfdfdf;
+}
+
+img.serendipity_entryIcon {
+    float: left;
+    border: 0px;
+    margin:0 5px 0px 0;
+}
+
+input#serendipityQuickSearchTermField {
+    border: 1px solid #1F5F7F!important;
+}
+
+#navbarsearchform input {
+    border: 1px solid #1f5f7f;
+}
+
+blockquote {
+    background: #d6e2e8;
+    color: #505050;
+    border-left: 1px solid #85a8b9;
+    border-top: 1px solid #85a8b9;
+    border-right: 1px solid #1f5f7f;
+    border-bottom: 1px solid #1f5f7f;
+    margin: 1em 4em;
+    padding: 1em;
+}
+
+blockquote p {
+   margin: 0.5em 0;
+   padding: 0;
+}
+
+.serendipity_comment_author_self comment_evenbox,
+.comment_evenbox {
+    line-height: 1.2em;   
+    border: 1px dotted #3D98C5;
+    background: #efefef;
+}
+
+.serendipity_comment_author_self comment_oddbox,
+.comment_oddbox {
+    line-height: 1.2em;
+    border: 1px dotted #3D98C5 ;
+    background: #dfdfdf;
+}
+
+.serendipity_commentsTitle {
+    text-transform: uppercase;
+    font-size: 100%;
+    letter-spacing: .2em;
+    margin: 1em 0;
+    padding: 0.5em 0;
+}
+
+.s9y_wrap {
+    font-size: 69%;
+    background: #fff;
+}
\ No newline at end of file
diff --git a/templates/bulletproof/commentform.tpl b/templates/bulletproof/commentform.tpl
new file mode 100644 (file)
index 0000000..06b29d5
--- /dev/null
@@ -0,0 +1,60 @@
+<!-- support for cocomment -->\r
+{if $template_option.cocommentactive == 'active'}\r
+<script type="text/javascript">\r
+// this ensures coComment gets the correct values\r
+coco =\r
+{ldelim}\r
+     tool          : "Serendipity",\r
+     siteurl       : "{$serendipityBaseURL|@escape:javascript}",\r
+     sitetitle     : "{$blogTitle|@escape:javascript}",\r
+     pageurl       : "{$commentform_entry.rdf_ident|@escape:javascript}",\r
+     pagetitle     : "{$commentform_entry.title|@escape:javascript}",\r
+     author        : "{$commentform_name}",\r
+     authorID      : "serendipity[name]",\r
+     formID        : "serendipity_comment",\r
+     textareaID    : "serendipity[comment]",\r
+     buttonID      : "serendipity[submit]"\r
+{rdelim}\r
+</script>\r
+<script id="cocomment-fetchlet" src="http://www.cocomment.com/js/enabler.js" type="text/javascript">\r
+// this activates coComment\r
+</script>\r
+{/if}\r
+<!-- cocomment end -->\r
+<div class="serendipityCommentForm">\r
+<a id="serendipity_CommentForm"></a>\r
+<!-- The actual form -->\r
+<form id="serendipity_comment_CommentForm" action="{$commentform_action}#feedback" method="post">\r
+<div><input type="hidden" name="serendipity[entry_id]" value="{$commentform_id}" /></div>\r
+<dl>\r
+  <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_name">{$CONST.NAME}</label></dt>\r
+  <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_name" name="serendipity[name]" value="{$commentform_name}" size="30" /></dd>\r
+  <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_email">{$CONST.EMAIL}</label></dt>\r
+  <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_email" name="serendipity[email]" value="{$commentform_email}" size="30" /></dd>\r
+  <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_url">{$CONST.HOMEPAGE}</label></dt>\r
+  <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_url" name="serendipity[url]" value="{$commentform_url}" size="30" /></dd>\r
+  <dt class="serendipity_commentsLabel"><label for="serendipity_replyTo">{$CONST.IN_REPLY_TO}</label></dt>\r
+  <dd class="serendipity_commentsValue">{$commentform_replyTo}</dd>\r
+  <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_comment">{$CONST.COMMENT}</label></dt>\r
+  <dd class="serendipity_commentsValue"><textarea class="frm" rows="10" cols="40" id="serendipity_commentform_comment" name="serendipity[comment]">{$commentform_data}</textarea>{serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}</dd>\r
+               \r
+  {if $is_commentform_showToolbar}\r
+    <dt>&#160;</dt>\r
+    <dd class="serendipity_commentsLabel">\r
+    <span class="checkbox"><input id="checkbox_remember" type="checkbox" name="serendipity[remember]" {$commentform_remember} />&#160;<label for="checkbox_remember">{$CONST.REMEMBER_INFO}</label></span>\r
+    {if $is_allowSubscriptions}\r
+    <span class="checkbox"><input id="checkbox_subscribe" type="checkbox" name="serendipity[subscribe]" {$commentform_subscribe} />&#160;<label for="checkbox_subscribe">{$CONST.SUBSCRIBE_TO_THIS_ENTRY}</label></span>\r
+    {/if}\r
+  </dd>\r
+  {/if}\r
+       \r
+  {if $is_moderate_comments}\r
+    <dt class="serendipity_commentsValue serendipity_msg_important">{$CONST.COMMENTS_WILL_BE_MODERATED}</dt>\r
+    <dd>&#160;</dd>\r
+  {/if}\r
+  <dt>&#160;</dt><dd class="serendipity_commentsLabel">\r
+    <input type="submit" name="serendipity[submit]" value="{$CONST.SUBMIT_COMMENT}" />\r
+    <input type="submit" id="serendipity_preview" name="serendipity[preview]" value="{$CONST.PREVIEW}" /></dd>\r
+</dl>\r
+</form>\r
+</div>\r
diff --git a/templates/bulletproof/commentpopup.tpl b/templates/bulletproof/commentpopup.tpl
new file mode 100644 (file)
index 0000000..5aa288c
--- /dev/null
@@ -0,0 +1,59 @@
+{if $is_xhtml}\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+{else}\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
+ "http://www.w3.org/TR/html4/loose.dtd">\r
+{/if}\r
+\r
+<html>\r
+<head>\r
+   <title>{$head_title|@default:$blogTitle} {if $head_subtitle} - {$head_subtitle}{/if}</title>\r
+   <meta http-equiv="Content-Type" content="text/html; charset={$head_charset}" />\r
+   <meta name="Powered-By" content="Serendipity v.{$head_version}" />\r
+   <!-- base styles needed for bulletproof -->\r
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="base.css"}" />\r
+   <!-- style.css -->\r
+   <link rel="stylesheet" type="text/css" href="{$serendipityHTTPPath}serendipity.css.php" />\r
+   <!--[if IE 6]>\r
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="ie6.css"}" />\r
+   <![endif]-->\r
+   <!--[if IE 7]>\r
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="ie7.css"}" />\r
+   <![endif]-->\r
+   {if $template_option.colorset != 'default'}\r
+   <!-- additional colorset stylesheet -->\r
+   <link rel="stylesheet" type="text/css" href="{$serendipityHTTPPath}templates/{$template}/{$template_option.colorset}_style.css" />\r
+   {/if}\r
+   <link rel="alternate"  type="application/rss+xml" title="{$blogTitle} RSS feed" href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/index.rss2" />\r
+   <link rel="alternate"  type="application/x.atom+xml"  title="{$blogTitle} Atom feed"  href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/atom.xml" />\r
+</head>\r
+\r
+<body class="s9y_wrap" id="serendipity_comment_page">\r
+{if $is_comment_added}\r
+    <div class="popup_comments_message popup_comments_message_added">{$CONST.COMMENT_ADDED}{$comment_string.0}<a href="{$comment_url}">{$comment_string.1}</a>{$comment_string.2}<a href="#" onclick="self.close()">{$comment_string.3}</a>{$comment_string.4}</div>\r
+{elseif $is_comment_notadded}\r
+    <div class="popup_comments_message popup_comments_message_notadded">{$CONST.COMMENT_NOT_ADDED}{$comment_string.0}<a href="{$comment_url}">{$comment_string.1}</a>{$comment_string.2}<a href="#" onclick="self.close()">{$comment_string.3}</a>{$comment_string.4}</div>\r
+{elseif $is_comment_empty}\r
+    <div class="popup_comments_message popup_comments_message_empty">{$comment_string.0}<a href="#" onclick="history.go(-1)">{$comment_string.1}</a>{$comment_string.2}</div>\r
+{elseif $is_showtrackbacks}\r
+    <div class="serendipity_commentsTitle">{$CONST.TRACKBACKS}</div>\r
+    <dl>\r
+        <dt><strong>{$CONST.TRACKBACK_SPECIFIC}:</strong></dt>\r
+        <dd><a rel="nofollow" href="{$comment_url}">{$comment_url}</a></dd>\r
+        <dt><strong>{$CONST.DIRECT_LINK}:</strong></dt>\r
+        <dd><a href="{$comment_entryurl}">{$comment_entryurl}</a></dd>\r
+    </dl>\r
+    {serendipity_printTrackbacks entry=$entry_id}\r
+{elseif $is_showcomments}\r
+    <div class="serendipity_commentsTitle">{$CONST.COMMENTS}</div>\r
+    {serendipity_printComments entry=$entry_id}\r
+    {if $is_comment_allowed}\r
+        <div class="serendipity_commentsTitle">{$CONST.ADD_COMMENT}</div>\r
+        {$COMMENTFORM}\r
+    {else}\r
+        <div class="serendipity_center serendipity_msg_important">{$CONST.COMMENTS_CLOSED}</div>\r
+    {/if}\r
+{/if}\r
+</body>\r
+</html>\r
diff --git a/templates/bulletproof/comments.tpl b/templates/bulletproof/comments.tpl
new file mode 100644 (file)
index 0000000..f739b98
--- /dev/null
@@ -0,0 +1,37 @@
+{foreach from=$comments item=comment name="comments"}
+    <a id="c{$comment.id}"></a>
+    <div id="serendipity_comment_{$comment.id}" class="serendipity_comment serendipity_comment_author_{$comment.author|@makeFilename} {if $entry.author == $comment.author}serendipity_comment_author_self{/if} {cycle values="comment_oddbox, comment_evenbox"}" style="margin-left: {$comment.depth*10}px">
+        <div class="serendipity_commentBody">
+        {if $comment.body == 'COMMENT_DELETED'}
+            {$CONST.COMMENT_IS_DELETED}
+        {else}
+            {$comment.body}
+        {/if}
+        </div>
+        <div class="serendipity_comment_source">
+            <a class="comment_source_trace" href="#c{$comment.id}">#{$comment.trace}</a>
+            <span class="comment_source_author">
+            {if $comment.email}
+                <a href="mailto:{$comment.email}">{$comment.author|@default:$CONST.ANONYMOUS}</a>
+            {else}
+                {$comment.author|@default:$CONST.ANONYMOUS}
+            {/if}
+            </span>
+            {if $comment.url}
+                (<a class="comment_source_url" href="{$comment.url}" title="{$comment.url|@escape}">{$CONST.HOMEPAGE}</a>)
+            {/if}
+            {$CONST.ON}
+            <span class="comment_source_date">{$comment.timestamp|@formatTime:$CONST.DATE_FORMAT_SHORT}</span>
+
+            {if $entry.is_entry_owner}
+                (<a class="comment_source_ownerlink" href="{$comment.link_delete}" onclick="return confirm('{$CONST.COMMENT_DELETE_CONFIRM|@sprintf:$comment.id:$comment.author}');">{$CONST.DELETE}</a>)
+            {/if}
+            {if $entry.allow_comments AND $comment.body != 'COMMENT_DELETED'}
+                (<a class="comment_reply" href="#serendipity_CommentForm" id="serendipity_reply_{$comment.id}" onclick="document.getElementById('serendipity_replyTo').value='{$comment.id}'; {$comment_onchange}">{$CONST.REPLY}</a>)
+                <div id="serendipity_replyform_{$comment.id}"></div>
+            {/if}
+        </div>
+    </div>
+{foreachelse}
+    <div class="serendipity_center nocomments">{$CONST.NO_COMMENTS}</div>
+{/foreach}
diff --git a/templates/bulletproof/config.inc.php b/templates/bulletproof/config.inc.php
new file mode 100644 (file)
index 0000000..ce396b2
--- /dev/null
@@ -0,0 +1,268 @@
+<?php\r
+if (IN_serendipity !== true) {\r
+  die ("Don't hack!");\r
+}\r
+\r
+$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';\r
+\r
+if (file_exists($probelang)) {\r
+    include $probelang;\r
+}\r
+    \r
+include dirname(__FILE__) . '/lang_en.inc.php';\r
+\r
+$serendipity['smarty']->assign(array('currpage'=> "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));\r
+\r
+$template_config = array(\r
+    array(\r
+        'var'           => 'colorset',\r
+        'name'          => THEME_COLORSET,\r
+        'type'          => 'select',\r
+        'default'       => 'purple',\r
+        'select_values' => array('purple' => BP_COLORSET_OPT1,\r
+                                 'blue' => BP_COLORSET_OPT2,\r
+                                 'green' => BP_COLORSET_OPT3,\r
+                                 'blank' => BP_COLORSET_DEF)\r
+    ),\r
+    array(\r
+        'var'           => 'layouttype',\r
+        'name'          => LAYOUT_TYPE,\r
+        'type'          => 'select',\r
+        'default'       => '3sbs',\r
+        'select_values' => array('3sbs' => LAYOUT_SBS,\r
+                                 '3bss' => LAYOUT_BSS,\r
+                                 '3ssb' => LAYOUT_SSB,\r
+                                 '2sb'  => LAYOUT_SB,\r
+                                 '2bs'  => LAYOUT_BS,\r
+                                 '1col' => LAYOUT_SC)\r
+    ),\r
+    array(\r
+        'var'           => 'jscolumns',\r
+        'name'          => JAVASCRIPT_COLUMNS,\r
+        'type'          => 'radio',\r
+        'default'       => 'false',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO))\r
+    ),\r
+    array(\r
+        'var'           => 'custheader',\r
+        'name'          => BP_CUSTOM_HEADER,\r
+        'type'          => 'radio',\r
+        'default'       => 'false',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO))\r
+    ),\r
+    array(\r
+        'var'           => 'headerimage',\r
+        'name'          => BP_HEADER_IMAGE,\r
+        'type'          => 'media',\r
+        'default'       => serendipity_getTemplateFile('header.png')\r
+    ),\r
+    array(\r
+        'var'           => 'headertype',\r
+        'name'          => BP_HEADER_TYPE,\r
+        'type'          => 'select',\r
+        'default'       => 'banner',\r
+        'select_values' => array('banner' => BP_HEADER_BANNER,\r
+                                 'htiled' => BP_HEADER_HTILED,\r
+                                 'vtiled' => BP_HEADER_VTILED,\r
+                                 'btiled' => BP_HEADER_BTILED)\r
+    ),\r
+    array(\r
+        'var'           => 'headerposhor',\r
+        'name'          => BP_HEADER_POSHOR,\r
+        'type'          => 'select',\r
+        'default'       => 'left',\r
+        'select_values' => array('left' => LEFT,\r
+                                 'center' => BP_CENTER,\r
+                                 'right' => RIGHT)\r
+    ),\r
+    array(\r
+        'var'           => 'headerposver',\r
+        'name'          => BP_HEADER_POSVER,\r
+        'type'          => 'select',\r
+        'default'       => 'top',\r
+        'select_values' => array('top' => BP_TOP,\r
+                                 'center' => BP_CENTER,\r
+                                 'bottom' => BP_BOTTOM)\r
+    ),\r
+    array(\r
+        'var'           => 'firbtitle',\r
+        'name'          => FIR_BTITLE,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'firbdescr',\r
+        'name'          => FIR_BDESCR,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'date_format',\r
+        'name'          => GENERAL_PLUGIN_DATEFORMAT . " (http://php.net/strftime)",\r
+        'type'          => 'select',\r
+        'default'       => DATE_FORMAT_ENTRY,\r
+        'select_values' => array(DATE_FORMAT_ENTRY => DATE_FORMAT_ENTRY,\r
+                                 '%a, %e. %B %Y' => '%a, %e. %B %Y',\r
+                                 '%d-%m-%y' => '%d-%m-%y',\r
+                                 '%m-%d-%y' => '%m-%d-%y',\r
+                                 '%a %d-%m-%y' => '%a %d-%m-%y',\r
+                                 '%a %m-%d-%y' => '%a %m-%d-%y',\r
+                                 '%b %d' => '%b %d',\r
+                                 "%b %d '%y" => "%b %d '%y")\r
+    ),\r
+    array(\r
+        'var'           => 'entryfooterpos',\r
+        'name'          => ENTRY_FOOTER_POS,\r
+        'type'          => 'select',\r
+        'default'       => 'belowentry',\r
+        'select_values' => array('belowentry' => BELOW_ENTRY,\r
+                                 'belowtitle' => BELOW_TITLE,\r
+                                 'splitfoot' => SPLIT_FOOTER)\r
+    ),\r
+    array(\r
+        'var'           => 'footerauthor',\r
+        'name'          => FOOTER_AUTHOR,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'footercategories',\r
+        'name'          => FOOTER_CATEGORIES,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'footertimestamp',\r
+        'name'          => FOOTER_TIMESTAMP,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'footercomments',\r
+        'name'          => FOOTER_COMMENTS,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'footertrackbacks',\r
+        'name'          => FOOTER_TRACKBACKS,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'cocommentactive',\r
+        'name'          => COCOMMENT_ACTIVE,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('active', 'inactive'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'inactive',\r
+    ),\r
+    array(\r
+        'var'           => 'counter_code',\r
+        'name'          => COUNTER_CODE,\r
+        'type'          => 'text',\r
+        'default'       => '',\r
+    ),\r
+    array(\r
+        'var'           => 'counter_code_toggle',\r
+        'name'          => USE_COUNTER,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'false'\r
+    ),\r
+    array(\r
+        'var'           => 'footer_text',\r
+        'name'          => FOOTER_TEXT,\r
+        'type'          => 'text',\r
+        'default'       => '',\r
+    ),\r
+    array(\r
+        'var'           => 'footer_text_toggle',\r
+        'name'          => USE_FOOTER_TEXT,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'false'\r
+    ),\r
+    array(\r
+        'var'           => 'sitenavpos',\r
+        'name'          => SITENAV_POSITION,\r
+        'type'          => 'select',\r
+        'default'       => 'none',\r
+        'select_values' => array('none' => SITENAV_NONE,\r
+                                 'above' => SITENAV_ABOVE,\r
+                                 'below' => SITENAV_BELOW,\r
+                                 'left' => SITENAV_LEFT,\r
+                                 'right' => SITENAV_RIGHT)\r
+    ),\r
+    array(\r
+        'var'           => 'sitenav_footer',\r
+        'name'          => SITENAV_FOOTER,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true'\r
+    ),\r
+    array(\r
+        'var'           => 'sitenav_quicksearch',\r
+        'name'          => SITENAV_QUICKSEARCH,\r
+        'type'          => 'radio',\r
+        'radio'         => array('value' => array('true', 'false'),\r
+                                 'desc'  => array(YES, NO)),\r
+        'default'       => 'true',\r
+    ),\r
+    array(\r
+        'var'           => 'sitenav_sidebar_title',\r
+        'name'          => SITENAV_TITLE,\r
+        'type'          => 'string',\r
+        'default'       => SITENAV_TITLE_TEXT,\r
+    ),\r
+    array(\r
+        'var'           => 'amount',\r
+        'name'          => NAVLINK_AMOUNT,\r
+        'type'          => 'string',\r
+        'default'       => '5',\r
+    )\r
+);\r
+\r
+$template_loaded_config = serendipity_loadThemeOptions($template_config, $serendipity['smarty_vars']['template_option']);\r
+\r
+$navlinks = array();\r
+\r
+for ($i = 0; $i < $template_loaded_config['amount']; $i++) {\r
+    $navlinks[] = array(\r
+        'title' => $template_loaded_config['navlink' . $i . 'text'],\r
+        'href'  => $template_loaded_config['navlink' . $i . 'url']\r
+    );\r
+    $template_config[] = array(\r
+        'var'           => 'navlink' . $i . 'text',\r
+        'name'          => NAV_LINK_TEXT . ' #' . $i,\r
+        'type'          => 'string',\r
+        'default'       => 'Link #' . $i,\r
+        );\r
+    $template_config[] = array(\r
+        'var'           => 'navlink' . $i . 'url',\r
+        'name'          => NAV_LINK_URL . ' #' . $i,\r
+        'type'          => 'string',\r
+        'default'       => '#',\r
+    );\r
+}\r
+\r
+$serendipity['smarty']->assign_by_ref('navlinks', $navlinks);\r
diff --git a/templates/bulletproof/content.tpl b/templates/bulletproof/content.tpl
new file mode 100644 (file)
index 0000000..2e782d2
--- /dev/null
@@ -0,0 +1,28 @@
+<!-- CONTENT START -->\r
+{if $searchresult_tooShort}\r
+   <div class="serendipity_Entry_Date">\r
+      <h3 class="serendipity_date">{$CONST.QUICKSEARCH}</h3>\r
+      <div class="serendipity_search serendipity_search_tooshort">{$content_message}</div>\r
+   </div>\r
+{elseif $searchresult_error}\r
+   <div class="serendipity_Entry_Date">\r
+      <h3 class="serendipity_date">{$CONST.QUICKSEARCH}</h3>\r
+      <div class="serendipity_search serendipity_search_error">{$content_message}</div>\r
+   </div>\r
+{elseif $searchresult_noEntries}\r
+   <div class="serendipity_Entry_Date">\r
+      <h3 class="serendipity_date">{$CONST.QUICKSEARCH}</h3>\r
+      <div class="serendipity_search serendipity_search_noentries">{$content_message}</div>\r
+   </div>\r
+{elseif $searchresult_results}\r
+   <div class="serendipity_Entry_Date">\r
+      <h3 class="serendipity_date">{$CONST.QUICKSEARCH}</h3>\r
+      <div class="serendipity_search serendipity_search_results">{$content_message}</div>\r
+   </div>\r
+{else}\r
+   <div class="serendipity_content_message">{$content_message}</div>\r
+{/if}\r
+\r
+{$ENTRIES}\r
+{$ARCHIVES}\r
+<!-- CONTENT END -->\r
diff --git a/templates/bulletproof/entries.tpl b/templates/bulletproof/entries.tpl
new file mode 100644 (file)
index 0000000..4312a6c
--- /dev/null
@@ -0,0 +1,302 @@
+<!-- ENTRIES START -->
+{serendipity_hookPlugin hook="entries_header" addData="$entry_id"}
+
+{foreach from=$entries item="dategroup"}
+<div class="serendipity_Entry_Date">
+    {if $dategroup.is_sticky}
+        <h3 class="serendipity_date">{$CONST.STICKY_POSTINGS}</h3>
+    {else}
+        <h3 class="serendipity_date">{$dategroup.date|@formatTime:$template_option.date_format}</h3>
+    {/if}
+
+    {foreach from=$dategroup.entries item="entry"}
+        <h4 class="serendipity_title"><a href="{$entry.link}">{$entry.title}</a></h4>
+
+        <div class="serendipity_entry serendipity_entry_author_{$entry.author|@makeFilename} {if $entry.is_entry_owner}serendipity_entry_author_self{/if}">
+
+            {if $template_option.entryfooterpos == 'belowtitle'}
+                <div class='serendipity_entryFooter belowtitle'>
+                    {if $template_option.footerauthor == 'true'}
+                        {$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a>
+                    {/if}
+
+                    {if $template_option.footercategories == 'true'}
+                        {if $entry.categories}
+                            {$CONST.IN} {foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertimestamp == 'true'}
+                        {if $dategroup.is_sticky}
+                            {$CONST.ON}
+                        {else}
+                            {$CONST.AT}
+                        {/if}
+                        <a href="{$entry.link}">{if $dategroup.is_sticky}{$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY} {/if}{$entry.timestamp|@formatTime:'%H:%M'}</a>
+                    {/if}
+
+                    {if $template_option.footercomments == 'true'}
+                        {if $entry.has_comments}
+                            {if $use_popups}
+                                | <a href="{$entry.link_popup_comments}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_comments} ({$entry.comments})</a>
+                            {else}
+                                | <a href="{$entry.link}#comments">{$entry.label_comments} ({$entry.comments})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertrackbacks == 'true'}
+                        {if $entry.has_trackbacks}
+                            {if $use_popups}
+                                | <a href="{$entry.link_popup_trackbacks}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {else}
+                                | <a href="{$entry.link}#trackbacks">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $entry.is_entry_owner and not $is_preview}
+                        <div class="editentrylink"><a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a></div>
+                    {/if}
+
+                    {$entry.add_footer}
+                </div>
+            {/if}
+
+            {if $template_option.entryfooterpos == 'splitfoot'}
+                <div class='serendipity_entryFooter byline'>
+                    {if $template_option.footerauthor == 'true'}
+                        {$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a>
+                    {/if}
+
+                    {if $template_option.footercategories == 'true'}
+                        {if $entry.categories}
+                            {$CONST.IN} {foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertimestamp == 'true'}
+                        {if $dategroup.is_sticky}
+                            {$CONST.ON}
+                        {else}
+                            {$CONST.AT}
+                        {/if}
+                        <a href="{$entry.link}">{if $dategroup.is_sticky}{$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY} {/if}{$entry.timestamp|@formatTime:'%H:%M'}</a>
+                    {/if}
+                </div>
+            {/if}
+
+            {if $entry.categories}
+                <span class="serendipity_entryIcon">
+                    {foreach from=$entry.categories item="entry_category"}
+                        {if $entry_category.category_icon}
+                            <a href="{$entry_category.category_link}"><img class="serendipity_entryIcon" title="{$entry_category.category_name|@escape}{$entry_category.category_description|@emptyPrefix}" alt="{$entry_category.category_name|@escape}" src="{$entry_category.category_icon}" /></a>
+                        {/if}
+                    {/foreach}
+               </span>
+            {/if}
+  
+            <div class="serendipity_entry_body">
+                {$entry.body}
+                {if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
+                    <span class="continue_reading"><a href="{$entry.link}#extended" title='{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title|truncate:50:" ..."}'>{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title|truncate:50:" ..."} &raquo;</a></span>
+                {/if}
+           </div>
+
+            {if $entry.is_extended}
+                <div class="serendipity_entry_extended"><a id="extended"></a>{$entry.extended}</div>
+            {/if}
+
+            {if $template_option.entryfooterpos == 'belowentry'}
+                <div class='serendipity_entryFooter belowentry'>
+                    {if $template_option.footerauthor == 'true'}
+                        {$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a>
+                    {/if}
+
+                    {if $template_option.footercategories == 'true'}
+                        {if $entry.categories}
+                            {$CONST.IN} {foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertimestamp == 'true'}
+                        {if $dategroup.is_sticky}
+                            {$CONST.ON}
+                        {else}
+                            {$CONST.AT}
+                        {/if}
+                            <a href="{$entry.link}">{if $dategroup.is_sticky}{$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY} {/if}{$entry.timestamp|@formatTime:'%H:%M'}</a>
+                    {/if}
+
+                    {if $template_option.footercomments == 'true'}
+                        {if $entry.has_comments}
+                            {if $use_popups}
+                                | <a href="{$entry.link_popup_comments}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_comments} ({$entry.comments})</a>
+                            {else}
+                                | <a href="{$entry.link}#comments">{$entry.label_comments} ({$entry.comments})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertrackbacks == 'true'}
+                        {if $entry.has_trackbacks}
+                            {if $use_popups}
+                                | <a href="{$entry.link_popup_trackbacks}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {else}
+                                | <a href="{$entry.link}#trackbacks">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $entry.is_entry_owner and not $is_preview}
+                        <div class="editentrylink"><a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a></div>
+                    {/if}
+
+                    {$entry.add_footer}
+                </div>
+            {/if}
+
+            {if $template_option.entryfooterpos == 'splitfoot'}
+                <div class='serendipity_entryFooter infofooter'>
+                    {if $template_option.footercomments == 'true'}
+                        {if $entry.has_comments}
+                            {if $use_popups}
+                                <a href="{$entry.link_popup_comments}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_comments} ({$entry.comments})</a>
+                            {else}
+                                <a href="{$entry.link}#comments">{$entry.label_comments} ({$entry.comments})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $template_option.footertrackbacks == 'true'}
+                        {if $entry.has_trackbacks}
+                            {if $use_popups}
+                                | <a href="{$entry.link_popup_trackbacks}" onclick="window.open(this.href, 'comments', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {else}
+                                | <a href="{$entry.link}#trackbacks">{$entry.label_trackbacks} ({$entry.trackbacks})</a>
+                            {/if}
+                        {/if}
+                    {/if}
+
+                    {if $entry.is_entry_owner and not $is_preview}
+                        <div class="editentrylink"><a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a></div>
+                    {/if}
+
+                    {$entry.add_footer}
+                </div>
+            {/if}
+        </div>
+
+        <!--
+        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
+                 xmlns:dc="http://purl.org/dc/elements/1.1/">
+        <rdf:Description
+                 rdf:about="{$entry.link_rdf}"
+                 trackback:ping="{$entry.link_trackback}"
+                 dc:title="{$entry.title_rdf|@default:$entry.title}"
+                 dc:identifier="{$entry.rdf_ident}" />
+        </rdf:RDF>
+        -->
+        {$entry.plugin_display_dat}
+
+        {if $is_single_entry and not $use_popups and not $is_preview}
+            {if $CONST.DATA_UNSUBSCRIBED}
+                <div class="serendipity_center serendipity_msg_notice">{$CONST.DATA_UNSUBSCRIBED|@sprintf:$CONST.UNSUBSCRIBE_OK}</div>
+            {/if}
+
+            {if $CONST.DATA_TRACKBACK_DELETED}
+                <div class="serendipity_center serendipity_msg_notice">{$CONST.DATA_TRACKBACK_DELETED|@sprintf:$CONST.TRACKBACK_DELETED}</div>
+            {/if}
+
+            {if $CONST.DATA_TRACKBACK_APPROVED}
+                <div class="serendipity_center serendipity_msg_notice">{$CONST.DATA_TRACKBACK_APPROVED|@sprintf:$CONST.TRACKBACK_APPROVED}</div>
+            {/if}
+
+            {if $CONST.DATA_COMMENT_DELETED}
+                <div class="serendipity_center serendipity_msg_notice">{$CONST.DATA_COMMENT_DELETED|@sprintf:$CONST.COMMENT_DELETED}</div>
+            {/if}
+
+            {if $CONST.DATA_COMMENT_APPROVED}
+                <div class="serendipity_center serendipity_msg_notice">{$CONST.DATA_COMMENT_APPROVED|@sprintf:$CONST.COMMENT_APPROVED}</div>
+            {/if}
+
+            <div class="serendipity_comments serendipity_section_trackbacks">
+                <a id="trackbacks"></a>
+                <div class="serendipity_commentsTitle">{$CONST.TRACKBACKS}</div>
+                <div class="serendipity_center">
+                    <a rel="nofollow" style="font-weight: normal" href="{$entry.link_trackback}" onclick="alert('{$CONST.TRACKBACK_SPECIFIC_ON_CLICK|@escape:html}'); return false;" title="{$CONST.TRACKBACK_SPECIFIC_ON_CLICK|@escape}">{$CONST.TRACKBACK_SPECIFIC}</a>
+                </div>
+                <div id="serendipity_trackbacklist">{serendipity_printTrackbacks entry=$entry.id}</div>
+            </div>
+        {/if}
+
+        {if $is_single_entry and not $is_preview}
+            <div class="serendipity_comments serendipity_section_comments">
+                <a id="comments"></a>
+                <div class="serendipity_commentsTitle">{$CONST.COMMENTS}</div>
+                <div class="serendipity_center">{$CONST.DISPLAY_COMMENTS_AS}
+                    {if $entry.viewmode eq $CONST.VIEWMODE_LINEAR}
+                        ({$CONST.COMMENTS_VIEWMODE_LINEAR} | <a href="{$entry.link_viewmode_threaded}#comments" rel="nofollow">{$CONST.COMMENTS_VIEWMODE_THREADED}</a>)
+                    {else}
+                        (<a rel="nofollow" href="{$entry.link_viewmode_linear}#comments">{$CONST.COMMENTS_VIEWMODE_LINEAR}</a> | {$CONST.COMMENTS_VIEWMODE_THREADED})
+                    {/if}
+                </div>
+                <div id="serendipity_commentlist">{serendipity_printComments entry=$entry.id mode=$entry.viewmode}</div>
+
+                {if $entry.is_entry_owner}
+                    {if $entry.allow_comments}
+                        <div class="serendipity_center">(<a href="{$entry.link_deny_comments}">{$CONST.COMMENTS_DISABLE}</a>)</div>
+                    {else}
+                        <div class="serendipity_center">(<a href="{$entry.link_allow_comments}">{$CONST.COMMENTS_ENABLE}</a>)</div>
+                    {/if}
+                {/if}
+                <a id="feedback"></a>
+
+                {foreach from=$comments_messagestack item="message"}
+                    <div class="serendipity_center serendipity_msg_important">{$message}</div>
+                {/foreach}
+
+                {if $is_comment_added}
+                    <div class="serendipity_center serendipity_msg_notice">{$CONST.COMMENT_ADDED}</div>
+                {elseif $is_comment_moderate}
+                    <div class="serendipity_center serendipity_msg_notice">{$CONST.COMMENT_ADDED}<br />{$CONST.THIS_COMMENT_NEEDS_REVIEW}</div>
+                {elseif not $entry.allow_comments}
+                    <div class="serendipity_center serendipity_msg_important">{$CONST.COMMENTS_CLOSED}</div>
+                {else}
+                   <div class="serendipity_section_commentform">
+                       <div class="serendipity_commentsTitle">{$CONST.ADD_COMMENT}</div>
+                       {$COMMENTFORM}
+                   </div>
+                {/if}
+            </div>
+        {/if}
+
+        {$entry.backend_preview}
+    {/foreach}
+</div>
+
+{foreachelse}
+    {if not $plugin_clean_page}
+        <div class="serendipity_overview_noentries">
+            {$CONST.NO_ENTRIES_TO_PRINT}
+        </div>
+    {/if}
+{/foreach}
+
+<div class='serendipity_pageFooter' style="text-align: center">
+    {if $footer_prev_page}
+        <a title="{$CONST.PREVIOUS_PAGE}" href="{$footer_prev_page}">&laquo; {$CONST.PREVIOUS_PAGE}</a>&#160;&#160;
+    {/if}
+
+    {if $footer_info}
+        ({$footer_info})
+    {/if}
+
+    {if $footer_next_page}
+        <a title="{$CONST.NEXT_PAGE}" href="{$footer_next_page}">{$CONST.NEXT_PAGE} &raquo;</a>
+    {/if}
+
+    {serendipity_hookPlugin hook="entries_footer"}
+</div>
+<!-- ENTRIES END -->
diff --git a/templates/bulletproof/entries_archives.tpl b/templates/bulletproof/entries_archives.tpl
new file mode 100644 (file)
index 0000000..cd6bd55
--- /dev/null
@@ -0,0 +1,23 @@
+{serendipity_hookPlugin hook="entries_header"}\r
+<div class="serendipity_Entry_Date">\r
+   <h3 class="serendipity_date">{$CONST.ARCHIVES}</h3>\r
+   {foreach from=$archives item="archive"}\r
+      <h4 class="archives_header">{$archive.year}</h4>\r
+      {foreach from=$archive.months item="month"}\r
+      <ul class="archives_row">\r
+         {if $template_option.colorset == 'default'}\r
+         <li class="archives_graph"><img src="{serendipity_getFile file="img/graph_bar_horisontal.png"}" alt="bar graph" height="10" width="{math width=100 equation="count * width / max" count=$month.entry_count max=$max_entries format="%d"}" style="border: 1px solid #000000" /></li>\r
+         {else}\r
+         <li class="archives_graph"><img src="{$serendipityHTTPPath}templates/{$template}/img/{$template_option.colorset}_graph_bar.png" alt="bar graph" height="10" width="{math width=100 equation="count * width / max" count=$month.entry_count max=$max_entries format="%d"}" style="border: 1px solid #000000" /></li>\r
+         {/if}\r
+         <li class="archives_date">{$month.date|@formatTime:"%B"}</li>\r
+         <li class="archives_count">{$month.entry_count} {$CONST.ENTRIES}</li>\r
+         <li class="archives_count_link">({if $month.entry_count}<a href="{$month.link}">{/if}{$CONST.VIEW_FULL}{if $month.entry_count}</a>{/if})</li>\r
+         <li class="archives_link">({if $month.entry_count}<a href="{$month.link_summary}">{/if}{$CONST.VIEW_TOPICS}{if $month.entry_count}</a>{/if})</li>\r
+      </ul>\r
+      {/foreach}\r
+   {/foreach}\r
+</div>\r
+<div class="serendipity_pageFooter" style="text-align: center">\r
+{serendipity_hookPlugin hook="entries_footer"}\r
+</div>\r
diff --git a/templates/bulletproof/entries_summary.tpl b/templates/bulletproof/entries_summary.tpl
new file mode 100644 (file)
index 0000000..19f327f
--- /dev/null
@@ -0,0 +1,16 @@
+{serendipity_hookPlugin hook="entries_header"}\r
+<div class="serendipity_Entry_Date">\r
+   <h3 class='serendipity_date'>{$CONST.TOPICS_OF} {$dateRange.0|@formatTime:"%B, %Y"}</h3>\r
+   <div class="serendipity_entry">\r
+   {foreach from=$entries item="entries"}\r
+      {foreach from=$entries.entries item="entry"}\r
+         <div class="archive_summary"><h4 class="archive_summary_title">{$entry.id} - <a href="{$entry.link}">{$entry.title|truncate:80:" ..."}</a></h4>\r
+         {$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY}. {$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {if $entry.categories} {$CONST.IN} {foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a> {/foreach}{/if}</div>\r
+      {/foreach}\r
+   {/foreach}\r
+   </div>\r
+</div>\r
+\r
+<div class='serendipity_pageFooter' style="text-align: center">\r
+{serendipity_hookPlugin hook="entries_footer"}\r
+</div>\r
diff --git a/templates/bulletproof/green_style.css b/templates/bulletproof/green_style.css
new file mode 100644 (file)
index 0000000..43d9780
--- /dev/null
@@ -0,0 +1,287 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the colorset 'green'                                */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+.serendipity_xml_icon {
+    background: url('img/green_xml.png') center center no-repeat;
+    padding: 10px 0;
+    margin: 0;
+    visibility: visible;
+}
+
+.serendipity_xml_icon img {
+    visibility: hidden;
+}
+
+a {
+    color: #382513;
+    text-decoration: none;
+}
+
+a:hover {
+    color:#6B8F50;
+}
+
+body {
+    background-color: #DFD7C3;
+}
+
+#wrapper {
+    width: 85%;
+    font-family:  verdana, arial, helvetica, sans-serif;
+    font-size: 69%;
+    background-color: #D8CAA8;
+    border-left: 8px solid #6B8F50;
+    border-right: 8px solid #6B8F50;
+    margin: 0px auto;
+}
+
+#serendipity_banner {
+    margin: 0;
+    height: 100px;
+    background: #224c03;
+    border: 0px;
+}
+
+#serendipity_banner h1 {
+    font-family: georgia,"times new roman", serif;
+    font-size: 190%;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    padding: 0.25em;
+}
+
+#serendipity_banner h2 {
+    font-weight: normal;
+    font-size: 140%;
+    text-transform: uppercase;
+    letter-spacing: .3em;
+    padding: 0.25em;
+}
+
+#serendipity_banner a { 
+    color: #DFD7C3;
+    text-decoration: none; 
+}
+
+#serendipity_below_banner {
+    /* not used in this template */
+}
+
+#sitenav {
+    background-color: #DFD7C3;
+    border-top: 2px solid #6B8F50;
+    border-bottom: 4px solid #AFA283;
+    margin: 0;
+    padding: 0;
+}
+
+#sitenav ul li {
+    font-family: georgia,"times new roman", serif;
+    font-size: 90%;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    margin: 0;
+    padding: 0; 
+    display: inline;
+}
+
+#sitenav ul a{
+    border-bottom: 4px solid #dfd7c3;
+    margin: 0 2px 0 0;
+    padding: 6px 10px 6px 10px;
+    float: left;
+    overflow: hidden;
+}
+
+#sitenav ul a:hover,
+#sitenav .currentpage a {
+    border-bottom: 4px solid #6B8F50;
+    padding: 6px 10px 6px 10px;
+    background-color: #DFD7C3;
+}
+
+#serendipityLeftSideBar,
+#serendipityLeftSideBarLeft,
+#serendipityRightSideBarLeft,
+#serendipityRightSideBar,
+#serendipityLeftSideBarRight, 
+#serendipityRightSideBarRight {
+    background-color: #D8CAA8;
+    overflow: hidden; 
+}
+
+#content {
+    background-color: #D8CAA8;
+}
+
+#content h3 {
+    font-family: georgia,"times new roman", serif;
+    font-size: 100%;
+    margin: 10px 0 0 0;
+}
+
+#content h4 {
+    font-family: georgia,"times new roman", serif;
+    text-transform: uppercase;
+    font-size: 120%;
+    letter-spacing: 0.2em;
+    margin: 5px 0 15px 0;
+}
+
+.serendipity_entryFooter {
+    font-size: 90%;
+    margin: 5px 0;
+    padding: 8px 0;
+    border-top: 1px solid #AFA283;
+    border-bottom: 1px solid #AFA283;
+}
+
+.serendipity_pageFooter {
+    margin: 5px 0 10px;
+}
+
+.serendipitySideBarItem {
+    margin: 10px;
+    padding: 0;
+    border: 0px none;
+    overflow: hidden;
+    height: 100%; 
+}
+
+.serendipitySideBarTitle {
+    font-family: georgia,"times new roman", serif;
+    text-transform: uppercase;
+    font-size: 95%;
+    letter-spacing: .2em;
+    color: #DFD7C3;
+    background-color: #224c03;
+    padding: 8px 5px;
+    border-left: 4px solid #6B8F50;
+    margin: 0;
+}
+
+.serendipitySideBarContent {
+    font-size: 90%;
+    background-color: #DFD7C3;
+    padding: 10px;
+    border-left: 4px solid #AFA283;
+    margin: 0;
+}
+
+.serendipitySideBarFooter {
+    /* not used in this template */
+}
+
+#sbsitenav {
+    padding: 10px;
+    margin: 0;
+}
+
+#sbsitenav ul{
+    margin: 0;
+    list-style-type: none;
+}
+
+
+#sbsitenav ul a {
+    border-left: 4px solid #AFA283;
+    padding: 8px 0px 8px 10px;
+    display: block;
+}
+
+#sbsitenav ul a:hover,
+#sbsitenav .currentpage a  {
+    border-left: 4px solid #6B8F50;
+}
+
+#sbsitenav li {
+    font-family: georgia,"times new roman", serif; 
+    font-size: 90%;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    background-color: #DFD7C3;
+    margin: 0 0 2px 0;
+    padding: 0;
+    overflow: hidden;
+}
+
+#month,
+.serendipity_weekDayName, 
+#today  {
+    font-family: georgia,"times new roman", serif;
+    font-size: 100%;
+}
+
+#footer {
+    font-size: 80%;
+    background-color: #6B8F50;
+}
+
+#footer a:hover {
+    color: #224c03;
+}
+
+img.serendipity_entryIcon {
+    float: left;
+    border: 0px;
+    margin:0 5px 0px 0;
+}
+
+input#serendipityQuickSearchTermField {
+    border: 1px solid #224c03!important;
+}
+
+#navbarsearchform input {
+    border: 1px solid #224c03;
+}
+
+blockquote {
+    display: list-item;
+    list-style-image: url('img/green_openquote.png');
+    background: transparent url('img/green_closequote.png') 100% 100% no-repeat;
+    color: #000;
+    margin: 0 10%;
+    padding: 10px;
+}
+
+.serendipity_comment_author_self comment_evenbox,
+.comment_evenbox {
+    line-height: 1.2em;   
+    border: 1px dotted #6B8F50;
+    background: #DFD7C3;
+}
+
+.serendipity_comment_author_self comment_oddbox,
+.comment_oddbox {
+    line-height: 1.2em;
+    border: 1px dotted #6B8F50;
+    background: #AFA283;
+}
+
+.serendipity_commentsTitle {
+    font-family: georgia,"times new roman", serif;
+    text-transform: uppercase;
+    font-size: 100%;
+    letter-spacing: 0.2em;
+    margin: 1em 0;
+    padding: 0.5em 0;
+}
+
+.serendipity_freetag_taglist_related {
+    font-family: georgia,"times new roman", serif;
+    font-size: 100%;
+}
+
+.s9y_wrap {
+    font-size: 69%;
+    background: #d8caa8;
+}
\ No newline at end of file
diff --git a/templates/bulletproof/ie6.css b/templates/bulletproof/ie6.css
new file mode 100644 (file)
index 0000000..62b86f1
--- /dev/null
@@ -0,0 +1,8 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Additional IE 6 stylesheet                                         */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
diff --git a/templates/bulletproof/ie7.css b/templates/bulletproof/ie7.css
new file mode 100644 (file)
index 0000000..0479093
--- /dev/null
@@ -0,0 +1,8 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Additional IE 7 stylesheet                                         */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
diff --git a/templates/bulletproof/img/back.png b/templates/bulletproof/img/back.png
new file mode 100644 (file)
index 0000000..79ac172
Binary files /dev/null and b/templates/bulletproof/img/back.png differ
diff --git a/templates/bulletproof/img/blank.png b/templates/bulletproof/img/blank.png
new file mode 100644 (file)
index 0000000..42ce15e
Binary files /dev/null and b/templates/bulletproof/img/blank.png differ
diff --git a/templates/bulletproof/img/blank_back.png b/templates/bulletproof/img/blank_back.png
new file mode 100644 (file)
index 0000000..79ac172
Binary files /dev/null and b/templates/bulletproof/img/blank_back.png differ
diff --git a/templates/bulletproof/img/blank_forward.png b/templates/bulletproof/img/blank_forward.png
new file mode 100644 (file)
index 0000000..6408fd4
Binary files /dev/null and b/templates/bulletproof/img/blank_forward.png differ
diff --git a/templates/bulletproof/img/blank_graph_bar.png b/templates/bulletproof/img/blank_graph_bar.png
new file mode 100644 (file)
index 0000000..82102f7
Binary files /dev/null and b/templates/bulletproof/img/blank_graph_bar.png differ
diff --git a/templates/bulletproof/img/blue_back.png b/templates/bulletproof/img/blue_back.png
new file mode 100644 (file)
index 0000000..b6ca30c
Binary files /dev/null and b/templates/bulletproof/img/blue_back.png differ
diff --git a/templates/bulletproof/img/blue_forward.png b/templates/bulletproof/img/blue_forward.png
new file mode 100644 (file)
index 0000000..60804ee
Binary files /dev/null and b/templates/bulletproof/img/blue_forward.png differ
diff --git a/templates/bulletproof/img/blue_graph_bar.png b/templates/bulletproof/img/blue_graph_bar.png
new file mode 100644 (file)
index 0000000..9c48022
Binary files /dev/null and b/templates/bulletproof/img/blue_graph_bar.png differ
diff --git a/templates/bulletproof/img/blue_header.jpg b/templates/bulletproof/img/blue_header.jpg
new file mode 100644 (file)
index 0000000..b01d37d
Binary files /dev/null and b/templates/bulletproof/img/blue_header.jpg differ
diff --git a/templates/bulletproof/img/blue_xml.png b/templates/bulletproof/img/blue_xml.png
new file mode 100644 (file)
index 0000000..1876234
Binary files /dev/null and b/templates/bulletproof/img/blue_xml.png differ
diff --git a/templates/bulletproof/img/bulletproof_button.png b/templates/bulletproof/img/bulletproof_button.png
new file mode 100644 (file)
index 0000000..9f506d5
Binary files /dev/null and b/templates/bulletproof/img/bulletproof_button.png differ
diff --git a/templates/bulletproof/img/forward.png b/templates/bulletproof/img/forward.png
new file mode 100644 (file)
index 0000000..6408fd4
Binary files /dev/null and b/templates/bulletproof/img/forward.png differ
diff --git a/templates/bulletproof/img/graph_bar_horisontal.png b/templates/bulletproof/img/graph_bar_horisontal.png
new file mode 100644 (file)
index 0000000..82102f7
Binary files /dev/null and b/templates/bulletproof/img/graph_bar_horisontal.png differ
diff --git a/templates/bulletproof/img/green_back.png b/templates/bulletproof/img/green_back.png
new file mode 100644 (file)
index 0000000..c4320d7
Binary files /dev/null and b/templates/bulletproof/img/green_back.png differ
diff --git a/templates/bulletproof/img/green_closequote.png b/templates/bulletproof/img/green_closequote.png
new file mode 100644 (file)
index 0000000..9645c53
Binary files /dev/null and b/templates/bulletproof/img/green_closequote.png differ
diff --git a/templates/bulletproof/img/green_forward.png b/templates/bulletproof/img/green_forward.png
new file mode 100644 (file)
index 0000000..5cd5fc0
Binary files /dev/null and b/templates/bulletproof/img/green_forward.png differ
diff --git a/templates/bulletproof/img/green_graph_bar.png b/templates/bulletproof/img/green_graph_bar.png
new file mode 100644 (file)
index 0000000..befb43d
Binary files /dev/null and b/templates/bulletproof/img/green_graph_bar.png differ
diff --git a/templates/bulletproof/img/green_openquote.png b/templates/bulletproof/img/green_openquote.png
new file mode 100644 (file)
index 0000000..1683bd0
Binary files /dev/null and b/templates/bulletproof/img/green_openquote.png differ
diff --git a/templates/bulletproof/img/green_xml.png b/templates/bulletproof/img/green_xml.png
new file mode 100644 (file)
index 0000000..7e1199d
Binary files /dev/null and b/templates/bulletproof/img/green_xml.png differ
diff --git a/templates/bulletproof/img/purple_back.png b/templates/bulletproof/img/purple_back.png
new file mode 100644 (file)
index 0000000..aeb5582
Binary files /dev/null and b/templates/bulletproof/img/purple_back.png differ
diff --git a/templates/bulletproof/img/purple_body.jpg b/templates/bulletproof/img/purple_body.jpg
new file mode 100644 (file)
index 0000000..a7012b5
Binary files /dev/null and b/templates/bulletproof/img/purple_body.jpg differ
diff --git a/templates/bulletproof/img/purple_forward.png b/templates/bulletproof/img/purple_forward.png
new file mode 100644 (file)
index 0000000..00aebda
Binary files /dev/null and b/templates/bulletproof/img/purple_forward.png differ
diff --git a/templates/bulletproof/img/purple_graph_bar.png b/templates/bulletproof/img/purple_graph_bar.png
new file mode 100644 (file)
index 0000000..1981e3d
Binary files /dev/null and b/templates/bulletproof/img/purple_graph_bar.png differ
diff --git a/templates/bulletproof/img/purple_header.jpg b/templates/bulletproof/img/purple_header.jpg
new file mode 100644 (file)
index 0000000..caace11
Binary files /dev/null and b/templates/bulletproof/img/purple_header.jpg differ
diff --git a/templates/bulletproof/img/purple_nav.png b/templates/bulletproof/img/purple_nav.png
new file mode 100644 (file)
index 0000000..45a2e4a
Binary files /dev/null and b/templates/bulletproof/img/purple_nav.png differ
diff --git a/templates/bulletproof/img/purple_xml.png b/templates/bulletproof/img/purple_xml.png
new file mode 100644 (file)
index 0000000..9606626
Binary files /dev/null and b/templates/bulletproof/img/purple_xml.png differ
diff --git a/templates/bulletproof/img/quicksearch.png b/templates/bulletproof/img/quicksearch.png
new file mode 100644 (file)
index 0000000..160597f
Binary files /dev/null and b/templates/bulletproof/img/quicksearch.png differ
diff --git a/templates/bulletproof/img/s9y_banner_small.png b/templates/bulletproof/img/s9y_banner_small.png
new file mode 100644 (file)
index 0000000..7cc6a13
Binary files /dev/null and b/templates/bulletproof/img/s9y_banner_small.png differ
diff --git a/templates/bulletproof/img/xml.gif b/templates/bulletproof/img/xml.gif
new file mode 100644 (file)
index 0000000..8f7eb6a
Binary files /dev/null and b/templates/bulletproof/img/xml.gif differ
diff --git a/templates/bulletproof/index.tpl b/templates/bulletproof/index.tpl
new file mode 100644 (file)
index 0000000..ed0480d
--- /dev/null
@@ -0,0 +1,348 @@
+{if $is_embedded != true}
+{if $is_xhtml}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+{else}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+{/if}
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!-- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -->
+<head>
+   <title>{$head_title|@default:$blogTitle} {if $head_subtitle} - {$head_subtitle}{/if}</title>
+   <meta http-equiv="Content-Type" content="text/html; charset={$head_charset}" />
+   <meta name="Powered-By" content="Serendipity v.{$head_version}" />
+   <link rel="alternate"  type="application/rss+xml" title="{$blogTitle} RSS feed" href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/index.rss2" />
+   <link rel="alternate"  type="application/x.atom+xml"  title="{$blogTitle} Atom feed"  href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/atom.xml" />
+   {if $entry_id}<link rel="pingback" href="{$serendipityBaseURL}comment.php?type=pingback&amp;entry_id={$entry_id}" />{/if}
+   <link rel="shortcut icon" href="{$serendipityBaseURL}favicon.ico" />
+   <!-- base styles needed for bulletproof -->
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="base.css"}" />
+   <!-- style.css -->
+   <link rel="stylesheet" type="text/css" href="{$head_link_stylesheet}" />
+   <!--[if IE 6]>
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="ie6.css"}" />
+   <![endif]-->
+   <!--[if IE 7]>
+   <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="ie7.css"}" />
+   <![endif]-->
+   <!-- additional colorset stylesheet -->
+   <link rel="stylesheet" type="text/css" href="{$serendipityHTTPPath}templates/{$template}/{$template_option.colorset}_style.css" />
+   {if $template_option.custheader == 'true'}
+<style type="text/css">
+#serendipity_banner {ldelim}
+   background-image: url({$template_option.headerimage});
+   background-position: {$template_option.headerposhor} {$template_option.headerposver};
+{if $template_option.headertype == 'banner'}
+   background-repeat: no-repeat;
+{elseif $template_option.headertype == 'htiled'}
+   background-repeat: repeat-x;
+{elseif $template_option.headertype == 'vtiled'}
+   background-repeat: repeat-y;
+{elseif $template_option.headertype == 'btiled'}
+   background-repeat: repeat;
+{/if}
+{rdelim}
+</style>
+   {/if}
+   {if $template_option.jscolumns == 'true'}<script type="text/javascript" src="{$serendipityHTTPPath}templates/{$template}/js/p7_eqCols2_10.js"></script>{/if}
+   {serendipity_hookPlugin hook="frontend_header"}
+</head>
+
+<body{if $template_option.jscolumns == 'true'} onload="P7_equalCols2(0,{if $template_option.layouttype != '1col'}'content','DIV',{/if}'serendipityLeftSideBar','DIV','serendipityRightSideBar','DIV','serendipityLeftSideBarLeft','DIV','serendipityLeftSideBarRight','DIV')"{/if}>
+{else}{serendipity_hookPlugin hook="frontend_header"}{/if}
+{if $is_raw_mode != true}
+
+<!-- #skiplinks: these are links used to navigate quickly in text-based browsers -->
+<!--             they are of little use in modern graphical browsers, so the are -->
+<!--             hidden using CSS                                                -->
+<div id="skiplinks">
+   <ul>
+     <li><a href="skipnav">Skip to site navigation</a></li>
+     <li><a href="skipent">Skip to blog entries</a></li>
+     <li><a href="{$serendipityBaseURL}index.php?/archive">Skip to archive page</a></li>
+     <li><a href="skiplsb">Skip to left sidebar</a></li>
+     <li><a href="skiprsb">Skip to right sidebar</a></li>
+   </ul>
+</div>
+
+<!-- #wrapper: this wrapper div holds the actual blog content; it can be used to -->
+<!--           give the blog a width in px or % plus an additional max-width in  -->
+<!--           order to limit the width in high resolutions to limit the length  -->
+<!--           of a line                                                         -->
+<div id="wrapper">
+
+{if $template_option.sitenavpos == 'above'}
+<!-- #sitenav: this holds a list of navigational links which can be customized   -->
+<!--           in the theme configurator                                         -->
+<div id="sitenav" class="snabove">
+   <a name="skipnav"></a>
+   <ul>
+     {foreach from=$navlinks item="navlink" name=navbar}
+     <li{if $currpage == $navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>
+     {/foreach}
+   </ul>
+<!-- quicksearch option in the navigational link menu bar only when navbar is    -->
+<!-- above or below the banner                                                   -->
+   {if $template_option.sitenav_quicksearch == 'true'}
+       <form id="navbarsearchform" action="{$serendipityBaseURL}" method="get"><input type="hidden" name="serendipity[action]" value="search" /><input alt="Quicksearch" type="text" name="serendipity[searchTerm]" value="{$CONST.QUICKSEARCH}..." onfocus="if(this.value=='{$CONST.QUICKSEARCH}...')value=''" onblur="if(this.value=='')value='{$CONST.QUICKSEARCH}...';" /></form>
+   {/if}
+</div>
+{/if}
+
+<!-- #serendipity_banner: this is the header area. it holds the blog title and   -->
+<!--                      description headlines                                  -->
+<div id="serendipity_banner">
+    <h1><span class="{if $template_option.firbtitle == 'false'}in{/if}visible"><a class="homelink1" href="{$serendipityBaseURL}">{$head_title|@default:$blogTitle|truncate:80:" ..."}</a></span></h1>
+    <h2><span class="{if $template_option.firbdescr == 'false'}in{/if}visible"><a class="homelink2" href="{$serendipityBaseURL}">{$head_subtitle|@default:$blogDescription}</a></span></h2>
+</div>
+<div id="serendipity_below_banner"></div>
+
+{if $template_option.sitenavpos == 'below'}
+<!-- #sitenav: this holds a list of navigational links which can be customized   -->
+<!--           in the theme configurator                                         -->
+<div id="sitenav" class="snbelow">
+   <a name="skipnav"></a>
+   <ul>
+     {foreach from=$navlinks item="navlink"}
+     <li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>
+     {/foreach}
+   </ul>
+<!-- quicksearch option in the navigational link menu bar only when navbar is    -->
+<!-- above or below the banner                                                   -->
+   {if $template_option.sitenav_quicksearch == 'true'}
+       <form id="navbarsearchform" action="{$serendipityBaseURL}" method="get"><input type="hidden" name="serendipity[action]" value="search" /><input alt="Quicksearch" type="text" name="serendipity[searchTerm]" value="{$CONST.QUICKSEARCH}..." onfocus="if(this.value=='{$CONST.QUICKSEARCH}...')value=''" onblur="if(this.value=='')value='{$CONST.QUICKSEARCH}...';" /></form>
+   {/if}
+</div>
+{/if}
+
+<!-- this is the actual content of the blog, entries column plus one or two      -->
+<!-- sidebars, depending on how users configure their sidebar plugins            -->
+
+{if $template_option.layouttype == '3sbs'}
+<!-- case 1: 3 columns, sidebar-content-sidebar -->
+<div id="serendipityLeftSideBar" class="threeside">
+   <a name="skiplsb"></a>
+{if $template_option.sitenavpos == 'left'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+</div>
+<div id="content" class="threemain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+<div id="serendipityRightSideBar" class="threeside">
+   <a name="skiprsb"></a>
+{if $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="right"}
+</div>
+{/if}
+
+{if $template_option.layouttype == '3bss'}
+<!-- case 2: 3 columns, content-sidebar-sidebar -->
+<div id="content" class="threemain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+<div id="serendipityLeftSideBar" class="threeside">
+   <a name="skiplsb"></a>
+{if $template_option.sitenavpos == 'left'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+</div>
+<div id="serendipityRightSideBar" class="threeside">
+   <a name="skiprsb"></a>
+{if $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="right"}
+</div>
+{/if}
+
+{if $template_option.layouttype == '3ssb'}
+<!-- case 3: 3 columns, sidebar-sidebar-content -->
+<div id="serendipityLeftSideBarLeft" class="threeside">
+   <a name="skiplsb"></a>
+{if $template_option.sitenavpos == 'left'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+</div>
+<div id="serendipityLeftSideBarRight" class="threeside">
+   <a name="skiprsb"></a>
+{if $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="right"}
+</div>
+<div id="content" class="threemain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+{/if}
+
+{if $template_option.layouttype == '2sb'}
+<!-- case 4: 2 columns, left sidebar only -->
+<div id="serendipityLeftSideBar" class="twoside">
+   <a name="skiplsb"></a>
+{if $template_option.sitenavpos == 'left' or $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+   {serendipity_printSidebar side="right"}
+</div>
+<div id="content" class="twomain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+{/if}
+
+{if $template_option.layouttype == '2bs'}
+<!-- case 5: 2 columns, right sidebar only -->
+<div id="content" class="twomain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+<div id="serendipityRightSideBar" class="twoside">
+   <a name="skiprsb"></a>
+{if $template_option.sitenavpos == 'left' or $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+   {serendipity_printSidebar side="right"}
+</div>
+{/if}
+
+{if $template_option.layouttype == '1col'}
+<!-- case 6: 1 column, sidebar(s) below -->
+<div id="content" class="onemain">
+   <a name="skipent"></a>
+   {$CONTENT}
+</div>
+
+{if $leftSidebarElements > 0}
+<div id="serendipityLeftSideBarLeft" {if $rightSidebarElements > 0}class="oneside"{else}class="onefull"{/if}>
+   <a name="skiplsb"></a>
+{if $template_option.sitenavpos == 'left'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="left"}
+</div>
+{/if}
+
+{if $rightSidebarElements > 0}
+<div id="serendipityRightSideBar" {if $leftSidebarElements > 0}class="oneside"{else}class="onefull"{/if}>
+   <a name="skiprsb"></a>
+{if $template_option.sitenavpos == 'right'}
+<!-- #sbsitenav: like #sitenav, but placed within the sidebar                    -->
+   <div id="sbsitenav" class="serendipitySideBarItem">
+      <a name="skipnav"></a>
+      <h3 class="serendipitySideBarTitle">{$template_option.sitenav_sidebar_title}</h3>
+      <!-- the line below must remain as a single uninterrupted line to display correctly in ie6 -->
+      <ul>{foreach from=$navlinks item="navlink"}<li{if $currpage==$navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>{/foreach}</ul>
+      <div class="serendipitySideBarFooter"></div>
+   </div>
+{/if}
+   {serendipity_printSidebar side="right"}
+</div>
+{/if}
+{/if}
+
+<!-- #footer: the page footer can be used for additional information             -->
+<div id="footer">
+{if $template_option.footer_text_toggle == 'true'}
+   <p>{$template_option.footer_text}</p>
+{/if}
+   <div id="serendipity_bulletproof_button"><a href="http://s9y-bulletproof.com" title="Based on the s9y Bulletproof template framework"><img src="{$serendipityHTTPPath}templates/{$template}/img/bulletproof_button.png" alt="Based on the s9y Bulletproof template framework" width="100" height="28" /></a></div>
+   <div id="serendipity_credit_line">{$CONST.POWERED_BY} <a href="http://www.s9y.org">s9y</a> &ndash; Template by <a href="http://s9y-bulletproof.com">Bulletproof development team</a>.</div>
+{if $template_option.counter_code_toggle == 'true'}
+   <div class="counter_code">{$template_option.counter_code}</div>
+{/if}
+<!-- option to display navigation links in the footer                            -->
+{if ($template_option.sitenavpos != 'none' and $template_option.sitenav_footer == 'true')}
+   <div id="footer_sitenav">
+   <ul>
+{foreach from=$navlinks item="navlink" name=navbar}
+     <li{if $currpage == $navlink.href} class="currentpage"{/if}><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>
+{/foreach}
+   </ul>
+   </div>
+{/if}
+</div>
+</div>
+{/if}
+
+{$raw_data}
+{serendipity_hookPlugin hook="frontend_footer"}
+{if $is_embedded != true}
+</body>
+</html>
+{/if}
diff --git a/templates/bulletproof/info.txt b/templates/bulletproof/info.txt
new file mode 100644 (file)
index 0000000..4316267
--- /dev/null
@@ -0,0 +1,4 @@
+Name: Bulletproof v1.0 (s9y-bulletproof.com)
+Author: Bulletproof development team
+Date: 2007-08-23
+Require Serendipity: 1.2
diff --git a/templates/bulletproof/js/p7_eqCols2_10.js b/templates/bulletproof/js/p7_eqCols2_10.js
new file mode 100644 (file)
index 0000000..9a06716
--- /dev/null
@@ -0,0 +1,33 @@
+/* \r
+  ------------------------------------------------\r
+  PVII Equal CSS Columns scripts -Version 2\r
+  Copyright (c) 2005 Project Seven Development\r
+  www.projectseven.com\r
+  Version: 2.1.0\r
+  ------------------------------------------------\r
+*/\r
+function P7_colH2(){ //v2.1.0 by PVII-www.projectseven.com\r
+ var i,oh,h=0,tg,el,np,dA=document.p7eqc,an=document.p7eqa;if(dA&&dA.length){\r
+ for(i=1;i<dA.length;i+=2){dA[i+1].style.paddingBottom='';}for(i=1;i<dA.length;i+=2){\r
+ oh=dA[i].offsetHeight;h=(oh>h)?oh:h;}for(i=1;i<dA.length;i+=2){oh=dA[i].offsetHeight;\r
+ if(oh<h){np=h-oh;if(!an&&dA[0]==1){P7_eqA2(dA[i+1].id,0,np);}else{\r
+ dA[i+1].style.paddingBottom=np+"px";}}}document.p7eqa=1;\r
+ document.p7eqth=document.body.offsetHeight;\r
+ document.p7eqtw=document.body.offsetWidth;}\r
+}\r
+function P7_eqT2(){ //v2.1.0 by PVII-www.projectseven.com\r
+ if(document.p7eqth!=document.body.offsetHeight||document.p7eqtw!=document.body.offsetWidth){P7_colH2();}\r
+}\r
+function P7_equalCols2(){ //v2.1.0 by PVII-www.projectseven.com\r
+ var c,e,el;if(document.getElementById){document.p7eqc=new Array();\r
+ document.p7eqc[0]=arguments[0];for(i=1;i<arguments.length;i+=2){el=null;\r
+ c=document.getElementById(arguments[i]);if(c){e=c.getElementsByTagName(arguments[i+1]);\r
+ if(e){el=e[e.length-1];if(!el.id){el.id="p7eq"+i;}}}if(c&&el){\r
+ document.p7eqc[document.p7eqc.length]=c;document.p7eqc[document.p7eqc.length]=el}}\r
+ setInterval("P7_eqT2()",10);}\r
+}\r
+function P7_eqA2(el,p,pt){ //v2.1.0 by PVII-www.projectseven.com\r
+ var sp=10,inc=20,g=document.getElementById(el);np=(p>=pt)?pt:p;\r
+ g.style.paddingBottom=np+"px";if(np<pt){np+=inc;\r
+ setTimeout("P7_eqA2('"+el+"',"+np+","+pt+")",sp);}\r
+}
\ No newline at end of file
diff --git a/templates/bulletproof/lang_de.inc.php b/templates/bulletproof/lang_de.inc.php
new file mode 100644 (file)
index 0000000..0eac61c
--- /dev/null
@@ -0,0 +1,66 @@
+<?php\r
+// Colorsets\r
+@define('THEME_COLORSET', 'Farbwahl');\r
+@define('BP_COLORSET_DEF', 'Leer');\r
+@define('BP_COLORSET_OPT1', 'Violett');\r
+@define('BP_COLORSET_OPT2', 'Blau');\r
+@define('BP_COLORSET_OPT3', 'Grün');\r
+// Layout\r
+@define('LAYOUT_TYPE','Layout des Blogs (B = Blogeinträge, S = Seitenleiste, CF = Content first)');\r
+@define('LAYOUT_SBS','Dreispaltig S-B-S');\r
+@define('LAYOUT_BSS','Dreispaltig, B-S-S, CF');\r
+@define('LAYOUT_SSB','Dreispaltig, S-S-B');\r
+@define('LAYOUT_SB','Zweispaltig, Seitenleiste links');\r
+@define('LAYOUT_BS','Zweispaltig, Seitenleiste rechts, CF');\r
+@define('LAYOUT_SC','Einspaltig, Seitenleiste(n) unten, CF');\r
+@define('JAVASCRIPT_COLUMNS','Gleich lange Spalten Ã¼ber Javascript erzeugen (Kann den Seitenaufbau verzögern.)');\r
+// Custom header\r
+@define('BP_CUSTOM_HEADER','Eigene Header-Grafik aus der Mediendatenbank verwenden');\r
+@define('BP_HEADER_IMAGE','Auswahl der Header-Grafik');\r
+@define('BP_HEADER_TYPE','Kachelung der Header-Grafik');\r
+@define('BP_HEADER_BANNER', 'Banner (nicht gekachelt)');\r
+@define('BP_HEADER_HTILED', 'Horizontal gekachelt');\r
+@define('BP_HEADER_VTILED', 'Vertikal gekachelt');\r
+@define('BP_HEADER_BTILED', 'Horizontal und vertikal gekachelt');\r
+@define('BP_HEADER_POSHOR', 'Horizontale Ausrichtung');\r
+@define('BP_HEADER_POSVER', 'Vertikale Ausrichtung');\r
+@define('BP_CENTER', 'zentriert');\r
+@define('BP_TOP', 'oben');\r
+@define('BP_BOTTOM', 'unten');\r
+// Fahrner Image Replacement\r
+@define('FIR_BTITLE','Blogtitel im Header anzeigen');\r
+@define('FIR_BDESCR','Blogbeschreibung im Header anzeigen');\r
+// Date format\r
+@define('BP_DATE_FORMAT', 'Datumsformat');\r
+// Entry footer\r
+@define('ENTRY_FOOTER_POS','Position des Eintragsfußes');\r
+@define('BELOW_ENTRY','Unter dem Eintrag');\r
+@define('BELOW_TITLE','Unter dem Titel des Eintrags');\r
+@define('SPLIT_FOOTER','Aufgeteilter Eintragsfuß');\r
+@define('FOOTER_AUTHOR','Verfasser im Eintragsfuß anzeigen');\r
+@define('FOOTER_CATEGORIES','Kategorie(n) im Eintragsfuß anzeigen');\r
+@define('FOOTER_TIMESTAMP','Zeitstempel im Eintragsfuß anzeigen');\r
+@define('FOOTER_COMMENTS','Anzahl der Kommentare im Eintragsfuß anzeigen');\r
+@define('FOOTER_TRACKBACKS','Anzahl der Trackbacks im Eintragsfuß anzeigen');\r
+// coComment support\r
+@define('COCOMMENT_ACTIVE','coComment (http://www.cocomment.com) in Kommentarformulare einbinden');\r
+// Counter code\r
+@define('COUNTER_CODE', 'Code für Counter und/oder Statistik-Tools einfügen');\r
+@define('USE_COUNTER', 'Oben eingegeben Counter-Code in das Blog einbinden');\r
+// Additional footer text\r
+@define('FOOTER_TEXT', 'Hier zusätzlichen Text, der im Seitenfuss erscheinen soll, einfügen.');\r
+@define('USE_FOOTER_TEXT', 'Oben eingegebenen Text einbinden');\r
+//Sitenav\r
+@define('SITENAV_POSITION','Darstellung der Navigationsleiste');\r
+@define('SITENAV_NONE','Keine Navigationsleiste');\r
+@define('SITENAV_ABOVE','Über dem Kopfbereich');\r
+@define('SITENAV_BELOW','Unter dem Kopfbereich');\r
+@define('SITENAV_LEFT','Oben in der linken Seitenleiste');\r
+@define('SITENAV_RIGHT','Oben in der rechten Seitenleiste');\r
+@define('SITENAV_FOOTER','Links der Navigationleiste zusätzlich im Seitenfuss anzeigen (werden nicht angezeigt, wenn oben "Keine Navigationsleiste" ausgewählt wurde)');\r
+@define('SITENAV_QUICKSEARCH','Suchfeld in der Navigationsleiste anzeigen (funktioniert nur, wenn Navigationsleiste Ã¼ber oder unter dem Kopfbereich; Anzeige des entsprechenden Seitenleistenplugins wird automatisch unterdrückt)');\r
+@define('SITENAV_TITLE','Titel des Navigations-Menüs (nur bei Anzeige in der Seitenleiste');\r
+@define('SITENAV_TITLE_TEXT','Hauptmenü');\r
+@define('NAVLINK_AMOUNT', 'Anzahl der Links in der Navigationsleiste (Styles verwalten-Seite muss danach neu geladen werden)');\r
+@define('NAV_LINK_TEXT', 'Text des Navigationsleisten-Links');\r
+@define('NAV_LINK_URL', 'URL des Navigationsleisten-Links');\r
diff --git a/templates/bulletproof/lang_en.inc.php b/templates/bulletproof/lang_en.inc.php
new file mode 100644 (file)
index 0000000..87cb4a2
--- /dev/null
@@ -0,0 +1,66 @@
+<?php\r
+// Colorsets\r
+@define('THEME_COLORSET', 'Colorset');\r
+@define('BP_COLORSET_DEF', 'Blank');\r
+@define('BP_COLORSET_OPT1', 'Purple');\r
+@define('BP_COLORSET_OPT2', 'Blue');\r
+@define('BP_COLORSET_OPT3', 'Green');\r
+// Layout\r
+@define('LAYOUT_TYPE','Blog layout (B = Blog entriee, S = Sidebar, CF = Content first)');\r
+@define('LAYOUT_SBS','Three columns S-B-S');\r
+@define('LAYOUT_BSS','Three columns, B-S-S, CF');\r
+@define('LAYOUT_SSB','Three columns, S-S-B');\r
+@define('LAYOUT_SB','Two columns, S-B');\r
+@define('LAYOUT_BS','Two columns, B-S, CF');\r
+@define('LAYOUT_SC','One column, sidebars below, CF');\r
+@define('JAVASCRIPT_COLUMNS','Generate equal heights columns using javascript (May slow down page rendering a little.)');\r
+// Custom header\r
+@define('BP_CUSTOM_HEADER','Custom header image from media database');\r
+@define('BP_HEADER_IMAGE','Choose image');\r
+@define('BP_HEADER_TYPE','Tiling of header image');\r
+@define('BP_HEADER_BANNER', 'Banner (no tiling)');\r
+@define('BP_HEADER_HTILED', 'Horizontally tiled');\r
+@define('BP_HEADER_VTILED', 'Vertically tiled');\r
+@define('BP_HEADER_BTILED', 'Tiles horizontally and vertically');\r
+@define('BP_HEADER_POSHOR', 'Horizontal alignment');\r
+@define('BP_HEADER_POSVER', 'Vertical alignment');\r
+@define('BP_CENTER', 'centered');\r
+@define('BP_TOP', 'top');\r
+@define('BP_BOTTOM', 'bottom');\r
+// Fahrner Image Replacement\r
+@define('FIR_BTITLE','Show blog title in the header');\r
+@define('FIR_BDESCR','Show blog description in the header');\r
+// Date format\r
+@define('BP_DATE_FORMAT', 'Date format');\r
+// Entry footer\r
+@define('ENTRY_FOOTER_POS','Position of the entry footer');\r
+@define('BELOW_ENTRY','Below the entry');\r
+@define('BELOW_TITLE','Below the entry title');\r
+@define('SPLIT_FOOTER','Split entry footer');\r
+@define('FOOTER_AUTHOR','Show author in the entry footer');\r
+@define('FOOTER_CATEGORIES','Show categories in the entry footer');\r
+@define('FOOTER_TIMESTAMP','Show timestamp in the entry footer');\r
+@define('FOOTER_COMMENTS','Show number of comments in the entry footer');\r
+@define('FOOTER_TRACKBACKS','Show number of trackback in the entry footer');\r
+// coComment support\r
+@define('COCOMMENT_ACTIVE','Integrate coComment (http://www.cocomment.com) into comment form');\r
+// Counter code\r
+@define('COUNTER_CODE', 'Insert code for counter and/or web stat tool');\r
+@define('USE_COUNTER', 'Choose whether to use counter code inserted above');\r
+// Additional footer text\r
+@define('FOOTER_TEXT', 'Use this to insert additional text into the page footer');\r
+@define('USE_FOOTER_TEXT', 'Integrate footer text');\r
+//Sitenav\r
+@define('SITENAV_POSITION','Position of the navbar');\r
+@define('SITENAV_NONE','No navbar');\r
+@define('SITENAV_ABOVE','Above the banner');\r
+@define('SITENAV_BELOW','Below the banner');\r
+@define('SITENAV_LEFT','At the top of the left sidebar');\r
+@define('SITENAV_RIGHT','At the top of the right sidebar');\r
+@define('SITENAV_FOOTER','Also show navigation links in the footer (not displayed regardless of choice if "No navbar" is selected above)');\r
+@define('SITENAV_QUICKSEARCH','Show quicksearch in the navbar (only works in navbar above or below banner; quicksearch sidebar item will be suppressed automagically)');\r
+@define('SITENAV_TITLE','Title for navigation menu (only displayed when located at the top of a sidebar)');\r
+@define('SITENAV_TITLE_TEXT','Main menu');\r
+@define('NAVLINK_AMOUNT', 'Enter number of links in the navbar (needs reload of the Manage Styles page)');\r
+@define('NAV_LINK_TEXT', 'Enter the navbar link text');\r
+@define('NAV_LINK_URL', 'Enter the full URL of your link');\r
diff --git a/templates/bulletproof/plugin_calendar.tpl b/templates/bulletproof/plugin_calendar.tpl
new file mode 100644 (file)
index 0000000..c3378c3
--- /dev/null
@@ -0,0 +1,52 @@
+<table cellspacing="0" cellpadding="0" summary="this table is a calendar for the month of {$smarty.now|@formatTime:"%B, %Y"}" class="serendipity_calendar">\r
+    <thead>\r
+      <tr>\r
+        <th id="back" scope="col" colspan="1" class="serendipity_calendarHeader" style="text-align: right">\r
+        {if $plugin_calendar_head.minScroll le $plugin_calendar_head.month_date}\r
+           {if $template_option.colorset == 'default'}\r
+           <a title="{$CONST.BACK}" href="{$plugin_calendar_head.uri_previous}"><img alt="{$CONST.BACK}" src="{serendipity_getFile file="img/back.png"}" width="12" height="12" /></a>\r
+           {else}\r
+           <a title="{$CONST.BACK}" href="{$plugin_calendar_head.uri_previous}"><img alt="{$CONST.BACK}" src="{$serendipityHTTPPath}templates/{$template}/img/{$template_option.colorset}_back.png" width="12" height="12" /></a>\r
+           {/if}\r
+        {else}\r
+           <img alt="" src="{serendipity_getFile file="img/blank.png"}" width="6" height="6" class="serendipity_calender_spacer" />\r
+        {/if}\r
+        </th>\r
+\r
+        <th id="month" scope="col" colspan="5" class="serendipity_calendarHeader" style="text-align: center">\r
+            <b><a style="white-space: nowrap" href="{$plugin_calendar_head.uri_month}">{$plugin_calendar_head.month_date|formatTime:"%B '%y":false}</a></b>\r
+        </th>\r
+\r
+        <th id="forward" scope="col" colspan="1" class="serendipity_calendarHeader" style="text-align: left">\r
+        {if $plugin_calendar_head.maxScroll ge $plugin_calendar_head.month_date}\r
+            {if $template_option.colorset == 'default'}\r
+            <a title="{$CONST.FORWARD}" href="{$plugin_calendar_head.uri_next}"><img alt="{$CONST.FORWARD}" src="{serendipity_getFile file="img/forward.png"}" width="12" height="12" /></a>\r
+            {else}\r
+            <a title="{$CONST.FORWARD}" href="{$plugin_calendar_head.uri_next}"><img alt="{$CONST.FORWARD}" src="{$serendipityHTTPPath}templates/{$template}/img/{$template_option.colorset}_forward.png" width="12" height="12" /></a>\r
+            {/if}\r
+        {else}\r
+            <img alt="" src="{serendipity_getFile file="img/blank.png"}" width="6" height="6" class="serendipity_calender_spacer" />\r
+        {/if}\r
+        </th>\r
+    </tr>\r
+\r
+    <tr>\r
+    {foreach from=$plugin_calendar_dow item="dow"}\r
+        <th id="{$dow.date|@formatTime:"%a":false|@truncate:3:'':true}" scope="col" abbr="{$dow.date|@formatTime:"%A":false}" title="{$dow.date|@formatTime:"%A":false}" class="serendipity_weekDayName" align="center">{$dow.date|@formatTime:"%a":false|@truncate:2:'':true}</th>\r
+    {/foreach}\r
+    </tr>\r
+</thead>\r
+<tfoot class="serendipity_calendarHeader">\r
+<tr><td id="today" scope="col" colspan="7">{$smarty.now|@formatTime:"%a %B %e %Y"}</td></tr>\r
+</tfoot>\r
+<tbody>\r
+    {foreach from=$plugin_calendar_weeks item="week"}\r
+        <tr class="serendipity_calendar">\r
+        {foreach from=$week.days item="day"}\r
+            <td class="serendipity_calendarDay {$day.classes}"{if isset($day.properties.Title)} title="{$day.properties.Title}"{/if}>{if isset($day.properties.Active) and $day.properties.Active}\r
+                               <a href="{$day.properties.Link}">{/if}{$day.name|@default:"&#160;"}{if isset($day.properties.Active) and $day.properties.Active}</a>{/if}</td>\r
+        {/foreach}\r
+        </tr>\r
+    {/foreach}\r
+</tbody>\r
+</table>\r
diff --git a/templates/bulletproof/plugin_contactform.tpl b/templates/bulletproof/plugin_contactform.tpl
new file mode 100644 (file)
index 0000000..ddd3c5b
--- /dev/null
@@ -0,0 +1,64 @@
+{if $plugin_contactform_articleformat}
+   <div class="serendipity_Entry_Date">
+       <h3 class="serendipity_date">{$plugin_contactform_name}</h3>
+       <div class="serendipity_entry">
+           <div class="serendipity_entry_body">
+{/if}
+
+{if $is_contactform_error}
+   <div class="serendipity_center serendipity_msg_important">{$plugin_contactform_error}</div>
+   <!-- Needed for Captchas -->
+   {foreach from=$comments_messagestack item="message"}
+   <div class="serendipity_center serendipity_msg_important">{$message}</div>
+   {/foreach}
+{/if}
+
+{if (empty($is_contactform_sent))}
+   <div>{$plugin_contactform_preface}</div>
+{/if}
+
+{if $is_contactform_sent}
+   <div class="serendipity_center serendipity_msg_notice">{$plugin_contactform_sent}</div>
+{else}
+
+<!-- This whole commentform style, including field names is needed -->
+<!-- for Captchas. The spamblock plugin relies on the field names  -->
+<!-- [name], [email], [url], [comment]!                            -->
+
+<div class="serendipityCommentForm">
+    <a id="serendipity_CommentForm"></a>
+    <form id="serendipity_comment_CommentForm" action="{$commentform_action}#feedback" method="post">
+        <div>
+            <input type="hidden" name="serendipity[subpage]" value="{$commentform_sname}" />
+            <input type="hidden" name="serendipity[commentform]" value="true" />
+       </div>
+        <fieldset>
+            <legend><a href="#">{$plugin_contactform_pagetitle}</a></legend>
+            <dl>
+                <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_name">{$CONST.NAME}</label></dt>
+                    <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_name" name="serendipity[name]" value="{$commentform_name}" size="30" /></dd>
+                <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_email">{$CONST.EMAIL}</label></dt>
+                    <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_email" name="serendipity[email]" value="{$commentform_email}" /></dd>
+                <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_url">{$CONST.HOMEPAGE}</label></dt>
+                    <dd class="serendipity_commentsValue"><input class="frm" type="text" id="serendipity_commentform_url" name="serendipity[url]" value="{$commentform_url}" /></dd>
+                <dt class="serendipity_commentsLabel"><label for="serendipity_commentform_comment">{$plugin_contactform_message}</label></dt>
+                    <dd class="serendipity_commentsValue">
+                        <textarea class="frm" rows="10" cols="40" id="serendipity_commentform_comment" name="serendipity[comment]">{$commentform_data}</textarea>
+<!-- This is where the spamblock/Captcha plugin is called -->
+                        {serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}
+                    </dd>
+                <dt>&#160;</dt>
+                <dd>
+                    <input class="frm" type="submit" name="serendipity[submit]" value="{$CONST.SUBMIT_COMMENT}" />
+                </dd>
+            </dl>
+        </fieldset>
+    </form>
+</div>
+{/if}
+
+{if $plugin_contactform_articleformat}
+            </div>
+        </div>
+    </div>
+{/if}
diff --git a/templates/bulletproof/plugin_dynamicform.tpl b/templates/bulletproof/plugin_dynamicform.tpl
new file mode 100644 (file)
index 0000000..97e7627
--- /dev/null
@@ -0,0 +1,91 @@
+{if $plugin_contactform_articleformat}
+   <div class="serendipity_Entry_Date">
+       <h3 class="serendipity_date">{$plugin_contactform_name}</h3>
+       <div class="serendipity_entry">
+           <div class="serendipity_entry_body">
+{/if}
+
+{if $is_contactform_error}
+   <div class="serendipity_center serendipity_msg_important">{$plugin_contactform_error}</div>
+   <!-- Needed for Captchas -->
+   {foreach from=$comments_messagestack item="message"}
+      <div class="serendipity_center serendipity_msg_important">{$message}</div>
+   {/foreach}
+{/if}
+
+{if (empty($is_contactform_sent))}
+   <div>{$plugin_contactform_preface}</div>
+{/if}
+
+{if $is_contactform_sent}
+    <div class="serendipity_center serendipity_msg_notice">{$plugin_contactform_sent}</div>
+{else}
+
+<!-- This whole commentform style, including field names is needed -->
+<!-- for Captchas. The spamblock plugin relies on the field names  -->
+<!-- [name], [email], [url], [comment]!                            -->
+
+<div class="serendipityCommentForm">
+    <a id="serendipity_CommentForm"></a>
+    <form id="serendipity_comment_CommentForm" action="{$commentform_action}#feedback" method="post">
+        <div>
+            <input type="hidden" name="serendipity[subpage]" value="{$commentform_sname}" />
+            <input type="hidden" name="serendipity[commentform]" value="true" />
+            {foreach name="field" from=$commentform_dynamicfields item="field"}
+                {if $field.type == "hidden"}
+                    <input type="hidden" name="serendipity[{$field.id}]" value="{$field.default}" />
+              {/if}
+            {/foreach}
+       </div>
+
+       <fieldset>
+           <legend><a href="#">{$plugin_contactform_pagetitle}</a></legend>
+           <dl>
+               {foreach name="field" from=$commentform_dynamicfields item="field"}
+                   {if $field.type != "hidden"}
+                       <dt class="serendipity_commentsLabel">
+                           {if $field.required}<sup>*</sup>{/if}<label for="serendipity_commentform_{$field.id}">{$field.name}</label>
+                       </dt>
+                       <dd class="serendipity_commentsValue">
+                           {if $field.type == "checkbox"}
+                               <input class="frm_check" type="checkbox" name="{$field.id}" id="{$field.id}" {$field.default} /><label class="frm_check_label" for="{$field.id}">{$field.message}</label>
+                           {elseif $field.type == "radio"}
+                               {foreach name="radio_option" from=$field.options item="option"}
+                                   <input class="frm_radio" type="radio" name="{$field.id}" id="{$field.id}.{$option.id}" value="{$option.value}" {$option.default} /><label class="frm_radio_label" for="{$field.id}.{$option.id}">{$option.name}</label>
+                               {/foreach}
+                           {elseif $field.type == "select"}
+                               <select name="{$field.id}">
+                                   {foreach name="radio_option" from=$field.options item="option"}
+                                       <option name="{$field.id}" id="{$field.id}.{$option.id}" value="{$option.value}" {$option.default} >{$option.name}</option>
+                                   {/foreach}
+                               </select>
+                           {elseif $field.type == "password"}
+                               <input class="frm" type="password" id="serendipity_commentform_{$field.id}" name="serendipity[{$field.id}]" value="{$field.default}" size="30" />
+                           {elseif $field.type == "textarea"}
+                               <textarea class="frm" rows="10" cols="40" id="serendipity_commentform_{$field.id}" name="serendipity[{$field.id}]">{$field.default}</textarea>
+                           {else}
+                               <input class="frm" type="text" id="serendipity_commentform_{$field.id}" name="serendipity[{$field.id}]" value="{$field.default}" size="30" />
+                           {/if}
+                       </dd>
+                   {/if}
+               {/foreach}
+               <dt>&#160;</dt>
+               <dd>
+<!-- This is where the spamblock/Captcha plugin is called -->
+                   {serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}
+               </dd>
+               <dt>&#160;</dt>
+               <dd>
+                   <input class="frm" type="submit" name="serendipity[submit]" value="{$CONST.SUBMIT_COMMENT}" />
+               </dd>
+           </dl>
+       </fieldset>
+    </form>
+</div>
+{/if}
+
+{if $plugin_contactform_articleformat}
+            </div>
+        </div>
+    </div>
+{/if}
diff --git a/templates/bulletproof/plugin_staticpage.tpl b/templates/bulletproof/plugin_staticpage.tpl
new file mode 100644 (file)
index 0000000..c5ef089
--- /dev/null
@@ -0,0 +1,72 @@
+{if $staticpage_articleformat}
+<div id="staticpage_{$staticpage_pagetitle|@makeFilename}" class="serendipity_Entry_Date serendipity_staticpage">
+    <h3 class="serendipity_date">{$staticpage_articleformattitle|@escape}</h3>
+{/if}
+
+    <h4 class="serendipity_title"><a href="#">{$staticpage_headline|@escape}</a></h4>
+
+{if $staticpage_navigation AND $staticpage_shownavi}
+    <ul class="staticpage_navigation">
+      <li class="staticpage_navigation_left"><a href="{$staticpage_navigation.prev.link}" title="prev">{$staticpage_navigation.prev.name|@escape}</a></li>
+      <li class="staticpage_navigation_center"><a href="{$staticpage_navigation.top.link}" title="top">{$staticpage_navigation.top.name|@escape}</a></li>
+      <li class="staticpage_navigation_right"><a href="{$staticpage_navigation.next.link}" title="next">{$staticpage_navigation.next.name|@escape}</a></li>
+    </ul>
+    <div class="staticpage_navigation_center">
+      {foreach name="crumbs" from=$staticpage_navigation.crumbs item="crumb"}
+      {if !$smarty.foreach.crumbs.first}&raquo;{/if}<a href="{$crumb.link}">{$crumb.name|@escape}</a>
+      {/foreach}
+    </div>
+{/if}
+
+{if $staticpage_articleformat}
+    <div class="serendipity_entry">
+        <div class="serendipity_entry_body">
+{/if}
+
+{if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass}
+        <div class="staticpage_password">{$CONST.STATICPAGE_PASSWORD_NOTICE}</div>
+        <form class="staticpage_password_form" action="{$staticpage_form_url}" method="post">
+            <div>
+                <input type="password" name="serendipity[pass]" value="" />
+                <input type="submit" name="submit" value="{$CONST.GO}" />
+             </div>
+        </form>
+{else}
+        <div class="staticpage_precontent">{$staticpage_precontent}</div>
+        {if is_array($staticpage_childpages)}
+        <ul id="staticpage_childpages">
+            {foreach from=$staticpage_childpages item="childpage"}
+            <li><a href="{$childpage.permalink|@escape}" title="{$childpage.pagetitle|@escape}">{$childpage.pagetitle|@escape}</a></li>
+            {/foreach}
+        </ul>
+        {/if}
+        <div class="staticpage_content">{$staticpage_content}</div>
+{/if}
+
+{if $staticpage_articleformat}
+        </div>
+    </div>
+</div>
+{/if}
+
+{if $staticpage_articleformat}
+<div class="serendipity_Entry_Date serendipity_staticpage">
+{/if}
+
+{if $staticpage_author}
+    <div class="staticpage_author">{$staticpage_author|@escape}</div>
+{/if}
+
+    <div class="staticpage_metainfo">
+{if $staticpage_lastchange}
+    <span class="staticpage_metainfo_lastchange">{$staticpage_lastchange|date_format:"%Y-%m-%d"}</span>
+{/if}
+
+{if $staticpage_adminlink AND $staticpage_adminlink.page_user}
+    | <a class="staticpage_metainfo_editlink" href="{$staticpage_adminlink.link_edit}">{$staticpage_adminlink.link_name|@escape}</a>
+{/if}
+
+{if $staticpage_articleformat}
+</div>
+{/if}
+    </div>
diff --git a/templates/bulletproof/plugin_staticpage_aboutpage.tpl b/templates/bulletproof/plugin_staticpage_aboutpage.tpl
new file mode 100644 (file)
index 0000000..1d6185e
--- /dev/null
@@ -0,0 +1,64 @@
+{if $staticpage_articleformat}
+<div class="serendipity_Entry_Date">
+    <h3 class="serendipity_date">{$staticpage_articleformattitle|@escape}</h3>
+{/if}
+
+    <h4 class="serendipity_title"><a href="#">{$staticpage_headline|@escape}</a></h4>
+
+{if $staticpage_navigation AND $staticpage_shownavi}
+    <ul class="staticpage_navigation">
+      <li class="staticpage_navigation_left"><a href="{$staticpage_navigation.prev.link}" title="prev">{$staticpage_navigation.prev.name|@escape}</a></li>
+      <li class="staticpage_navigation_center"><a href="{$staticpage_navigation.top.link}" title="top">{$staticpage_navigation.top.name|@escape}</a></li>
+      <li class="staticpage_navigation_right"><a href="{$staticpage_navigation.next.link}" title="next">{$staticpage_navigation.next.name|@escape}</a></li>
+    </ul>
+{/if}
+
+{if $staticpage_articleformat}
+    <div class="serendipity_entry">
+        <div class="serendipity_entry_body">
+{/if}
+
+{if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass}
+        <div class="staticpage_password">{$CONST.STATICPAGE_PASSWORD_NOTICE}</div>
+        <form action="{$staticpage_form_url}" method="post">
+            <div>
+                <input type="password" name="serendipity[pass]" value="" />
+                <input type="submit" name="submit" value="{$CONST.GO}" />
+             </div>
+        </form>
+{else}
+<dl class="staticpage_list_of_childpages">
+{foreach from=$staticpage_extchildpages item="child"}
+  <dt>{if $child.image}<img src="{$child.image}" alt="" />{/if}<a href="{$child.permalink}">{$child.pagetitle}</a></dt>
+  <dd>{$child.precontent|truncate:200:"...":true}</dd>
+{/foreach}
+</dl>
+{/if}
+
+{if $staticpage_articleformat}
+        </div>
+    </div>
+</div>
+{/if}
+
+{if $staticpage_articleformat}
+<div class="serendipity_Entry_Date serendipity_staticpage">
+{/if}
+
+{if $staticpage_author}
+    <div class="staticpage_author">{$staticpage_author|@escape}</div>
+{/if}
+
+    <div class="staticpage_metainfo">
+{if $staticpage_lastchange}
+    <span class="staticpage_metainfo_lastchange">{$staticpage_lastchange|date_format:"%Y-%m-%d"}</span>
+{/if}
+
+{if $staticpage_adminlink AND $staticpage_adminlink.page_user}
+    | <a class="staticpage_metainfo_editlink" href="{$staticpage_adminlink.link_edit}">{$staticpage_adminlink.link_name|@escape}</a>
+{/if}
+
+{if $staticpage_articleformat}
+</div>
+{/if}
+    </div>
diff --git a/templates/bulletproof/plugin_staticpage_searchresults.tpl b/templates/bulletproof/plugin_staticpage_searchresults.tpl
new file mode 100644 (file)
index 0000000..2531f8b
--- /dev/null
@@ -0,0 +1,10 @@
+<div class="staticpage_results" style="text-align: left">
+    <p class="staticpage_result_header">{$CONST.STATICPAGE_SEARCHRESULTS|sprintf:$staticpage_searchresults}</p>
+
+    <dl class="staticpage_result">
+    {foreach from=$staticpage_results item="result"}
+        <dt><strong><a href="{$result.permalink|@escape}" title="{$result.pagetitle|@escape}">{$result.headline}</a></strong> ({$result.realname})</dt>
+        <dd>{$result.content|@escape:htmlall|@truncate:200:" ... "}</dd>>
+    {/foreach}
+    </dl>
+</div>
diff --git a/templates/bulletproof/preview.png b/templates/bulletproof/preview.png
new file mode 100644 (file)
index 0000000..7b77a2b
Binary files /dev/null and b/templates/bulletproof/preview.png differ
diff --git a/templates/bulletproof/preview_fullsize.jpg b/templates/bulletproof/preview_fullsize.jpg
new file mode 100644 (file)
index 0000000..4787ed2
Binary files /dev/null and b/templates/bulletproof/preview_fullsize.jpg differ
diff --git a/templates/bulletproof/preview_iframe.tpl b/templates/bulletproof/preview_iframe.tpl
new file mode 100644 (file)
index 0000000..83d41dd
--- /dev/null
@@ -0,0 +1,29 @@
+    <head>\r
+        <title>{$CONST.SERENDIPITY_ADMIN_SUITE}</title>\r
+        <meta http-equiv="Content-Type" content="text/html; charset={$head_charset}" />\r
+        <meta name="Powered-By" content="Serendipity v.{$head_version}" />\r
+        <link rel="stylesheet" type="text/css" href="{serendipity_getFile file="base.css"}" />\r
+        <link rel="stylesheet" type="text/css" href="{$head_link_stylesheet}" />\r
+{if $template_option.colorset != 'default'}\r
+<!-- additional colorset stylesheet -->\r
+        <link rel="stylesheet" type="text/css" href="{$serendipityHTTPPath}templates/{$template}/{$template_option.colorset}_style.css" />\r
+{/if}\r
+        <script type="text/javascript">\r
+           window.onload = function() {ldelim}\r
+             parent.document.getElementById('serendipity_iframe').style.height = document.getElementById('content').offsetHeight\r
+                                                                               + parseInt(document.getElementById('content').style.marginTop)\r
+                                                                               + parseInt(document.getElementById('content').style.marginBottom)\r
+                                                                               + 'px';\r
+             parent.document.getElementById('serendipity_iframe').scrolling    = 'no';\r
+             parent.document.getElementById('serendipity_iframe').style.border = 0;\r
+           {rdelim}\r
+        </script>\r
+    </head>\r
+\r
+    <body style="padding: 0px; margin: 0px;">\r
+    <div id="wrapper" style="width: 100%; border: 0;">\r
+    <div id="content" style="padding: 5px; margin: 0px;">\r
+    {$preview}\r
+    </div>\r
+    </div>\r
+    </body>\r
diff --git a/templates/bulletproof/purple_style.css b/templates/bulletproof/purple_style.css
new file mode 100644 (file)
index 0000000..fe0e0ef
--- /dev/null
@@ -0,0 +1,294 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Stylesheet for the colorset 'purple'                               */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+.serendipity_xml_icon {
+    background: url('img/purple_xml.png') no-repeat center;
+    margin: 0;
+    padding: 10px 0;
+    visibility: visible;
+}
+
+.serendipity_xml_icon img {
+    visibility: hidden;
+}
+
+a {
+    color: #823995;
+    text-decoration: none;
+}
+
+a:hover {
+    color: #505050;
+}
+
+body {
+    background: #3f1a3c url('img/purple_body.jpg') repeat-x;
+}
+
+#wrapper {
+    width: 944px;
+    font-family: verdana, arial, helvetica, sans-serif;
+    font-size: 69%;
+    background-color: #ffffff;
+    border: 1px solid #823995;
+    margin: 0px auto;
+}
+
+#serendipity_banner {
+    height: 136px;
+    margin: 0;
+    border: 0px;
+    background: #823995 url('img/purple_header.jpg') no-repeat;
+}
+
+#serendipity_banner h1 {
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .3em;
+    font-size: 180%;
+    padding: 0.25em;
+}
+
+#serendipity_banner h2 {
+    font-weight: normal;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    font-size: 130%; 
+    padding: 0.25em;
+}
+
+#serendipity_banner a {
+    color: #ffffff;
+    text-decoration: none;
+}
+
+
+#serendipity_below_banner {
+    /* not used in this template */
+}
+
+#sitenav {
+    background: #fff url('img/purple_nav.png') top left;
+    border-top: 2px solid #ffffff;
+    margin: 0;
+    padding: 0;
+}
+
+#sitenav ul li {
+    font-size: 90%; 
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    margin: 0;
+    padding: 0; 
+    display: inline;
+}
+
+#sitenav ul a {
+    background: #fff url('img/purple_nav.png') top left;
+    border-right: 1px solid #dfdfdf;
+    padding: 6px 10px 6px 10px;
+    float: left;
+    overflow: hidden;
+}
+
+#sitenav ul li a:hover,
+#sitenav .currentpage a {
+    padding: 6px 10px 6px 10px;
+    background: #CB97D8 url('img/purple_nav.png') bottom left;
+}
+
+#serendipityLeftSideBar,
+#serendipityLeftSideBarLeft,
+#serendipityRightSideBarLeft,
+#serendipityRightSideBar,
+#serendipityLeftSideBarRight, 
+#serendipityRightSideBarRight {
+    background-color: #fff;
+    color: #505050;
+    overflow: hidden; 
+}
+
+#content {
+    background-color: #fff;
+    color: #505050;
+}
+
+#content h3 {
+    font-size: 100%;
+    margin: 10px 0 0 0;
+}
+
+.serendipity_commentsTitle {
+    font-size: 100%;
+    font-weight: bold;
+}
+
+#content h4 {
+    font-family: verdana, arial, helvetica, sans-serif;
+    font-weight: normal;
+    font-size: 170%;
+    letter-spacing: -1px;
+    margin: 5px 0 15px 0;      
+}
+
+.serendipity_entryFooter {
+    font-size: 90%;
+    margin: 5px 0;
+    padding: 8px 0;
+    border-top: 1px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+}
+
+.serendipity_pageFooter {
+    margin: 5px 0 10px;
+}
+
+.serendipitySideBarItem {
+    margin: 10px;
+    padding: 0;
+    border: 0px none;
+    overflow: hidden; 
+}
+
+.serendipitySideBarTitle {
+    font-family: verdana, arial, helvetica, sans-serif;
+    font-weight: normal;
+    font-size: 151%;
+    letter-spacing: -1px;
+    text-transform: capitalize;
+    color: #30303f;
+    padding: 8px 5px 8px 5px;
+    border-left: 4px solid #dfdfdf;
+    border-right: 1px solid #dfdfdf;
+    border-top: 1px solid #dfdfdf;
+    background: #EDE6EE ;
+    margin: 0;
+}
+
+.serendipitySideBarContent {
+    padding: 10px;
+    border-left: 4px solid #dfdfdf;
+    border-right: 1px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+    background-color: #EDE6EE;
+    margin: 0;
+}
+
+.serendipitySideBarFooter {
+    /* not used in this template */
+}
+
+#sbsitenav {
+    padding: 10px;
+    margin: 0;
+}
+
+#sbsitenav ul{
+    margin: 0;
+    list-style-type: none;
+}
+
+#sbsitenav ul a {
+    display: block;
+    border-top: 1px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+    border-left: 4px solid #dfdfdf;
+    border-right: 1px solid #dfdfdf;
+    padding: 8px 0px 8px 5px;
+    background: #EDE6EE url('img/purple_nav.png') top left;
+}
+
+#sbsitenav ul a:hover,
+#sbsitenav .currentpage a {
+    border-top: 1px solid #dfdfdf;
+    border-bottom: 1px solid #dfdfdf;
+    border-left: 4px solid #dfdfdf;
+    border-right: 1px solid #dfdfdf;
+    background: #CB97D8 url('img/purple_nav.png') bottom left;
+}
+
+#sbsitenav li {
+    font-size: 90%;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: .2em;
+    background-color: #efefef;
+    margin: 0;
+    padding: 0;
+    overflow: hidden;
+
+}
+
+#month,
+.serendipity_weekDayName, 
+#today {
+    font-size: 100%;
+}
+
+#footer {
+    font-size: 80%;
+    background-color: #dfdfdf;
+}
+
+img.serendipity_entryIcon {
+    float: left;
+    border: 0px;
+    margin: 0 5px 0px 0;
+}
+
+input#serendipityQuickSearchTermField {
+    border: 1px solid #823995!important;
+}
+
+#navbarsearchform input {
+    border: 1px solid #823995;
+}
+
+blockquote {
+    background: #f4edf5;
+    color: #505050;
+    border-left: 5px solid #823995;
+    margin: 1em 2em 1em 4em;
+    padding: 1em 1em 1em 2em;
+}
+
+blockquote p {
+   margin: 0.5em 0;
+   padding: 0;
+}
+
+.serendipity_comment_author_self comment_evenbox,
+.comment_evenbox {
+    line-height: 1.2em;   
+    border: 1px dotted #823995;
+    background: #EDE6EE;
+}
+
+.serendipity_comment_author_self comment_oddbox,
+.comment_oddbox {
+    line-height: 1.2em;
+    border: 1px dotted #823995;
+    background: #F5F4F8;
+}
+
+.serendipity_commentsTitle {
+    font-family: verdana, arial, helvetica, sans-serif;
+    font-weight: normal;
+    font-size: 130%;
+    letter-spacing: -1px;
+    margin: 1em 0;
+    padding: 0.5em 0;
+}
+
+.s9y_wrap {
+    background: #fff;
+    font-size: 69%;
+}
diff --git a/templates/bulletproof/sidebar.tpl b/templates/bulletproof/sidebar.tpl
new file mode 100644 (file)
index 0000000..91c6e82
--- /dev/null
@@ -0,0 +1,20 @@
+{if $is_raw_mode}
+<div id="serendipity{$pluginside}SideBar">
+{/if}
+{foreach from=$plugindata item=item}
+   {if $item.class == "serendipity_quicksearch_plugin" and $template_option.sitenav_quicksearch == 'true' and ($template_option.sitenavpos == 'above' or $template_option.sitenavpos == 'below')}
+<!-- do nothing thereby supressing quicksearch in the sidebar when enabled in  -->
+<!-- navigation menu bar and ONLY when navigation bar is above or below header -->
+   {else}
+      <div class="serendipitySideBarItem container_{$item.class}">
+         {if $item.title != ""}
+            <h3 class="serendipitySideBarTitle {$item.class}">{$item.title}</h3>
+         {/if}
+         <div class="serendipitySideBarContent">{$item.content}</div>
+         <div class="serendipitySideBarFooter"></div>
+      </div>
+   {/if}
+{/foreach}
+{if $is_raw_mode}
+</div>
+{/if}
diff --git a/templates/bulletproof/style.css b/templates/bulletproof/style.css
new file mode 100644 (file)
index 0000000..ec5f33d
--- /dev/null
@@ -0,0 +1,392 @@
+/**********************************************************************/
+/* Template: bulletproof for Serendipity (http://www.s9y.org)         */
+/* Authors: Matthias Mees, David Cummins and Don Chambers             */
+/*                                                                    */
+/* Central Stylesheet                                                 */
+/*                                                                    */
+/* http://s9y-bulletproof.com                                         */
+/**********************************************************************/
+
+
+body {
+    font: 100.01% Verdana, Arial, Helvetica, sans-serif;
+    background: #fff;
+    color: #000;
+}
+
+/*** General styles ***/
+p {
+    text-align: left;
+}
+
+#wrapper {
+    font-size: 80%;
+}
+
+#serendipity_banner {
+    margin: 0;
+    padding: 0;
+}
+
+/*** Header styles ***/
+#serendipity_banner h1,
+#serendipity_banner h2 {
+    margin: 0 0 0 10px;
+}
+
+/*** Sitenav styles ***/
+#sitenav {
+    padding: 0.5em 0;
+}
+
+#sitenav ul li {
+    padding: 0 0.5em 0 10px;
+}
+
+/* This is the current page the visitor is viewing */
+#sitenav .currentpage a {
+    background: #ddd;
+}
+
+/* optional nav links in the footer */
+#footer_sitenav {
+    clear: both;
+    text-align: center;
+    padding: 0 0 1em 0;
+}
+
+#footer_sitenav ul {
+    list-style-type: none;
+    display: inline;
+}
+
+#footer_sitenav li {
+    display: inline;
+}
+
+#footer_sitenav a {
+    padding: 0px 5px;
+}
+
+#footer_sitenav .currentpage a {
+    text-decoration: underline;
+}
+
+/* If the sitenav is in one of the sidebars */
+#sbsitenav ul {
+    margin-left: 0;
+    padding-left: 0;
+}
+
+
+/*** Footer styles ***/
+#footer p {
+    margin-left: 10px;
+    padding: 0;
+}
+
+#serendipity_credit_line {
+    float: left;
+    margin: 5px 0 0 10px;
+    display: inline;
+}
+
+#serendipity_bulletproof_button {
+    float: right;
+    margin: 5px 10px 5px 0;
+    display: inline;
+}
+
+
+/*** Entry styles ***/
+.serendipity_Entry_Date {
+    padding: 0.5em 1em;
+}
+
+.serendipity_entry {
+    margin-bottom: 0.5em;
+}
+
+img.serendipity_entryIcon {
+    border: 0;
+}
+
+
+/*** Sidebar styles ***/
+.serendipitySideBarItem {
+    margin: 0.5em;
+}
+
+.serendipitySideBarTitle {
+    margin: 0;
+}
+
+.serendipitySideBarContent {
+    margin: 0;
+}
+
+div.serendipitySideBarContent form {
+    margin: 0;
+    padding: 0;
+}
+
+
+/*** Archive styles ***/
+ul.archives_row {
+    margin-left: 0;
+    padding-left: 0;
+}
+
+ul.archives_row li {
+    padding-right: 2px;
+    font-size: 80%;
+}
+
+
+/*** s9y image manager ***/
+.serendipity_imageComment_center,
+.serendipity_imageComment_left,
+.serendipity_imageComment_right {
+    border: 1px solid #ddd;
+    background-color: #efefef;
+    padding: 0;
+    text-align: center;
+}
+
+.serendipity_imageComment_center {
+    margin: auto;
+}
+
+.serendipity_imageComment_left {
+    float: left;
+    margin: 0 10px 5px 0;
+}
+
+.serendipity_imageComment_right {
+    float: right;
+    margin: 0 0 5px 10px;
+}
+
+.serendipity_imageComment_img,
+.serendipity_imageComment_img img {
+    margin: 0;
+    padding: 0;
+    border: none;
+    text-align: center;
+}
+
+.serendipity_imageComment_txt {
+    border-top: 1px solid #ddd;
+    margin: 0;
+    padding: 1%;
+    clear: both;
+    font-size: 80%;
+    text-align: center;
+}
+
+
+/*** Calendar styles ***/
+table.serendipity_calendar {
+    text-align: center;
+    background-color: transparent;
+    height: 150px;
+    width: 95%;
+}
+
+.serendipity_calendarHeader {
+    background-color: transparent;
+    vertical-align: middle;
+    font-weight: bold;
+}
+
+a.day {
+    color: #000;
+    font-weight:  bold;
+}
+
+.serendipity_calendar img {
+    border: 0;
+}
+
+.serendipity_calendar_spacer {
+    border: 0;
+    visibility: hidden;
+}
+
+
+/*** Staticpage styles ***/
+ul.staticpage_navigation {
+    margin-left: 0;
+    padding-left: 0;
+}
+
+.staticpage_results {
+    margin: 1em 0;
+    padding: 0 10px;
+}
+
+
+/*** Contact form ***/
+#serendipity_comment_CommentForm fieldset {
+    border: 1px solid #ddd;
+    width: 90%;
+    margin: 2%;
+    padding: 2%;
+}
+
+#serendipity_comment_CommentForm fieldset legend {
+    background: #fafbfc;
+    border: 1px solid #ddd;
+    font-weight: bolder;
+    margin: 0 10px 5px;
+    padding: 0.25em 1em;
+    text-align: center;
+}
+
+.serendipity_commentDirection {
+    width: 90%;
+    margin-top: 1em;
+}
+
+
+/*** Comment form ***/
+#serendipity_comment {
+    font-weight: normal;
+    margin: 0 10px;
+    padding: 0;
+}
+
+.serendipity_commentsTitle {
+    margin: 0;
+    padding: 1em 0;
+}
+
+.serendipity_comment {
+    padding: 0;
+}
+
+.serendipity_comments .serendipity_center {
+    font-size: 90%;
+}
+
+.serendipity_commentBody {
+    padding: 1em 0;
+}
+
+.serendipity_comment_source {
+    margin: 0;
+    padding: 0;
+}
+
+.serendipity_comment_author_self comment_evenbox,
+.comment_evenbox {
+    margin: 0 10px 10px;
+    padding: 1em;
+    line-height: 1.5em;
+}
+
+.serendipity_comment_author_self comment_oddbox,
+.comment_oddbox {
+    margin: 0 10px 10px;
+    padding: 1em;
+    line-height: 1.5em;
+}
+
+.serendipity_commentsValue .frm_check_label,
+.serendipity_commentsValue .frm_radio_label,
+.serendipity_commentsLabel {
+    font-size: 90%;
+}
+
+.serendipity_commentsLabel {
+    font-weight: bold;
+}
+
+.serendipity_commentsValue .frm_check,
+.serendipity_commentsValue .frm_radio,
+.serendipity_commentsValue .frm,
+#serendipity_comment_CommentForm select {
+    background: #fff;
+    color: #000;
+}
+
+.serendipity_commentsValue .frm,
+#serendipity_comment_CommentForm select {
+    border: 1px solid #ccc;
+}
+
+.serendipity_commentsValue .frm,
+#serendipity_comment_CommentForm select {
+    width: 90%;
+    max-width: 400px;
+}
+
+#serendipity_comment_CommentForm select:focus,
+.serendipity_commentsValue .frm:focus {
+    background: #efefef;
+    color: #000;
+}
+
+#serendipity_comment_CommentForm dt {
+    float: left;
+    margin-bottom: 0.5%;
+    margin-right: 1%;
+}
+
+#serendipity_comment_CommentForm dd {
+    padding-left: 0em;
+    margin-left: 20%;
+    margin-bottom: 1%;
+}
+
+#serendipity_comment textarea {
+    margin-bottom: 1%;
+}
+
+.checkbox {
+    display: block;
+}
+
+#serendipity_trackbacklist,
+#serendipity_commentlist {
+    margin-top: 1em;
+}
+
+/*** Plugin styles ***/
+img.serendipity_freeTag_xmlButton {
+    border: none;
+    padding-left: 1%;
+}
+
+.serendipity_freetag_taglist_related {
+    font-size: 120%;
+    font-weight: bold;
+}
+
+.serendipitySideBarItem img {
+    border: none;
+}
+
+
+/*** Quicksearch in the navbar ***/
+input#serendipityQuickSearchTermField {
+    background: #ffffff url('{TEMPLATE_PATH}img/quicksearch.png') no-repeat 97% 50%;
+}
+
+#navbarsearchform {
+    margin: 0 10px 0 0;
+}
+
+#navbarsearchform input {
+    width: 165px; 
+    margin-top: 3px;
+    padding-left: 3px;
+    font-size: 100%;
+    background: #ffffff url('{TEMPLATE_PATH}img/quicksearch.png') no-repeat 97% 50%;
+}
+
+/* container for comments when comment pop-up enabled */
+.s9y_wrap {
+    text-align: left;
+    margin-left: 10px;
+}