[geeklog-cvs] geeklog: Denim: implemented a minimal theme API
geeklog-cvs at lists.geeklog.net
geeklog-cvs at lists.geeklog.net
Mon Apr 23 19:08:21 EDT 2012
changeset 8613:a35f0865cec2
url: http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/a35f0865cec2
user: dengen
date: Tue Apr 24 01:07:11 2012 +0900
description:
Denim: implemented a minimal theme API
diffstat:
public_html/layout/denim/functions.php | 132 +++++++++++++++++++++++++-------
1 files changed, 103 insertions(+), 29 deletions(-)
diffs (157 lines):
diff -r afe822b520b0 -r a35f0865cec2 public_html/layout/denim/functions.php
--- a/public_html/layout/denim/functions.php Mon Apr 23 01:28:46 2012 +0900
+++ b/public_html/layout/denim/functions.php Tue Apr 24 01:07:11 2012 +0900
@@ -1,5 +1,39 @@
<?php
+/* Reminder: always indent with 4 spaces (no tabs). */
+// +---------------------------------------------------------------------------+
+// | Geeklog 2.0 |
+// +---------------------------------------------------------------------------+
+// | functions.php |
+// | |
+// | Functions implementing the theme API |
+// +---------------------------------------------------------------------------+
+// | Copyright (C) 2000-2012 by the following authors: |
+// | |
+// | Authors: Tony Bibbs - tony AT tonybibbs DOT com |
+// | Mark Limburg - mlimburg AT users DOT sourceforge DOT net |
+// | Jason Whittenburg - jwhitten AT securitygeeks DOT com |
+// | Dirk Haun - dirk AT haun-online DOT de |
+// | Vincent Furia - vinny01 AT users DOT sourceforge DOT net |
+// | Rouslan Placella - rouslan AT placella DOT com |
+// +---------------------------------------------------------------------------+
+// | |
+// | This program is free software; you can redistribute it and/or |
+// | modify it under the terms of the GNU General Public License |
+// | as published by the Free Software Foundation; either version 2 |
+// | of the License, or (at your option) any later version. |
+// | |
+// | This program is distributed in the hope that it will be useful, |
+// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+// | GNU General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software Foundation, |
+// | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
+// | |
+// +---------------------------------------------------------------------------+
+
// this file can't be used on its own
if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.php') !== false) {
die('This file can not be used on its own!');
@@ -7,44 +41,84 @@
$_CONF['support_theme_2.0'] = true; // support new theme format for the later Geeklog2.0
-$_IMAGE_TYPE = 'png';
-
$_CONF['left_blocks_in_footer'] = 1;
-// Add Theme CSS File to scripts class
-$cssfile = ($LANG_DIRECTION == 'rtl') ? '/style_rtl.css' : '/style.css';
-$_SCRIPTS->setCSSFile('theme', '/layout/' . $_CONF['theme'] . $cssfile);
-// Load jQuery
-$_SCRIPTS->setJavaScriptLibrary('jquery');
+/**
+ * Return the configuration values for the theme
+ */
+function theme_config_denim()
+{
+ return array(
+ 'image_type' => 'png',
+ 'doctype' => 'html401strict'
+ );
+}
-//$_SCRIPTS->setJavaScriptFile('theme.tabs', '/layout/' . $_CONF['theme'] . '/javascript/tabs.js');
-$_SCRIPTS->setJavaScriptFile('theme.tabs', '/layout/' . $_CONF['theme'] . '/javascript/app.js');
-$_SCRIPTS->setJavaScriptFile('theme.tinynav', '/layout/' . $_CONF['theme'] . '/javascript/tinynav.min.js');
-$_SCRIPTS->setJavaScriptFile('theme.script', '/layout/' . $_CONF['theme'] . '/javascript/script.js');
+/**
+ * Return an array of CSS files to be loaded
+ */
+function theme_css_denim()
+{
+ global $_CONF, $LANG_DIRECTION;
-/*
- * For left/right block support there is no longer any need for the theme to
- * put code into functions.php to set specific templates for the left/right
- * versions of blocks. Instead, Geeklog will automagically look for
- * blocktemplate-left.thtml and blocktemplate-right.thtml if given
- * blocktemplate.thtml from $_BLOCK_TEMPLATE. So, if you want different left
- * and right templates from admin_block, just create blockheader-list-left.thtml
- * etc.
+ $cssfile = ($LANG_DIRECTION == 'rtl') ? '/style_rtl.css' : '/style.css';
+ return array('/layout/' . $_CONF['theme'] . $cssfile);
+}
+
+/**
+ * Return an array of JS libraries to be loaded
*/
+function theme_js_libs_denim()
+{
+ return array('jquery');
+}
-$_BLOCK_TEMPLATE['_msg_block'] = 'blockheader-message.thtml,blockfooter-message.thtml';
-$_BLOCK_TEMPLATE['configmanager_block'] = 'blockheader-config.thtml,blockfooter-config.thtml';
-$_BLOCK_TEMPLATE['configmanager_subblock'] = 'blockheader-config.thtml,blockfooter-config.thtml';
-$_BLOCK_TEMPLATE['whats_related_block'] = 'blockheader-related.thtml,blockfooter-related.thtml';
-$_BLOCK_TEMPLATE['story_options_block'] = 'blockheader-related.thtml,blockfooter-related.thtml';
+/**
+ * Return an array of JS files to be loaded
+ */
+function theme_js_files_denim()
+{
+ global $_CONF;
-// Define the blocks that are a list of links styled as an unordered list - using class="blocklist"
-$_BLOCK_TEMPLATE['admin_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
-$_BLOCK_TEMPLATE['section_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
+ return array(
+ //'/layout/' . $_CONF['theme'] . '/javascript/tabs.js',
+ '/layout/' . $_CONF['theme'] . '/javascript/app.js',
+ '/layout/' . $_CONF['theme'] . '/javascript/tinynav.min.js',
+ '/layout/' . $_CONF['theme'] . '/javascript/script.js'
+ );
+}
-if (!COM_isAnonUser()) {
- $_BLOCK_TEMPLATE['user_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
+/**
+ * Do any other initialisation here
+ */
+function theme_init_denim()
+{
+ global $_BLOCK_TEMPLATE;
+
+ /*
+ * For left/right block support there is no longer any need for the theme to
+ * put code into functions.php to set specific templates for the left/right
+ * versions of blocks. Instead, Geeklog will automagically look for
+ * blocktemplate-left.thtml and blocktemplate-right.thtml if given
+ * blocktemplate.thtml from $_BLOCK_TEMPLATE. So, if you want different left
+ * and right templates from admin_block, just create blockheader-list-left.thtml
+ * etc.
+ */
+
+ $_BLOCK_TEMPLATE['_msg_block'] = 'blockheader-message.thtml,blockfooter-message.thtml';
+ $_BLOCK_TEMPLATE['configmanager_block'] = 'blockheader-config.thtml,blockfooter-config.thtml';
+ $_BLOCK_TEMPLATE['configmanager_subblock'] = 'blockheader-config.thtml,blockfooter-config.thtml';
+ $_BLOCK_TEMPLATE['whats_related_block'] = 'blockheader-related.thtml,blockfooter-related.thtml';
+ $_BLOCK_TEMPLATE['story_options_block'] = 'blockheader-related.thtml,blockfooter-related.thtml';
+
+ // Define the blocks that are a list of links styled as an unordered list - using class="blocklist"
+ $_BLOCK_TEMPLATE['admin_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
+ $_BLOCK_TEMPLATE['section_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
+
+ if (!COM_isAnonUser()) {
+ $_BLOCK_TEMPLATE['user_block'] = 'blockheader-list.thtml,blockfooter-list.thtml';
+ }
}
?>
More information about the geeklog-cvs
mailing list