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 © 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. }
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> <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>'; } }