Affected themes: bulletproof, 2k11, next These themes will use the core method of including the user.css in serendipity.css starting with 2.0.1. A note has been added to all three themes' theme options to document that the possibility of a user.css exists. References #280
		
			
				
	
	
		
			321 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			321 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| if (IN_serendipity !== true) {
 | |
|   die ("Don't hack!");
 | |
| }
 | |
| 
 | |
| $probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
 | |
| 
 | |
| if (file_exists($probelang)) {
 | |
|     include $probelang;
 | |
| }
 | |
| 
 | |
| include dirname(__FILE__) . '/lang_en.inc.php';
 | |
| 
 | |
| $serendipity['smarty']->assign(array('currpage'=> "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));
 | |
| $serendipity['smarty']->assign(array('currpage2'=> $_SERVER['REQUEST_URI']));
 | |
| 
 | |
| function serendipity_plugin_api_event_hook($event, &$bag, &$eventData, $addData = null) {
 | |
|     global $serendipity;
 | |
| 
 | |
|     switch($event) {
 | |
|         case 'frontend_footer':
 | |
|             echo '<!--PLUGIN API-->';
 | |
|     }
 | |
| 
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| if ($serendipity['GET']['adminModule'] == 'templates' || $serendipity['POST']['adminModule'] == 'templates' || $serendipity['GET']['adminAction'] == 'cattemplate') {
 | |
|     $css_files = glob(dirname(__FILE__) . '/*_style.css');
 | |
|     foreach($css_files AS $css_file) {
 | |
|         $css_file = str_replace('_style.css', '', basename($css_file));
 | |
|         if (!isset($colorsets[$css_file])) {
 | |
|             $colorsets[$css_file] = $css_file;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| $template_config_groups = array(
 | |
|     THEME_COLORSET  => array('colorset', 'layouttype', 'jscolumns'),
 | |
|     THEME_HEADER    => array('custheader', 'headerimage', 'headertype')
 | |
| );
 | |
| 
 | |
| $template_config = array(
 | |
|     array(
 | |
|       'var'           => 'infobp',
 | |
|       'name'          => 'infobp',
 | |
|       'type'          => 'custom',
 | |
|       'custom'        => USER_STYLESHEET,
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'colorset',
 | |
|         'name'          => THEME_COLORSET,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'default',
 | |
|         'select_values' => $colorsets
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'layouttype',
 | |
|         'name'          => LAYOUT_TYPE,
 | |
|         'type'          => 'select',
 | |
|         'default'       => '3sbs',
 | |
|         'select_values' => array('3sbs' => LAYOUT_SBS,
 | |
|                                  '3bss' => LAYOUT_BSS,
 | |
|                                  '3ssb' => LAYOUT_SSB,
 | |
|                                  '2sb'  => LAYOUT_SB,
 | |
|                                  '2bs'  => LAYOUT_BS,
 | |
|                                  '1col' => LAYOUT_SC,
 | |
|                                  '2sbf' => LAYOUT_SBF,
 | |
|                                  '2bsf' => LAYOUT_BSF)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'jscolumns',
 | |
|         'name'          => JAVASCRIPT_COLUMNS,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'custheader',
 | |
|         'name'          => BP_CUSTOM_HEADER,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'headerimage',
 | |
|         'name'          => BP_HEADER_IMAGE,
 | |
|         'type'          => 'media',
 | |
|         'default'       => serendipity_getTemplateFile('header.png')
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'headertype',
 | |
|         'name'          => BP_HEADER_TYPE,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'banner',
 | |
|         'select_values' => array('banner' => BP_HEADER_BANNER,
 | |
|                                  'htiled' => BP_HEADER_HTILED,
 | |
|                                  'vtiled' => BP_HEADER_VTILED,
 | |
|                                  'btiled' => BP_HEADER_BTILED)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'headerposhor',
 | |
|         'name'          => BP_HEADER_POSHOR,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'left',
 | |
|         'select_values' => array('left' => LEFT,
 | |
|                                  'center' => BP_CENTER,
 | |
|                                  'right' => RIGHT)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'headerposver',
 | |
|         'name'          => BP_HEADER_POSVER,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'top',
 | |
|         'select_values' => array('top' => BP_TOP,
 | |
|                                  'center' => BP_CENTER,
 | |
|                                  'bottom' => BP_BOTTOM)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'firbtitle',
 | |
|         'name'          => FIR_BTITLE,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'firbdescr',
 | |
|         'name'          => FIR_BDESCR,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'date_format',
 | |
|         'name'          => GENERAL_PLUGIN_DATEFORMAT . " (http://php.net/strftime)",
 | |
|         'type'          => 'select',
 | |
|         'default'       => DATE_FORMAT_ENTRY,
 | |
|         'select_values' => array(DATE_FORMAT_ENTRY => DATE_FORMAT_ENTRY,
 | |
|                                  '%a, %e. %B %Y' => '%a, %e. %B %Y',
 | |
|                                  '%d-%m-%y' => '%d-%m-%y',
 | |
|                                  '%m-%d-%y' => '%m-%d-%y',
 | |
|                                  '%a %d-%m-%y' => '%a %d-%m-%y',
 | |
|                                  '%a %m-%d-%y' => '%a %m-%d-%y',
 | |
|                                  '%b %d' => '%b %d',
 | |
|                                  "%b %d '%y" => "%b %d '%y")
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'entryfooterpos',
 | |
|         'name'          => ENTRY_FOOTER_POS,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'belowentry',
 | |
|         'select_values' => array('belowentry' => BELOW_ENTRY,
 | |
|                                  'belowtitle' => BELOW_TITLE,
 | |
|                                  'splitfoot' => SPLIT_FOOTER)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footerauthor',
 | |
|         'name'          => FOOTER_AUTHOR,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footercategories',
 | |
|         'name'          => FOOTER_CATEGORIES,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footertimestamp',
 | |
|         'name'          => FOOTER_TIMESTAMP,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footercomments',
 | |
|         'name'          => FOOTER_COMMENTS,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footertrackbacks',
 | |
|         'name'          => FOOTER_TRACKBACKS,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'altcommtrack',
 | |
|         'name'          => ALT_COMMTRACK,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'addthiswidget',
 | |
|         'name'          => SHOW_ADDTHIS_WIDGET,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'addthisaccount',
 | |
|         'name'          => ADDTHIS_ACCOUNT,
 | |
|         'type'          => 'string',
 | |
|         'default'       => '',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'show_sticky_entry_footer',
 | |
|         'name'          => SHOW_STICKY_ENTRY_FOOTER,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'show_sticky_entry_heading',
 | |
|         'name'          => SHOW_STICKY_ENTRY_HEADING,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'cocommentactive',
 | |
|         'name'          => COCOMMENT_ACTIVE,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'prev_next_style',
 | |
|         'name'          => PREV_NEXT_STYLE,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'text',
 | |
|         'select_values' => array('text' => PREV_NEXT_TEXT,
 | |
|                                  'texticon' => PREV_NEXT_TEXT_ICON,
 | |
|                                  'icon' => PREV_NEXT_ICON,
 | |
|                                  'none' => NONE)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'show_pagination',
 | |
|         'name'          => SHOW_PAGINATION,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'counter_code',
 | |
|         'name'          => COUNTER_CODE,
 | |
|         'type'          => 'text',
 | |
|         'default'       => '',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'counter_code_toggle',
 | |
|         'name'          => USE_COUNTER,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false'
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footer_text',
 | |
|         'name'          => FOOTER_TEXT,
 | |
|         'type'          => 'text',
 | |
|         'default'       => '',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'footer_text_toggle',
 | |
|         'name'          => USE_FOOTER_TEXT,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'false'
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'sitenavpos',
 | |
|         'name'          => SITENAV_POSITION,
 | |
|         'type'          => 'select',
 | |
|         'default'       => 'none',
 | |
|         'select_values' => array('none' => SITENAV_NONE,
 | |
|                                  'above' => SITENAV_ABOVE,
 | |
|                                  'below' => SITENAV_BELOW,
 | |
|                                  'left' => SITENAV_LEFT,
 | |
|                                  'right' => SITENAV_RIGHT)
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'sitenav_footer',
 | |
|         'name'          => SITENAV_FOOTER,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true'
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'sitenav_quicksearch',
 | |
|         'name'          => SITENAV_QUICKSEARCH,
 | |
|         'type'          => 'boolean',
 | |
|         'default'       => 'true',
 | |
|     ),
 | |
|     array(
 | |
|         'var'           => 'sitenav_sidebar_title',
 | |
|         'name'          => SITENAV_TITLE,
 | |
|         'type'          => 'string',
 | |
|         'default'       => SITENAV_TITLE_TEXT,
 | |
|     ),
 | |
| );
 | |
| 
 | |
| $template_global_config = array('navigation' => true);
 | |
| $template_loaded_config = serendipity_loadThemeOptions($template_config, $serendipity['smarty_vars']['template_option']);
 | |
| serendipity_loadGlobalThemeOptions($template_config, $template_loaded_config, $template_global_config);
 | |
| 
 | |
| if ($template_loaded_config['headerimage'] != '' && is_dir($_SERVER['DOCUMENT_ROOT'] . '/' . $template_loaded_config['headerimage'])) {
 | |
|     $files = array();
 | |
|     if ($d = opendir($_SERVER['DOCUMENT_ROOT'] . '/' . $template_loaded_config['headerimage'])) {
 | |
|         while (($file = readdir($d)) !== false) {
 | |
|             if (preg_match('@(\.jpe?g|\.png|\.gif)$@i', $file) && !preg_match('@' . preg_quote($serendipity['thumbSuffix']) . '@i', $file)) {
 | |
|                 $files[] = $file;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (count($files) > 0) {
 | |
|         shuffle($files);
 | |
|         $serendipity['smarty']->assign('random_headerimage', $template_loaded_config['headerimage'] . '/' . $files[0]);
 | |
|     }
 | |
| }
 | |
| 
 | |
| // Allow colorset authors to include license and attribution data
 | |
| $colorset_data = array();  // Maybe we'll want more data later...
 | |
| $colorset_data['attribution'] = '';
 | |
| $attribution_file = dirname(__FILE__) . '/' . $template_loaded_config['colorset'] . '_license.txt';
 | |
| if (is_readable($attribution_file)) {
 | |
| 	$attribution = file_get_contents($attribution_file);
 | |
| 	if (!empty($attribution)) {
 | |
| 		$colorset_data['attribution'] = $attribution;
 | |
| 	}
 | |
| }
 | |
| $template_loaded_config['colorset_data'] = $colorset_data;
 |