Esempio n. 1
0
function template_init()
{
    global $context, $settings, $options, $txt, $modSettings;
    $settings['use_default_images'] = 'never';
    $settings['doctype'] = 'html';
    $settings['theme_version'] = '2.0';
    $settings['use_tabs'] = true;
    $settings['use_buttons'] = true;
    $settings['separate_sticky_lock'] = true;
    $settings['strict_doctype'] = false;
    $settings['message_index_preview'] = true;
    $settings['require_theme_strings'] = true;
    $settings['alphathemes'] = true;
    if (($settings['tp_boardicons'] = cache_get_data('alpha_boardicons', 2)) == null) {
        $settings['tp_boardicons'] = my_readfolder($settings['theme_dir'] . '/images/boardicons', $settings['theme_url'] . '/images/boardicons', '.png');
        cache_put_data('alpha_boardicons', $settings['tp_boardicons'], 2);
    }
    $settings['extra_copyrights'] = array('<b>ShelfLife</b> theme &copy; 2015, BK');
    $settings['catch_action'] = array('layers' => array('wrapinit', 'html', 'body', 'wrap'));
    /* all modules possible
    	$settings['module_display'] = '';
    	$settings['module_boardindex'] = '';
    	$settings['module_messageindex'] = '';
    	$settings['module_profile'] = '';
    	$settings['module_pm'] = '';
    	*/
    // can be board-based.
}
Esempio n. 2
0
function template_set_settings()
{
    global $context, $settings, $options, $scripturl, $txt;
    echo '
	<div id="admincenter">
		<form action="', $scripturl, '?action=admin;area=theme;sa=settings;th=', $context['theme_settings']['theme_id'], '" method="post" accept-charset="', $context['character_set'], '">
			<h3 class="titlebg">', $txt['theme_settings'], ' - ', $context['theme_settings']['name'], '</h3>

			<h3 class="catbg">', $txt['theme_options'], '</h3>
			<div class="windowbg2">
				<div class="content">';
    $mysettings = array();
    $cats = array();
    $catids = array();
    // show the tabs
    foreach ($context['settings'] as $setting) {
        $mysettings[] = $setting;
        if (!empty($setting['mycategory'])) {
            $cats[$setting['mycategory']] = $setting['mycategory'];
        } else {
            $setting['mycategory'] = '';
        }
        if (!in_array($setting['mycategory'], $catids) && !empty($setting['mycategory'])) {
            $catids[] = $setting['mycategory'];
        }
    }
    echo '
	<script type="text/javascript">
		function setTab(active)
		{	
			var cats = ["', implode('","', $catids), '"];
			for(a=0; a<cats.length; a++)
			{
				document.getElementById(\'tab\' + cats[a]).className = \'tabheader\';		
				document.getElementById(\'cset_\' + cats[a]).className = \'tab\';		
			}
			document.getElementById(\'tab\' + active).className = \'tabheader tbactive\';		
			document.getElementById(\'cset_\' + active).className = \'tab tactive\';		
		}	
	</script>
	<div id="allcats">
		<ul class="tabheaders">';
    $first = true;
    foreach ($cats as $cat) {
        echo '<li id="tab' . $cat . '" class="', $first ? 'tabheader tbactive' : 'tabheader', '" onclick="setTab(\'' . $cat . '\');" style="cursor: pointer;"><span>' . $txt[$cat] . '</span></li>';
        $first = false;
    }
    echo '
		</ul>';
    $first = true;
    foreach ($cats as $cat) {
        echo '
		<div id="cset_' . $cat . '" class="', $first ? 'tab tactive' : 'tab', '">
						<dl class="settings flow_auto">';
        $first = false;
        foreach ($context['settings'] as $setting) {
            // Is this a separator?
            if (empty($setting)) {
                continue;
            }
            if ($setting['mycategory'] != $cat) {
                continue;
            }
            // if theres a check - do it now
            if (isset($setting['exists']) && !$setting['exists']) {
                continue;
            }
            // A checkbox?
            if ($setting['type'] == 'checkbox') {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>
								<input type="hidden" name="', !empty($setting['default']) ? 'default_' : '', 'options[', $setting['id'], ']" value="0" />
								<input type="checkbox" name="', !empty($setting['default']) ? 'default_' : '', 'options[', $setting['id'], ']" id="', $setting['id'], '"', !empty($setting['value']) ? ' checked="checked"' : '', ' value="1" class="input_check" />
							</dd>';
            } elseif ($setting['type'] == 'csswidth') {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>
								<output class="percent_output" for="', $setting['id'], '" id="value_', $setting['id'], '">', !empty($setting['value']) ? $setting['value'] : '4', '</output>
								<span class="percent_bar"><span id="cssw_', $setting['id'], '" class="', $setting['class'], !empty($setting['value']) ? $setting['value'] : '4', '" style="background: ', $setting['color'], ';"></span></span>
								&nbsp;&nbsp;
								<input style="display: inline-block; vertical-align: middle;" type="range" name="', !empty($setting['default']) ? 'default_' : '', 'options[', $setting['id'], ']" id="', $setting['id'], '" min="', $setting['min'], '" value="', !empty($setting['value']) ? $setting['value'] : '4', '" max="', $setting['max'], '" step="', $setting['step'], '" oninput="javascript: updateSlider(\'value_', $setting['id'], '\', this.value, \'cssw_', $setting['id'], '\')">
							</dd>';
            } elseif ($setting['type'] == 'list') {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>
								<select name="', !empty($setting['default']) ? 'default_' : '', 'options[', $setting['id'], ']" id="', $setting['id'], '">';
                foreach ($setting['options'] as $value => $label) {
                    echo '
								<option value="', $value, '"', $value == $setting['value'] ? ' selected="selected"' : '', '>', $label, '</option>';
                }
                echo '
								</select>
							</dd>';
            } elseif ($setting['type'] == 'boardicons') {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>';
                // get all boards
                $brds = fBoards();
                $settings['tp_boardicons'] = my_readfolder($settings['theme_dir'] . '/images/boardicons', $settings['theme_url'] . '/images/boardicons', '.png');
                // show all available icons for display, put the number on top
                echo '
							<div class="icon_numbers">';
                foreach ($settings['tp_boardicons'] as $value => $path) {
                    echo '
								<div style="background-image: url(', $path, ');"><span>', $value, '</span></div>';
                }
                echo '	</div><br class="clear" /><hr>
							<div class="bwgrid">';
                // show board choices
                foreach ($brds as $bid => $bname) {
                    echo '<div class="bwcell8"><div style="padding: 4px;">
								<select name="options[', $setting['id'] . $bid . ']" id="', $setting['id'], '">';
                    foreach ($settings['tp_boardicons'] as $value => $path) {
                        echo '
								<option value="', $value, '"', $settings[$setting['id'] . $bid] == $value ? ' selected="selected"' : '', '>', $value, '</option>';
                    }
                    echo '
								</select> ', $bname, '
							</div></div>';
                }
                echo '	</div>
							</dd>';
            } elseif ($setting['type'] == 'cssbackground') {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>';
                // get all boards
                $settings['tp_cssbg'] = my_readfolder($settings['theme_dir'] . '/images/theme', $settings['theme_url'] . '/images/theme', '.jpg', $setting['prefix']);
                // the 0 option..
                $value = 0;
                echo '
								<label for="', $setting['id'] . '_' . $value . '"><input style="float: left; margin-top: 1rem;" type="radio" name="options[', $setting['id'], ']" id="', $setting['id'], '_', $value, '" value=""', empty($setting['value']) ? ' checked' : '', '>
									<span style="', empty($setting['value']) ? 'opacity: 0.5;' : '', 'margin: 0 0 2px 30px; height: 50px; display: block; background: #fff;">None</span>
								</label>';
                foreach ($settings['tp_cssbg'] as $value => $path) {
                    echo '
								<label for="', $setting['id'] . '_' . $value . '"><input style="float: left; margin-top: 1rem;" type="radio" name="options[', $setting['id'], ']" id="', $setting['id'], '_', $value, '" value="', $path, '"', $setting['value'] == $path ? ' checked' : '', '>
									<span style="', $setting['value'] == $path ? 'opacity: 0.5;' : '', 'margin: 0 0 2px 30px; height: 50px; display: block; background-image: url(', $path, ');"></span>
								</label>';
                }
                echo '	<br>
							</dd>';
            } else {
                echo '
							<dt>
								<label for="', $setting['id'], '">', $setting['label'], '</label>:';
                if (isset($setting['description'])) {
                    echo '<br />
								<em class="smalltext">', $setting['description'], '</em>';
                }
                echo '
							</dt>
							<dd>
								<input type="text" name="', !empty($setting['default']) ? 'default_' : '', 'options[', $setting['id'], ']" id="', $setting['id'], '" value="', $setting['value'], '"', $setting['type'] == 'number' ? ' size="5"' : (empty($setting['size']) ? ' size="40"' : ' size="' . $setting['size'] . '"'), ' class="input_text" />
							</dd>';
            }
        }
        echo '
					</dl>
				</div>';
    }
    echo '
		</div>
					<div class="themepadding righttext">
						<input type="submit" name="submit" value="', $txt['save'], '" class="button_submit" />
					</div>
				</div>
			</div>';
    // !!! Why can't I edit the default theme popup.
    if ($context['theme_settings']['theme_id'] != 1) {
        echo '
			<h3 class="catbg">', $txt['theme_edit'], '</h3>
			<div class="windowbg">
				<div class="content">
					<ul class="reset">
						<li>
							<a href="', $scripturl, '?action=admin;area=theme;th=', $context['theme_settings']['theme_id'], ';', $context['session_var'], '=', $context['session_id'], ';sa=edit;filename=index.template.php">', $txt['theme_edit_index'], '</a>
						</li>
						<li>
							<a href="', $scripturl, '?action=admin;area=theme;th=', $context['theme_settings']['theme_id'], ';', $context['session_var'], '=', $context['session_id'], ';sa=edit;directory=css">', $txt['theme_edit_style'], '</a>
						</li>
					</ul>
				</div>
			</div>';
    }
    echo '
			<h3 class="catbg">', $txt['theme_url_config'], '</h3>
			<div class="windowbg2">
				<div class="content">
					<dl class="settings">
						<dt>
							<label for="theme_name">', $txt['actual_theme_name'], '</label>
						</dt>
						<dd>
							<input type="text" id="theme_name" name="options[name]" value="', $context['theme_settings']['name'], '" size="32" class="input_text" />
						</dd>
						<dt>
							<label for="theme_url">', $txt['actual_theme_url'], '</label>
						</dt>
						<dd>
							<input type="text" id="theme_url" name="options[theme_url]" value="', $context['theme_settings']['actual_theme_url'], '" size="50" style="max-width: 100%; width: 50ex;" class="input_text" />
						</dd>
						<dt>
							<label for="images_url">', $txt['actual_images_url'], '</label>
						</dt>
						<dd>
							<input type="text" id="images_url" name="options[images_url]" value="', $context['theme_settings']['actual_images_url'], '" size="50" style="max-width: 100%; width: 50ex;" class="input_text" />
						</dd>
						<dt>
							<label for="theme_dir">', $txt['actual_theme_dir'], '</label>
						</dt>
						<dd>
							<input type="text" id="theme_dir" name="options[theme_dir]" value="', $context['theme_settings']['actual_theme_dir'], '" size="50" style="max-width: 100%; width: 50ex;" class="input_text" />
						</dd>
					</dl>
				</div>
				<span class="botslice"><span></span></span>
			</div>
			<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
		</form>
	</div>
	<br class="clear" />
	<script type="text/javascript">
		function updateSlider(output, val, css)
		{
			document.getElementById(output).value = val;
			document.getElementById(css).className = \'w\' + val;
		}
	</script>
	';
    if (!empty($context['theme_variants'])) {
        echo '
		<script type="text/javascript"><!-- // --><![CDATA[
		var oThumbnails = {';
        // All the variant thumbnails.
        $count = 1;
        foreach ($context['theme_variants'] as $key => $variant) {
            echo '
			\'', $key, '\': \'', $variant['thumbnail'], '\'', count($context['theme_variants']) == $count ? '' : ',';
            $count++;
        }
        echo '
		}

		function changeVariant(sVariant)
		{
			document.getElementById(\'variant_preview\').src = oThumbnails[sVariant];
		}
		// ]]></script>';
    }
}