Initial commit

This commit is contained in:
snow flurry 2025-02-26 21:14:55 -08:00
commit e4e438ba89
169 changed files with 9860 additions and 0 deletions

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
out/
packages/
# I'd like to find a way to share the Blender file for the F9 key, but it's
# full of random system memory I'd rather not share.
3d/

4
Makefile Normal file
View file

@ -0,0 +1,4 @@
PKGDIR := $(PWD)/out
packages:
make PKGDIR=$(PKGDIR) -C $(PWD)/plugin

14
README.md Normal file
View file

@ -0,0 +1,14 @@
# Custom assets for F9
To build them all:
```
make packages
```
Output will be in `packages/`.
# License
BSD-2-Clause for the code portions. Not sure on the custom graphics yet.

BIN
favicon.ico Normal file

Binary file not shown.

After

Width: 64px  |  Height: 64px  |  Size: 17 KiB

26
plugin/Makefile Normal file
View file

@ -0,0 +1,26 @@
MODS := \
f9_buttons \
f9_emotes \
f9_theme
PKGDIR := $(PWD)/../packages
.PHONY: $(MODS) all
all: $(MODS)
$(MODS): $(PKGDIR)
@echo '#'
@echo '# Building $@'
@echo '#'
@make PKGDIR=$(PKGDIR) -C $@
$(PKGDIR):
@mkdir $(PKGDIR)
CLEAN_MODS := $(patsubst %,clean_%,$(MODS))
.PHONY: clean $(CLEAN_MODS)
clean: $(CLEAN_MODS)
$(CLEAN_MODS):
@make PKGDIR=$(PKGDIR) -C $(patsubst clean_%,%,$@) clean

View file

@ -0,0 +1,3 @@
PROJECT := f9_buttons
include ../plugin.mk

View file

@ -0,0 +1,58 @@
<?php
/*
* F9 Menu Buttons
* @version 1.0
*
* blah blah MIT or whatever idc
*/
if (!defined('SMF'))
die('nice try, dodongo');
function hook_f9_buttons(&$buttons)
{
global $context, $scripturl;
$search_idx = 0;
foreach (array_keys($buttons) as $key) {
$search_idx++;
if ($key == 'search') {
break;
}
}
$new_buttons = array(
'profile' => array(
'title' => 'Profile',
'href' => $scripturl . '?action=profile;u=' . $context['user']['id'],
'show' => !empty($context['user']['is_logged']),
'sub_buttons' => array(
),
),
'ucp' => array(
'title' => 'Settings',
'href' => $scripturl . '?action=profile;area=account;u=' . $context['user']['id'],
'show' => !empty($context['user']['is_logged']),
'sub_buttons' => array(
),
),
);
if ($context['allow_pm']) {
$new_buttons[] = array(
'title' => 'Messages',
'href' => $scripturl . '?action=pm',
'show' => !empty($context['user']['is_logged']),
'sub_buttons' => array(
),
'amt' => $context['user']['unread_messages'],
);
}
$buttons = array_merge(
array_slice($buttons, 0, $search_idx, true),
$new_buttons,
array_slice($buttons, $search_idx, null, true),
);
}
?>

View file

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>@hl-flurry:f9-buttons</id>
<name>F9 Nav Buttons</name>
<version>1.0</version>
<type>modification</type>
<install for="2.1.* - 2.1.99">
<readme parsebbc="true">readme.txt</readme>
<require-file name="f9_buttons.php" destination="$sourcedir" />
<hook hook="integrate_menu_buttons" function="hook_f9_buttons" file="$sourcedir/f9_buttons.php" />
</install>
<uninstall for="2.1.* - 2.1.99">
<remove-file name="$sourcedir/f9_buttons.php" />
<hook hook="integrate_menu_buttons" function="hook_f9_buttons" file="$sourcedir/f9_buttons.php" reverse="true" />
</uninstall>
</package-info>

View file

@ -0,0 +1,3 @@
[size=x-large][b]Nav Buttons for F9[/b][/size]
This adds the "Profile" and "Account" buttons to the navbar.

2
plugin/f9_emotes/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
out
f9_emotes.tar.gz

49
plugin/f9_emotes/Makefile Normal file
View file

@ -0,0 +1,49 @@
# "My name is OZYMANDIAS, King of Kings:
# Look on my Makefiles, ye Mighty, and despair!"
# No thing beside remains. Round the decay
# Of that collossal wreck, boundless and bare
# The lone and level sands stretch far away.
# Jokes aside: If you're looking to add emoticons, you're probably looking for
# the file named SMILEYS.
STAGEDIR := out
EMOTEDIR := $(STAGEDIR)/Smileys/f9
SRCDIR := src
PKGDIR := $(PWD)
GIFNAMES := $(shell sed '/^\(#\|$$\)/d' SMILEYS | awk '{print $$2}')
OUTGIFS := $(patsubst %,$(EMOTEDIR)/%.gif,$(GIFNAMES))
COMMA := ,
EMOTELIST := $(patsubst %,"%"$(COMMA)\n,$(GIFNAMES))
MISC_SRCS := $(wildcard $(SRCDIR)/*)
MISC_OUT := $(patsubst $(SRCDIR)/%,$(STAGEDIR)/%,$(MISC_SRCS))
PROJECT := f9_emotes
include ../plugin.mk
pre-package: $(OUTGIFS) $(MISC_OUT)
$(STAGEDIR)/%.php: $(SRCDIR)/%.php
@echo $< '=>' $@
@sed 's/@@SMILEYS@@/\n $(EMOTELIST)/' $< > $@
$(STAGEDIR)/%: $(SRCDIR)/%
@echo $< '=>' $@
@cp $< $@
$(EMOTEDIR)/%.gif : SRC = $(shell grep -E '\b$*$$' SMILEYS | awk '{print $$1}').gif
$(EMOTEDIR)/%.gif: out/Smileys/f9
@echo ' +' $(SRC)
@cp $(SRC) $@
$(EMOTEDIR):
mkdir -p $@
.PHONY: clean
clean:
rm -fr $(STAGEDIR)
rm -f f9_emotes.tar.gz

View file

@ -0,0 +1,24 @@
# F9 Emoticon Pack
## Packaging
Run `gmake` (or `make`, for Linux users). The package should be at `f9_emotes.tar.gz`.
## Emote Sources
- `phpbb/`: phpBB 2.x emotes, created by [Tom Beddard]
- `msn/`: MSN Messenger emotes
- `eggbug/`: Eggbug emotes, created by [Caius Nocturne]
## Adding new emotes
Put them somewhere and add them to `SMILEYS`, like so:
```
my_emotes/smile my_smile
```
Currently, all emotes are expected to be GIFs. This is probably a bad idea, but works best with the existing emotes.
[Tom Beddard]: https://sub.blue
[Caius Nocturne]: https://nocturne.works

51
plugin/f9_emotes/SMILEYS Normal file
View file

@ -0,0 +1,51 @@
# Lines starting with '#' are ignored.
# First column is the source path (relative to this file), second
# column is the filename in the emoticon pack.
# Icons from phpBB2
phpbb/icon_arrow arrow
phpbb/icon_biggrin grin
phpbb/icon_confused undecided
phpbb/icon_cool cool
phpbb/icon_cry cry
phpbb/icon_eek eek
phpbb/icon_evil evil
phpbb/icon_exclaim exclaim
phpbb/icon_idea idea
phpbb/icon_lol laugh
phpbb/icon_mad angry
phpbb/icon_mrgreen mrgreen
phpbb/icon_neutral neutral
phpbb/icon_question question
phpbb/icon_razz tongue
phpbb/icon_redface embarrassed
phpbb/icon_rolleyes rolleyes
phpbb/icon_sad sad
phpbb/icon_smile smiley
phpbb/icon_surprised shocked
phpbb/icon_twisted twisted
phpbb/icon_wink wink
# Icons from MSN
msn/omg omg
msn/turtle msnturt
msn/xbox xbox
# Eggbug
eggbug/eggbug_asleep eggbug_asleep
eggbug/eggbug eggbug
eggbug/eggbug_devious eggbug_devious
eggbug/eggbug_heart_sob eggbug_heart_sob
eggbug/eggbug_uwu eggbug_uwu
eggbug/eggbug_wink eggbug_wink
eggbug/eggbug_pensive eggbug_pensive
eggbug/eggbug_shocked eggbug_shocked
eggbug/eggbug_tuesday eggbug_tuesday
eggbug/eggbug_nervous eggbug_nervous
# Random emotes
misc/imcold imcold
eggbug/eggbug_smile_hearts eggbug_smile_hearts
eggbug/eggbug_relieved eggbug_relieved
eggbug/eggbug_sob eggbug_sob
eggbug/eggbug_pleading eggbug_pleading

Binary file not shown.

After

(image error) Size: 3.6 KiB

Binary file not shown.

After

(image error) Size: 3.9 KiB

Binary file not shown.

After

(image error) Size: 3.7 KiB

Binary file not shown.

After

(image error) Size: 4.4 KiB

Binary file not shown.

After

(image error) Size: 3.8 KiB

Binary file not shown.

After

(image error) Size: 3 KiB

Binary file not shown.

After

(image error) Size: 3.3 KiB

Binary file not shown.

After

(image error) Size: 3.8 KiB

Binary file not shown.

After

(image error) Size: 3.7 KiB

Binary file not shown.

After

(image error) Size: 4.1 KiB

Binary file not shown.

After

(image error) Size: 3.9 KiB

Binary file not shown.

After

(image error) Size: 3.6 KiB

Binary file not shown.

After

(image error) Size: 3 KiB

Binary file not shown.

After

(image error) Size: 3.6 KiB

Binary file not shown.

After

(image error) Size: 182 B

Binary file not shown.

After

(image error) Size: 1 KiB

Binary file not shown.

After

(image error) Size: 387 B

Binary file not shown.

After

(image error) Size: 293 B

Binary file not shown.

After

(image error) Size: 170 B

Binary file not shown.

After

(image error) Size: 172 B

Binary file not shown.

After

(image error) Size: 171 B

Binary file not shown.

After

(image error) Size: 172 B

Binary file not shown.

After

(image error) Size: 498 B

Binary file not shown.

After

(image error) Size: 170 B

Binary file not shown.

After

(image error) Size: 236 B

Binary file not shown.

After

(image error) Size: 236 B

Binary file not shown.

After

(image error) Size: 171 B

Binary file not shown.

After

(image error) Size: 176 B

Binary file not shown.

After

(image error) Size: 336 B

Binary file not shown.

After

(image error) Size: 174 B

Binary file not shown.

After

(image error) Size: 349 B

Binary file not shown.

After

(image error) Size: 171 B

Binary file not shown.

After

(image error) Size: 248 B

Binary file not shown.

After

(image error) Size: 176 B

Binary file not shown.

After

(image error) Size: 650 B

Binary file not shown.

After

(image error) Size: 485 B

Binary file not shown.

After

(image error) Size: 171 B

Binary file not shown.

After

(image error) Size: 174 B

Binary file not shown.

After

(image error) Size: 174 B

Binary file not shown.

After

(image error) Size: 238 B

Binary file not shown.

After

(image error) Size: 170 B

View file

@ -0,0 +1,56 @@
<?php
if (file_exists(dirname(__FILE__) . '/SSI.php') && !defined('SMF'))
require_once(dirname(__FILE__) . '/SSI.php');
elseif(!defined('SMF'))
die('<b>Error:</b> Cannot install - please verify that you put this file in the same place as SMF\'s index.php and SSI.php files.');
if ((SMF == 'SSI') && !$user_info['is_admin'])
die('Admin privileges required.');
global $modSettings, $sourcedir;
$smileyName = 'F9';
$smileySet = 'f9';
$smiley_sets_known = $modSettings['smiley_sets_known'] . ",$smileySet";
$temp = explode(PHP_EOL, $modSettings['smiley_sets_names']);
$temp[] = $smileyName;
$temp = implode(PHP_EOL, $temp);
$smiley_sets_names = $temp;
updateSettings(
array(
'smiley_sets_known' => $smiley_sets_known,
'smiley_sets_names' => $smiley_sets_names,
'smiley_sets_default' => $smileySet,
)
);
/*
$smileys = [@@SMILEYS@@];
$i = 0;
foreach ($smileys as $smiley) {
$i++;
$smcFunc['db_insert']('replace',
'{db_prefix}smiley_files',
array(
'id_smiley' => 'int', 'smiley_set' => 'string-48', 'filename' => 'string-48',
),
array(
"$i", $smileySet, $smiley . '.gif',
),
array('id_smiley', 'smiley_set')
);
}
*/
require_once($sourcedir . '/ManageSmileys.php');
ImportSmileys($smileySet);
if (SMF == 'SSI')
echo 'Database changes are complete! Please wait ...';
?>

View file

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info>
<id>@hl-flurry:emoticons</id>
<name>F9 Emoticon Pack</name>
<version>1.0</version>
<type>modification</type>
<install for="2.1.* - 2.1.99">
<readme parsebbc="true">readme.txt</readme>
<require-dir name="Smileys/f9" destination="$smileysdir" />
<code>install.php</code>
<redirect url="?action=admin;area=smileys;sa=editsets" timeout="1000" />
</install>
<uninstall for="2.1.* - 2.1.99">
<remove-dir name="$smileysdir/f9" />
<code>uninstall.php</code>
</uninstall>
</package-info>

View file

@ -0,0 +1,3 @@
[size=x-large][b]Emoticon Pack for F9[/b][/size]
This adds the custom F9 emoticon pack to SMF.

View file

@ -0,0 +1,46 @@
<?php
if (file_exists(dirname(__FILE__) . '/SSI.php') && !defined('SMF'))
require_once(dirname(__FILE__) . '/SSI.php');
elseif(!defined('SMF'))
die('<b>Error:</b> Cannot install - please verify that you put this file in the same place as SMF\'s index.php and SSI.php files.');
if ((SMF == 'SSI') && !$user_info['is_admin'])
die('Admin privileges required.');
global $modSettings;
$smileyName = 'F9';
$smileySet = 'f9';
$temp = explode(',', $modSettings['smiley_sets_known']);
foreach ($temp as $tm => $name)
if ($name == $smileySet) unset($temp[$tm]);
$temp = implode(',', $temp);
$smiley_sets_known = $temp;
$temp = explode(PHP_EOL, $modSettings['smiley_sets_names']);
foreach ($temp as $tm => $name)
if ($name == $smileyName) unset($temp[$tm]);
$temp = implode(PHP_EOL, $temp);
$smiley_sets_names = $temp;
updateSettings(
array(
'smiley_sets_known' => $smiley_sets_known,
'smiley_sets_names' => $smiley_sets_names,
'smiley_sets_default' => explode(',', $smiley_sets_known)[0],
)
);
$smcFunc['db_query']('', '
DELETE FROM {db_prefix}smiley_files
WHERE smiley_set = {string:set}',
array(
'set' => $smileySet,
)
);
if (SMF == 'SSI')
echo 'Database changes are complete! Please wait...';
?>

1
plugin/f9_theme/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
src/scripts/minified_*

9
plugin/f9_theme/Makefile Normal file
View file

@ -0,0 +1,9 @@
PKGDIR := $(PWD)
SRCDIR := src
all: $(PKGDIR)/f9_theme.tar.gz
$(PKGDIR)/f9_theme.tar.gz:
tar -czf $@ -C src .
clean:

View file

@ -0,0 +1,578 @@
<?php
/**
* Simple Machines Forum (SMF)
*
* @package SMF
* @author Simple Machines https://www.simplemachines.org
* @copyright 2022 Simple Machines and individual contributors
* @license https://www.simplemachines.org/about/smf/license.php BSD
*
* @version 2.1.2
*/
/**
* The main messageindex.
*/
function template_main()
{
global $context, $settings, $options, $scripturl, $modSettings, $txt;
echo '<div id="display_head" class="information">
<h2 class="display_title">', $context['name'], '</h2>';
if (isset($context['description']) && $context['description'] != '')
echo '
<p>', $context['description'], '</p>';
if (!empty($context['moderators']))
echo '
<p>', count($context['moderators']) === 1 ? $txt['moderator'] : $txt['moderators'], ': ', implode(', ', $context['link_moderators']), '.</p>';
if (!empty($settings['display_who_viewing']))
{
echo '
<p>';
// Show just numbers...?
if ($settings['display_who_viewing'] == 1)
echo count($context['view_members']), ' ', count($context['view_members']) == 1 ? $txt['who_member'] : $txt['members'];
// Or show the actual people viewing the topic?
else
echo empty($context['view_members_list']) ? '0 ' . $txt['members'] : implode(', ', $context['view_members_list']) . ((empty($context['view_num_hidden']) || $context['can_moderate_forum']) ? '' : ' (+ ' . $context['view_num_hidden'] . ' ' . $txt['hidden'] . ')');
// Now show how many guests are here too.
echo $txt['who_and'], $context['view_num_guests'], ' ', $context['view_num_guests'] == 1 ? $txt['guest'] : $txt['guests'], $txt['who_viewing_board'], '
</p>';
}
echo '
</div>';
if (!empty($context['boards']) && (!empty($options['show_children']) || $context['start'] == 0))
{
echo '
<div id="board_', $context['current_board'], '_childboards" class="boardindex_table main_container">
<div class="cat_bar">
<h3 class="catbg">', $txt['sub_boards'], '</h3>
</div>';
foreach ($context['boards'] as $board)
{
echo '
<div id="board_', $board['id'], '" class="up_contain ', (!empty($board['css_class']) ? $board['css_class'] : ''), '">
<div class="board_icon">
', function_exists('template_bi_' . $board['type'] . '_icon') ? call_user_func('template_bi_' . $board['type'] . '_icon', $board) : template_bi_board_icon($board), '
</div>
<div class="info">
', function_exists('template_bi_' . $board['type'] . '_info') ? call_user_func('template_bi_' . $board['type'] . '_info', $board) : template_bi_board_info($board), '
</div><!-- .info -->';
// Show some basic information about the number of posts, etc.
echo '
<div class="board_stats">
', function_exists('template_bi_' . $board['type'] . '_stats') ? call_user_func('template_bi_' . $board['type'] . '_stats', $board) : template_bi_board_stats($board), '
</div>';
// Show the last post if there is one.
echo '
<div class="lastpost">
', function_exists('template_bi_' . $board['type'] . '_lastpost') ? call_user_func('template_bi_' . $board['type'] . '_lastpost', $board) : template_bi_board_lastpost($board), '
</div>';
// Won't somebody think of the children!
if (function_exists('template_bi_' . $board['type'] . '_children'))
call_user_func('template_bi_' . $board['type'] . '_children', $board);
else
template_bi_board_children($board);
echo '
</div><!-- #board_[id] -->';
}
echo '
</div><!-- #board_[current_board]_childboards -->';
}
// Let them know why their message became unapproved.
if ($context['becomesUnapproved'])
echo '
<div class="noticebox">
', $txt['post_becomes_unapproved'], '
</div>';
// If this person can approve items and we have some awaiting approval tell them.
if (!empty($context['unapproved_posts_message']))
echo '
<div class="noticebox">
', $context['unapproved_posts_message'], '
</div>';
if (!$context['no_topic_listing'])
{
echo '
<div class="pagesection">
', $context['menu_separator'], '
<div class="pagelinks floatleft">
<a href="#bot" class="button">', $txt['go_down'], '</a>
', $context['page_index'], '
</div>
', template_button_strip($context['normal_buttons'], 'right');
// Mobile action buttons (top)
if (!empty($context['normal_buttons']))
echo '
<div class="mobile_buttons floatright">
<a class="button mobile_act">', $txt['mobile_action'], '</a>
</div>';
echo '
</div>';
// If Quick Moderation is enabled start the form.
if (!empty($context['can_quick_mod']) && $options['display_quick_mod'] > 0 && !empty($context['topics']))
echo '
<form action="', $scripturl, '?action=quickmod;board=', $context['current_board'], '.', $context['start'], '" method="post" accept-charset="', $context['character_set'], '" class="clear" name="quickModForm" id="quickModForm">';
echo '
<div id="messageindex">';
echo '
<div class="title_bar" id="topic_header">';
// Are there actually any topics to show?
if (!empty($context['topics']))
{
echo '
<div class="board_icon"></div>
<div class="info">', $context['topics_headers']['subject'], ' / ', $context['topics_headers']['starter'], '</div>
<div class="board_stats centertext">', $context['topics_headers']['replies'], ' / ', $context['topics_headers']['views'], '</div>
<div class="lastpost">', $context['topics_headers']['last_post'], '</div>';
// Show a "select all" box for quick moderation?
if (!empty($context['can_quick_mod']) && $options['display_quick_mod'] == 1)
echo '
<div class="moderation">
<input type="checkbox" onclick="invertAll(this, this.form, \'topics[]\');">
</div>';
// If it's on in "image" mode, don't show anything but the column.
elseif (!empty($context['can_quick_mod']))
echo '
<div class="moderation"></div>';
}
// No topics... just say, "sorry bub".
else
echo '
<h3 class="titlebg">', $txt['topic_alert_none'], '</h3>';
echo '
</div><!-- #topic_header -->';
// Contain the topic list
echo '
<div id="topic_container">';
$mutedTopics = 0;
foreach ($context['topics'] as $topic)
{
// Hack to handle muted threads in CSS
if (!empty($topic['topic_muted'])) {
if (isset($_REQUEST['showmuted'])) {
$topic['css_class'] .= ' mutedShow';
} else {
$topic['css_class'] .= ' muted';
$mutedTopics++;
}
}
echo '
<div class="', $topic['css_class'], '">
<div class="board_icon">
<img src="', $topic['first_post']['icon_url'], '" alt="">
', $topic['is_posted_in'] ? '<span class="main_icons profile_sm"></span>' : '', '
</div>
<div class="info', !empty($context['can_quick_mod']) ? '' : ' info_block', '">
<div ', (!empty($topic['quick_mod']['modify']) ? 'id="topic_' . $topic['first_post']['id'] . '" ondblclick="oQuickModifyTopic.modify_topic(\'' . $topic['id'] . '\', \'' . $topic['first_post']['id'] . '\');"' : ''), '>';
// Now we handle the icons
echo '
<div class="icons floatright">';
if ($topic['is_watched'])
echo '
<span class="main_icons watch" title="', $txt['watching_this_topic'], '"></span>';
if ($topic['is_locked'])
echo '
<span class="main_icons lock"></span>';
if ($topic['is_sticky'])
echo '
<span class="main_icons sticky"></span>';
if ($topic['is_redirect'])
echo '
<span class="main_icons move"></span>';
if ($topic['is_poll'])
echo '
<span class="main_icons poll"></span>';
echo '
</div>';
echo '
<div class="message_index_title">
', $topic['new'] && $context['user']['is_logged'] ? '<a href="' . $topic['new_href'] . '" id="newicon' . $topic['first_post']['id'] . '" class="new_posts">' . $txt['new'] . '</a>' : '', '
<span class="preview', $topic['is_sticky'] ? ' bold_text' : '', '" title="', $topic[(empty($modSettings['message_index_preview_first']) ? 'last_post' : 'first_post')]['preview'], '">
<span id="msg_', $topic['first_post']['id'], '">', $topic['first_post']['link'], (!$topic['approved'] ? '&nbsp;<em>(' . $txt['awaiting_approval'] . ')</em>' : ''), '</span>
</span>
</div>
<p class="floatleft">
', $txt['started_by'], ' ', $topic['first_post']['member']['link'], '
</p>
', !empty($topic['pages']) ? '<span id="pages' . $topic['first_post']['id'] . '" class="topic_pages">' . $topic['pages'] . '</span>' : '', '
</div><!-- #topic_[first_post][id] -->
</div><!-- .info -->
<div class="board_stats centertext">
<p>', $txt['replies'], ': ', $topic['replies'], '<br>', $txt['views'], ': ', $topic['views'], '</p>
</div>
<div class="lastpost">
<p>', sprintf($txt['last_post_topic'], '<a href="' . $topic['last_post']['href'] . '">' . $topic['last_post']['time'] . '</a>', $topic['last_post']['member']['link']), '</p>
</div>';
// Show the quick moderation options?
if (!empty($context['can_quick_mod']))
{
echo '
<div class="moderation">';
if ($options['display_quick_mod'] == 1)
echo '
<input type="checkbox" name="topics[]" value="', $topic['id'], '">';
else
{
// Check permissions on each and show only the ones they are allowed to use.
if ($topic['quick_mod']['remove'])
echo '<a href="', $scripturl, '?action=quickmod;board=', $context['current_board'], '.', $context['start'], ';actions%5B', $topic['id'], '%5D=remove;', $context['session_var'], '=', $context['session_id'], '" class="you_sure"><span class="main_icons delete" title="', $txt['remove_topic'], '"></span></a>';
if ($topic['quick_mod']['lock'])
echo '<a href="', $scripturl, '?action=quickmod;board=', $context['current_board'], '.', $context['start'], ';actions%5B', $topic['id'], '%5D=lock;', $context['session_var'], '=', $context['session_id'], '" class="you_sure"><span class="main_icons lock" title="', $topic['is_locked'] ? $txt['set_unlock'] : $txt['set_lock'], '"></span></a>';
if ($topic['quick_mod']['lock'] || $topic['quick_mod']['remove'])
echo '<br>';
if ($topic['quick_mod']['sticky'])
echo '<a href="', $scripturl, '?action=quickmod;board=', $context['current_board'], '.', $context['start'], ';actions%5B', $topic['id'], '%5D=sticky;', $context['session_var'], '=', $context['session_id'], '" class="you_sure"><span class="main_icons sticky" title="', $topic['is_sticky'] ? $txt['set_nonsticky'] : $txt['set_sticky'], '"></span></a>';
if ($topic['quick_mod']['move'])
echo '<a href="', $scripturl, '?action=movetopic;current_board=', $context['current_board'], ';board=', $context['current_board'], '.', $context['start'], ';topic=', $topic['id'], '.0"><span class="main_icons move" title="', $txt['move_topic'], '"></span></a>';
}
echo '
</div><!-- .moderation -->';
}
echo '
</div><!-- $topic[css_class] -->';
}
echo '
</div><!-- #topic_container -->';
if ($mutedTopics > 0) {
echo '
<div class="roadblock_notice">
<p>';
if (isset($_REQUEST['showmuted'])) {
echo $mutedTopics, ' muted topics are shown. <a href="', $scripturl, '?board=', $context['current_board'], '.', $context['start'], '">Click here to hide them.</a>';
} else {
echo $mutedTopics, ' muted topics were hidden from the page. <a href="', $scripturl, '?board=', $context['current_board'], '.', $context['start'], ';showmuted">Click here to show them.</a>';
}
echo '
</p>
</div>';
}
if (!empty($context['can_quick_mod']) && $options['display_quick_mod'] == 1 && !empty($context['topics']))
{
echo '
<div class="righttext" id="quick_actions">
<select class="qaction" name="qaction"', $context['can_move'] ? ' onchange="this.form.move_to.disabled = (this.options[this.selectedIndex].value != \'move\');"' : '', '>
<option value="">--------</option>';
foreach ($context['qmod_actions'] as $qmod_action)
if ($context['can_' . $qmod_action])
echo '
<option value="' . $qmod_action . '">' . $txt['quick_mod_' . $qmod_action] . '</option>';
echo '
</select>';
// Show a list of boards they can move the topic to.
if ($context['can_move'])
echo '
<span id="quick_mod_jump_to"></span>';
echo '
<input type="submit" value="', $txt['quick_mod_go'], '" onclick="return document.forms.quickModForm.qaction.value != \'\' &amp;&amp; confirm(\'', $txt['quickmod_confirm'], '\');" class="button qaction">
</div><!-- #quick_actions -->';
}
echo '
</div><!-- #messageindex -->';
// Finish off the form - again.
if (!empty($context['can_quick_mod']) && $options['display_quick_mod'] > 0 && !empty($context['topics']))
echo '
<input type="hidden" name="' . $context['session_var'] . '" value="' . $context['session_id'] . '">
</form>';
echo '
<div class="pagesection">
', template_button_strip($context['normal_buttons'], 'right'), '
', $context['menu_separator'], '
<div class="pagelinks floatleft">
<a href="#main_content_section" class="button" id="bot">', $txt['go_up'], '</a>
', $context['page_index'], '
</div>';
// Mobile action buttons (bottom)
if (!empty($context['normal_buttons']))
echo '
<div class="mobile_buttons floatright">
<a class="button mobile_act">', $txt['mobile_action'], '</a>
</div>';
echo '
</div>';
}
// Show breadcrumbs at the bottom too.
theme_linktree();
if (!empty($context['can_quick_mod']) && $options['display_quick_mod'] == 1 && !empty($context['topics']) && $context['can_move'])
echo '
<script>
if (typeof(window.XMLHttpRequest) != "undefined")
aJumpTo[aJumpTo.length] = new JumpTo({
sContainerId: "quick_mod_jump_to",
sClassName: "qaction",
sJumpToTemplate: "%dropdown_list%",
iCurBoardId: ', $context['current_board'], ',
iCurBoardChildLevel: ', $context['jump_to']['child_level'], ',
sCurBoardName: "', $context['jump_to']['board_name'], '",
sBoardChildLevelIndicator: "==",
sBoardPrefix: "=> ",
sCatSeparator: "-----------------------------",
sCatPrefix: "",
bNoRedirect: true,
bDisabled: true,
sCustomName: "move_to"
});
</script>';
// Javascript for inline editing.
echo '
<script>
var oQuickModifyTopic = new QuickModifyTopic({
aHidePrefixes: Array("lockicon", "stickyicon", "pages", "newicon"),
bMouseOnDiv: false,
});
</script>';
template_topic_legend();
// Lets pop the...
echo '
<div id="mobile_action" class="popup_container">
<div class="popup_window description">
<div class="popup_heading">', $txt['mobile_action'], '
<a href="javascript:void(0);" class="main_icons hide_popup"></a>
</div>
', template_button_strip($context['normal_buttons']), '
</div>
</div>';
}
/**
* Outputs the board icon for a standard board.
*
* @param array $board Current board information.
*/
function template_bi_board_icon($board)
{
global $context, $scripturl;
echo '
<a href="', ($context['user']['is_guest'] ? $board['href'] : $scripturl . '?action=unread;board=' . $board['id'] . '.0;children'), '" class="board_', $board['board_class'], '"', !empty($board['board_tooltip']) ? ' title="' . $board['board_tooltip'] . '"' : '', '></a>';
}
/**
* Outputs the board icon for a redirect.
*
* @param array $board Current board information.
*/
function template_bi_redirect_icon($board)
{
global $context, $scripturl;
echo '
<a href="', $board['href'], '" class="board_', $board['board_class'], '"', !empty($board['board_tooltip']) ? ' title="' . $board['board_tooltip'] . '"' : '', '></a>';
}
/**
* Outputs the board info for a standard board or redirect.
*
* @param array $board Current board information.
*/
function template_bi_board_info($board)
{
global $context, $scripturl, $txt;
echo '
<a class="subject mobile_subject" href="', $board['href'], '" id="b', $board['id'], '">
', $board['name'], '
</a>';
// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="', $scripturl, '?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 0 ? 'topics' : 'posts'), ';brd=', $board['id'], ';', $context['session_var'], '=', $context['session_id'], '" title="', sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link amt">!</a>';
echo '
<div class="board_description">', $board['description'], '</div>';
// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']) || !empty($board['moderator_groups']))
echo '
<p class="moderators">', count($board['link_moderators']) === 1 ? $txt['moderator'] : $txt['moderators'], ': ', implode(', ', $board['link_moderators']), '</p>';
}
/**
* Outputs the board stats for a standard board.
*
* @param array $board Current board information.
*/
function template_bi_board_stats($board)
{
global $txt;
echo '
<p>
', $txt['posts'], ': ', comma_format($board['posts']), '<br>', $txt['board_topics'], ': ', comma_format($board['topics']), '
</p>';
}
/**
* Outputs the board stats for a redirect.
*
* @param array $board Current board information.
*/
function template_bi_redirect_stats($board)
{
global $txt;
echo '
<p>
', $txt['redirects'], ': ', comma_format($board['posts']), '
</p>';
}
/**
* Outputs the board lastposts for a standard board or a redirect.
* When on a mobile device, this may be hidden if no last post exists.
*
* @param array $board Current board information.
*/
function template_bi_board_lastpost($board)
{
if (!empty($board['last_post']['id']))
echo '
<p>', $board['last_post']['last_post_message'], '</p>';
}
/**
* Outputs the board children for a standard board.
*
* @param array $board Current board information.
*/
function template_bi_board_children($board)
{
global $txt, $scripturl, $context;
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
if (!$child['is_redirect'])
$child['link'] = '' . ($child['new'] ? '<a href="' . $scripturl . '?action=unread;board=' . $child['id'] . '" title="' . $txt['new_posts'] . ' (' . $txt['board_topics'] . ': ' . comma_format($child['topics']) . ', ' . $txt['posts'] . ': ' . comma_format($child['posts']) . ')" class="new_posts">' . $txt['new'] . '</a> ' : '') . '<a href="' . $child['href'] . '" ' . ($child['new'] ? 'class="board_new_posts" ' : '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' . $txt['board_topics'] . ': ' . comma_format($child['topics']) . ', ' . $txt['posts'] . ': ' . comma_format($child['posts']) . ')">' . $child['name'] . '</a>';
else
$child['link'] = '<a href="' . $child['href'] . '" title="' . comma_format($child['posts']) . ' ' . $txt['redirects'] . ' - ' . $child['short_description'] . '">' . $child['name'] . '</a>';
// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
$child['link'] .= ' <a href="' . $scripturl . '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 0 ? 'topics' : 'posts') . ';brd=' . $child['id'] . ';' . $context['session_var'] . '=' . $context['session_id'] . '" title="' . sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link amt">!</a>';
$children[] = $child['new'] ? '<span class="strong">' . $child['link'] . '</span>' : '<span>' . $child['link'] . '</span>';
}
echo '
<div id="board_', $board['id'], '_children" class="children">
<p><strong id="child_list_', $board['id'], '">', $txt['sub_boards'], '</strong>', implode(' ', $children), '</p>
</div>';
}
}
/**
* Shows a legend for topic icons.
*/
function template_topic_legend()
{
global $context, $settings, $txt, $modSettings;
echo '
<div class="tborder" id="topic_icons">
<div class="information">
<p id="message_index_jump_to"></p>';
if (empty($context['no_topic_listing']))
echo '
<p class="floatleft">', !empty($modSettings['enableParticipation']) && $context['user']['is_logged'] ? '
<span class="main_icons profile_sm"></span> ' . $txt['participation_caption'] . '<br>' : '', '
' . ($modSettings['pollMode'] == '1' ? '<span class="main_icons poll"></span> ' . $txt['poll'] . '<br>' : '') . '
<span class="main_icons move"></span> ' . $txt['moved_topic'] . '<br>
</p>
<p>
<span class="main_icons lock"></span> ' . $txt['locked_topic'] . '<br>
<span class="main_icons sticky"></span> ' . $txt['sticky_topic'] . '<br>
<span class="main_icons watch"></span> ' . $txt['watching_topic'] . '<br>
</p>';
if (!empty($context['jump_to']))
echo '
<script>
if (typeof(window.XMLHttpRequest) != "undefined")
aJumpTo[aJumpTo.length] = new JumpTo({
sContainerId: "message_index_jump_to",
sJumpToTemplate: "<label class=\"smalltext jump_to\" for=\"%select_id%\">', $context['jump_to']['label'], '<" + "/label> %dropdown_list%",
iCurBoardId: ', $context['current_board'], ',
iCurBoardChildLevel: ', $context['jump_to']['child_level'], ',
sCurBoardName: "', $context['jump_to']['board_name'], '",
sBoardChildLevelIndicator: "==",
sBoardPrefix: "=> ",
sCatSeparator: "-----------------------------",
sCatPrefix: "",
sGoButtonLabel: "', $txt['quick_mod_go'], '"
});
</script>';
echo '
</div><!-- .information -->
</div><!-- #topic_icons -->';
}
?>

View file

@ -0,0 +1,252 @@
<?php
/**
* Simple Machines Forum (SMF)
*
* @package SMF
* @author Simple Machines https://www.simplemachines.org
* @copyright 2022 Simple Machines and individual contributors
* @license https://www.simplemachines.org/about/smf/license.php BSD
*
* @version 2.1.0
*/
/**
* This pseudo-template defines all the theme options
*/
function template_options()
{
global $context, $txt, $modSettings;
$context['theme_options'] = array(
'Display Options',
array(
'id' => 'dark_light',
'label' => 'Whether to use Light or Dark mode',
'options' => array(
0 => 'Use Device Settings',
1 => 'Light',
2 => 'Dark',
),
'default' => 0,
),
$txt['theme_opt_display'],
array(
'id' => 'show_children',
'label' => $txt['show_children'],
'default' => true,
),
array(
'id' => 'topics_per_page',
'label' => $txt['topics_per_page'],
'options' => array(
0 => $txt['per_page_default'],
5 => 5,
10 => 10,
25 => 25,
50 => 50,
),
'default' => true,
'enabled' => empty($modSettings['disableCustomPerPage']),
),
array(
'id' => 'messages_per_page',
'label' => $txt['messages_per_page'],
'options' => array(
0 => $txt['per_page_default'],
5 => 5,
10 => 10,
25 => 25,
50 => 50,
),
'default' => true,
'enabled' => empty($modSettings['disableCustomPerPage']),
),
array(
'id' => 'view_newest_first',
'label' => $txt['recent_posts_at_top'],
'default' => true,
),
array(
'id' => 'show_no_avatars',
'label' => $txt['show_no_avatars'],
'default' => true,
),
array(
'id' => 'show_no_signatures',
'label' => $txt['show_no_signatures'],
'default' => true,
),
array(
'id' => 'posts_apply_ignore_list',
'label' => $txt['posts_apply_ignore_list'],
'default' => false,
'enabled' => !empty($modSettings['enable_buddylist'])
),
$txt['theme_opt_posting'],
array(
'id' => 'return_to_post',
'label' => $txt['return_to_post'],
'default' => true,
),
array(
'id' => 'no_new_reply_warning',
'label' => $txt['no_new_reply_warning'],
'default' => true,
),
array(
'id' => 'auto_notify',
'label' => $txt['auto_notify'],
'default' => true,
),
array(
'id' => 'wysiwyg_default',
'label' => $txt['wysiwyg_default'],
'default' => false,
'enabled' => empty($modSettings['disable_wysiwyg']),
),
array(
'id' => 'drafts_autosave_enabled',
'label' => $txt['drafts_autosave_enabled'],
'default' => true,
'enabled' => !empty($modSettings['drafts_autosave_enabled']) && (!empty($modSettings['drafts_post_enabled']) || !empty($modSettings['drafts_pm_enabled'])),
),
array(
'id' => 'drafts_show_saved_enabled',
'label' => $txt['drafts_show_saved_enabled'],
'default' => true,
'enabled' => !empty($modSettings['drafts_show_saved_enabled']) && (!empty($modSettings['drafts_post_enabled']) || !empty($modSettings['drafts_pm_enabled'])),
),
$txt['theme_opt_moderation'],
array(
'id' => 'display_quick_mod',
'label' => $txt['display_quick_mod'],
'options' => array(
0 => $txt['display_quick_mod_none'],
1 => $txt['display_quick_mod_check'],
2 => $txt['display_quick_mod_image'],
),
'default' => true,
),
$txt['theme_opt_personal_messages'],
array(
'id' => 'popup_messages',
'label' => $txt['popup_messages'],
'default' => true,
),
array(
'id' => 'view_newest_pm_first',
'label' => $txt['recent_pms_at_top'],
'default' => true,
),
array(
'id' => 'pm_remove_inbox_label',
'label' => $txt['pm_remove_inbox_label'],
'default' => true,
),
$txt['theme_opt_calendar'],
array(
'id' => 'calendar_default_view',
'label' => $txt['calendar_default_view'],
'options' => array(
'viewlist' => $txt['calendar_viewlist'],
'viewmonth' => $txt['calendar_viewmonth'],
'viewweek' => $txt['calendar_viewweek']
),
'default' => true,
'enabled' => !empty($modSettings['cal_enabled']),
),
array(
'id' => 'calendar_start_day',
'label' => $txt['calendar_start_day'],
'options' => array(
0 => $txt['days'][0],
1 => $txt['days'][1],
6 => $txt['days'][6],
),
'default' => true,
'enabled' => !empty($modSettings['cal_enabled']),
),
);
}
/**
* This pseudo-template defines all the available theme settings (but not their actual values)
*/
function template_settings()
{
global $context, $txt;
$context['theme_settings'] = array(
array(
'id' => 'header_logo_url',
'label' => $txt['header_logo_url'],
'description' => $txt['header_logo_url_desc'],
'type' => 'text',
),
array(
'id' => 'site_slogan',
'label' => $txt['site_slogan'],
'description' => $txt['site_slogan_desc'],
'type' => 'text',
),
array(
'id' => 'og_image',
'label' => $txt['og_image'],
'description' => $txt['og_image_desc'],
'type' => 'url',
),
'',
array(
'id' => 'smiley_sets_default',
'label' => $txt['smileys_default_set_for_theme'],
'options' => $context['smiley_sets'],
'type' => 'text',
),
'',
array(
'id' => 'enable_news',
'label' => $txt['enable_random_news'],
),
array(
'id' => 'show_newsfader',
'label' => $txt['news_fader'],
),
array(
'id' => 'newsfader_time',
'label' => $txt['admin_fader_delay'],
'type' => 'number',
),
'',
array(
'id' => 'number_recent_posts',
'label' => $txt['number_recent_posts'],
'description' => $txt['zero_to_disable'],
'type' => 'number',
),
array(
'id' => 'show_stats_index',
'label' => $txt['show_stats_index'],
),
array(
'id' => 'show_latest_member',
'label' => $txt['latest_members'],
),
array(
'id' => 'show_group_key',
'label' => $txt['show_group_key'],
),
array(
'id' => 'display_who_viewing',
'label' => $txt['who_display_viewing'],
'options' => array(
0 => $txt['who_display_viewing_off'],
1 => $txt['who_display_viewing_numbers'],
2 => $txt['who_display_viewing_names'],
),
'type' => 'list',
),
);
}
?>

View file

@ -0,0 +1 @@
@import url("../css/dark_colors.css") (prefers-color-scheme: dark);

View file

@ -0,0 +1,609 @@
/* Start with most common */
.action_admin .generic_list {
overflow: auto;
}
#admin_content .windowbg {
margin: 10px 0 10px 0;
box-shadow: none;
}
#admin_content .button:not(.floatnone) {
float: right;
}
.action_admin .table_grid td {
border: 1px solid #ddd;
border-top: 0;
}
.action_admin .generic_list .flow_auto {
padding: 4px 2px;
}
.windowbg.nopadding {
margin: 0 !important;
padding: 0;
}
.windowbg ol {
margin-top: 0;
margin-bottom: 0;
}
a.help span {
margin-right: 2px;
}
.table_caption, tr.table_caption td {
color: #000;
font-size: 10px;
font-weight: bold;
}
.additional_row div.floatleft {
padding: 0 10px;
}
fieldset {
padding: 6px;
}
fieldset dl {
margin: 0;
}
legend {
font-weight: bold;
color: #000;
}
/* Styles for the admin home screen.
------------------------------------------------------- */
/* Admin quick search bar, and results page. */
.admin_search {
padding: 5px;
font-size: 0.9em;
float: right;
display: flex;
justify-content: space-between;
align-items: center;
}
.admin_search input, .admin_search select, .admin_search .button {
border-radius: 4px;
margin: 0 0 0 2px;
}
.admin_search input[type="search"] {
min-width: 0;
flex: 1 1 auto;
}
.search_results {
margin: 0 -6px;
}
.search_results li {
margin: 0;
padding: 5px 0;
overflow: auto;
line-height: 1.7em;
border-bottom: double #ccc;
}
.search_results li:last-child {
border: none;
}
.search_results li a strong {
color: #346;
}
.search_results li p {
padding: 0 20px;
line-height: 1.7em;
}
/* Cleaned this up a bit for less clutter.
/* Admin and moderation could generally do with a clean up everywhere.
/* Live news from smorg and support information. */
#live_news, #support_info {
width: 70%;
}
#support_info {
width: 30%;
padding-left: 6px;
}
#admin_main_section {
overflow: auto;
}
#admin_main_section .windowbg {
padding: 6px 0;
border-radius: 0;
height: 12em;
overflow: auto;
}
#smfAnnouncements dt {
padding: 4px 6px 2px 6px;
border-top: 1px solid #bf6900;
}
#smfAnnouncements dt a {
color: #bf6900;
font-weight: bold;
display: block;
}
#smfAnnouncements dd {
margin: 0;
padding: 6px 12px;
border-top: double #ddd;
}
fieldset.admin_group legend {
background: var(--menubar-background);
border: 1px solid var(--tertiary-border);
padding: 1px 5px;
border-radius: 3px;
}
fieldset.admin_group a {
display: inline-block;
width: 100px;
font-size: 85%;
text-align: center;
vertical-align: top;
}
fieldset.admin_group .inactive {
opacity: 0.4;
}
/* The update warning. */
#update_section {
margin: 6px 0;
}
/* The icons. */
.large_admin_menu_icon_file {
margin: 0 auto;
display: block;
width: 32px;
height: 32px;
}
.large_admin_menu_icon::before {
background: url(../images/icons/admin_sprite.png) no-repeat -5px -47px;
margin: 0 auto;
display: block;
content: '';
width: 32px;
height: 32px;
}
.large_admin_menu_icon.attachment::before {
background-position: -5px -5px;
}
.large_admin_menu_icon.ban::before {
background-position: -47px -5px;
}
.large_admin_menu_icon.boards::before {
background-position: -89px -5px;
}
.large_admin_menu_icon.calendar::before {
background-position: -131px -5px;
}
.large_admin_menu_icon.current_theme::before {
background-position: -173px -5px;
}
.large_admin_menu_icon.default::before {
background-position: -5px -47px;
}
.large_admin_menu_icon.engines::before {
background-position: -47px -47px;
}
.large_admin_menu_icon.exit::before {
background-position: -89px -47px;
}
.large_admin_menu_icon.features::before {
background-position: -131px -47px;
}
.large_admin_menu_icon.languages::before {
background-position: -173px -47px;
}
.large_admin_menu_icon.logs::before {
background-position: -5px -89px;
}
.large_admin_menu_icon.mail::before {
background-position: -47px -89px;
}
.large_admin_menu_icon.maintain::before {
background-position: -89px -89px;
}
.large_admin_menu_icon.membergroups::before {
background-position: -131px -89px;
}
.large_admin_menu_icon.members::before {
background-position: -173px -89px;
}
.large_admin_menu_icon.modifications::before {
background-position: -5px -131px;
}
.large_admin_menu_icon.news::before {
background-position: -47px -131px;
}
.large_admin_menu_icon.packages::before {
background-position: -89px -131px;
}
.large_admin_menu_icon.paid::before {
background-position: -131px -131px;
}
.large_admin_menu_icon.permissions::before {
background-position: -173px -131px;
}
.large_admin_menu_icon.posts::before {
background-position: -5px -173px;
}
.large_admin_menu_icon.regcenter::before {
background-position: -47px -173px;
}
.large_admin_menu_icon.reports::before {
background-position: -89px -173px;
}
.large_admin_menu_icon.scheduled::before {
background-position: -131px -173px;
}
.large_admin_menu_icon.search::before {
background-position: -173px -173px;
}
.large_admin_menu_icon.security::before {
background-position: -215px -5px;
}
.large_admin_menu_icon.server::before {
background-position: -215px -47px;
}
.large_admin_menu_icon.smiley::before {
background-position: -215px -89px;
}
.large_admin_menu_icon.support::before {
background-position: -215px -131px;
}
.large_admin_menu_icon.themes::before {
background-position: -215px -173px;
}
.large_admin_menu_icon.warning::before {
background-position: -5px -215px;
}
/* Styles for the support and credits page.
/* Hey, people might actually want to put their names on it now!
/* Only a couple of trivial markup hacks that wont break any mods or themes.
/* The older I get, the more devious I get. :D
/* Nobody ever themes admin anyway. That's why it looked like crap. */
#support_credits_list dl {
padding: 0 6px;
}
#support_credits_list dt {
float: left;
padding: 6px 0.8em 0 0;
text-indent: -4px;
}
#support_credits_list dd {
padding: 6px 0;
}
/* Styles for the package manager. */
#package_list .tborder {
margin: .25em 0 .25em 26px;
}
#package_list ol, #package_list ol li {
list-style: decimal;
margin-left: 50px;
border: none;
}
#package_list li {
border: 1px solid #cacdd3;
padding: 0.2em;
margin: 1px;
}
.package_section {
border: 1px solid #cacdd3;
}
span.package_server {
padding: 0 3em;
}
pre.file_content {
overflow: auto;
width: 100%;
padding-bottom: 1em;
}
#view_package table {
border-collapse: collapse;
}
#view_package td[colspan="5"] {
border: none;
font-size: 0.9em;
padding: 0;
}
/* Styles for the file permissions section. */
.file_permissions {
font-size: 0.8em;
white-space: nowrap;
}
.perms_status {
display: block;
width: 35%;
text-align: center;
}
.perm_read {
background-color: #d1f7bf;
width: 8%;
}
.perm_writable {
background-color: #ffbbbb;
width: 8%;
}
.perm_execute {
background-color: #fdd7af;
width: 8%;
}
.perm_custom {
background-color: #c2c6c0;
width: 8%;
}
.perm_no_change {
background-color: #eee;
width: 8%;
}
/* Styles for the BBC permissions */
.list_bbc {
width: 33%;
}
/* Styles for the manage boards section. */
#manage_boards {
overflow: auto;
}
.roundframe .windowbg {
border: 0;
padding: 0;
background: none;
}
#manage_boards li.windowbg {
padding: 8px 0;
margin: 0;
border-radius: 0;
border: 1px solid #ddd;
border-bottom: none;
}
#manage_boards li.windowbg:first-child {
border-top: none;
}
#manage_boards li.windowbg:last-child {
border-bottom: 1px solid #ddd;
}
#manage_boards li.windowbg:hover {
background: #d0e7f8;
}
#manage_boards li .floatleft {
font-weight: bold;
padding: 0 6px;
}
#manage_boards li#recycle_board {
background-color: #dee;
}
#manage_boards li.redirect_board, #manage_boards li.redirect_board:hover {
background-color: #eed;
}
.move_links {
padding: 0 13px 0 0;
}
#manage_boards .button {
margin: 0 8px 0 0;
}
#manage_boards dl {
padding: 8px 6px 0 6px;
}
#manage_boards dl textarea, #manage_boards dl table {
margin: 0 0 8px 0;
}
#manage_boards span.post_group, #manage_boards span.regular_members {
border-bottom: 1px dotted #000;
cursor: help;
}
.select_all_box {
display: none;
}
/* Styles for the manage members section. */
.msearch_details {
display: block;
width: 49%;
}
dl.right dt {
padding-right: 10px;
}
/* Styles for the manage membergroups section. */
.denyboards_layout .board:hover {
background: #e3e9ec;
}
.all_boards_in_cat {
margin-left: 2.5em;
}
/* Styles for the question and answers */
fieldset.qa_fieldset {
clear: both;
display: none;
}
/* Styles for the manage search section. */
span.search_weight {
width: 40px;
padding: 0 0.5em;
text-align: right;
}
.search_settings {
width: 47%;
}
/* Styles for the manage bans section. */
.ban_restriction {
margin: 0.2em 0 0.2em 2.2em;
}
.ban_settings {
width: 46%;
}
#manage_bans dl {
margin-bottom: 1em;
}
#manage_bans fieldset dl.settings {
margin-bottom: 0;
}
#manage_bans textarea {
min-height: 4em;
height: 5em;
}
/* Styles for the manage subscriptions section. */
#fixed_area {
width: 97%;
}
/* Styles for the manage permissions section. */
.perm_name, .perm_profile, .perm_board {
display: block;
width: 40%;
}
.perm_boards {
padding: 0;
margin: 0 0 0.6em 0;
}
.perm_boards li {
list-style-type: none;
border: 1px solid #cacdd3;
border-top: 0;
padding: 0.2em;
}
.perm_boards li:first-child {
border-top: 1px solid #cacdd3;
}
.perm_groups {
background-color: #fff;
}
.perms {
width: 20px;
display: inline-block;
text-align: center;
}
/* Styles for the themes section. */
ul.theme_options {
padding: 0;
margin: 0;
}
ul.theme_options li {
list-style: none;
padding: 0.4em;
}
.is_directory {
padding-left: 18px;
}
.is_directory span {
margin: -2px 3px 0 0;
}
.edit_file {
width: 100%;
font-family: monospace;
margin: 1ex 0;
white-space: pre;
}
dl.themes_list {
margin: 0;
}
dl.themes_list dt {
margin-bottom: 3px;
width: 40%;
}
dl.themes_list dd {
width: 59%;
font-style: italic;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
/* Generic boxes/textboxes requires to be full-width */
#modcenter, #agreement, #reserved {
display: block;
width: 100%;
}
/* Styles for the moderation center. */
/* Moderation Notes */
ul.moderation_notes {
margin: 0;
padding: 0;
list-style: none;
overflow: auto;
height: 10.2em;
}
ul.moderation_notes li {
padding: 0.2em;
border-bottom: 1px solid #ccc;
}
.notes {
margin-top: 0.4em;
}
.post_note {
width: calc(100% - 17ex);
}
.post_note input {
width: 100%;
}
/* Styles for the Report generation */
#report_buttons {
min-height: 2.4em;
padding: 3px 0;
}
.report_results th {
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
}
#support_credits .sub_bar {
padding: 6px 0px 5px 0px;
}
#taskpad .button, #admin_form_wrapper {
margin: 5px 0 5px 0;
}
h3.config_hd {
background: url(../images/icons/config_hd.png) no-repeat 12px;
padding: 8px 0 8px 45px;
}
.full_width {
width: 100%;
}
#versions .table_grid {
margin: 0;
}
#Sources .half_table, #Default .half_table, #Languages .half_table {
padding-left: 20px;
}
.windowbg.highlight2 {
background: #d0e7f8;
}
/* Css edit page */
#css_preview_box {
margin-bottom: 2ex;
border: 1px solid #777;
width: 100%;
height: 400px;
}
/* Smileys and Message icons section */
.move_smileys img {
padding: 2px;
border: 2px solid transparent;
border-radius: 2px;
vertical-align: middle;
}
.move_smileys a:hover img {
border-color: #71a0c8;
}
.move_smileys .selected_item {
border-color: #ffb42d;
}
/* Progress bars */
.progress_bar {
margin: 20px auto;
max-width: 750px;
}

View file

@ -0,0 +1,351 @@
/* Styles for the calendar section.
------------------------------------------------- */
#calendar {
overflow: hidden;
}
#calendar .windowbg {
box-shadow: none;
border-radius: 0;
box-sizing: content-box;
margin: 0;
}
/* Used to indicate the current day in the grid. */
#main_grid .calendar_today span.day_text,
#month_grid .calendar_today,
.calendar_week tr.days_wrapper td.calendar_today:first-child {
font-weight: bold;
}
.calendar_today,
td.days:hover {
background: #fff;
}
#month_grid {
width: 214px;
float: left;
text-align: center;
overflow: hidden;
margin-right: 10px;
}
#month_grid h3 a {
padding: 0 6px 0 6px;
}
#month_grid table {
width: 100%;
margin-bottom: 12px;
border-collapse: collapse;
background: #f0f4f7;
border: 1px solid #ddd;
}
#main_grid {
overflow: auto;
}
#main_grid table {
width: 99.9%;
border-collapse: collapse;
background: #f0f4f7;
margin: 1px 0 0 0;
border: 1px solid #ddd;
overflow: auto;
}
#main_grid .cat_bar {
border-radius: 5px 5px 0 0;
}
#month_grid th:first-child {
background: #e7eaef;
}
#month_grid th.days {
background: #e7eaef;
font-size: smaller;
}
#month_grid th.days,
#month_grid td.weeks {
padding: 2px;
text-align: center;
}
#month_grid td.weeks {
font-size: large;
background: #e7eaef;
width: 5%;
}
#month_grid td.weeks a:hover {
text-decoration: underline;
}
#month_grid h3.catbg,
#main_grid h3.catbg {
padding: 8px 6px 4px 6px;
}
#main_grid h3.catbg span {
display: block;
font-size: 1.5em;
margin: -3px 4px 0 4px;
}
#main_grid th:first-child {
background: #e7eaef;
}
#main_grid th.days {
width: 14%;
padding: 5px 10px;
text-align: left;
background: #e7eaef;
}
#main_grid td.weeks {
text-align: center;
font-weight: bold;
font-size: 1.8em;
background: #e7eaef;
padding: 5px;
}
#main_grid td.weeks a:hover {
text-decoration: none;
}
/* Main Highlighting */
#main_grid td.disabled,
#month_grid td.disabled {
background: #eee;
border: 1px solid #ddd;
}
#main_grid td.events,
#month_grid td.events {
background: rgba(30, 245, 20, 0.1);
}
#main_grid td.holidays,
#month_grid td.holidays {
background: rgba(23, 110, 245, 0.1);
}
#main_grid td.birthdays,
#month_grid td.birthdays {
background: rgba(102, 0, 255, 0.1);
}
/* Special Case Highlighting */
#main_grid td.events:hover,
#month_grid td.events:hover,
#month_grid td.calendar_today.events {
background: rgba(30, 245, 20, 0.2);
}
#main_grid td.holidays:hover,
#month_grid td.holidays:hover,
#month_grid td.calendar_today.holidays {
background: rgba(23, 110, 245, 0.2);
}
#main_grid td.birthdays:hover,
#month_grid td.birthdays:hover,
#month_grid td.calendar_today.birthdays {
background: rgba(153, 51, 255, 0.2);
}
#main_grid td.days,
#month_grid td.days {
vertical-align: top;
text-align: left;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
#main_grid td.days {
padding: 5px;
}
#month_grid td.days {
padding: 0;
width: 12.5%;
text-align: center;
}
#month_grid td.days a {
display: block;
padding: 5px;
}
#month_grid td.days a:hover {
text-decoration: none;
background: rgba(97, 135, 166, 0.2);
}
#main_grid tbody tr:nth-child(2) td.days,
#month_grid tbody tr:nth-child(2) {
border-top: 1px solid #ddd;
}
#main_grid tbody tr.days_wrapper > td:nth-child(2),
#month_grid tr.days_wrapper > td:nth-child(2) {
border-left: 1px solid #ddd;
}
#main_grid tr.days_wrapper:nth-child(2) > td.weeks {
border-top: 1px solid #ddd;
}
#main_grid table:last-child td.weeks {
border-bottom: 1px solid #ddd;
}
#main_grid tr:not(.days_wrapper) th,
#main_grid tr:not(.days_wrapper) td {
min-height: 30px;
}
#calendar_range,
#calendar_navigation {
padding: 5px 0;
text-align: center;
max-width: 50%;
margin: auto;
}
#main_grid .act_day {
font-size: 12pt;
}
#main_grid .active_post_event > a {
color: #999;
}
div.week_month_title {
font-weight: bold;
font-size: xx-large;
margin: 0.8em 0 0.4em 0.15em;
line-height: 1.2em;
}
div.week_month_title a {
color: #555;
}
td.week_post {
vertical-align: middle !important;
}
div.week_add_event {
/* text-align: center; */
}
div.week_add_event > a {
/* font-size: x-large; */
color: #999;
}
div.week_add_event > a:hover {
color: #555;
}
span.hidelink {
font-style: italic;
}
#view_button {
margin-top: -2px;
margin-left: inherit;
}
#main_grid .buttonrow,
#main_grid .buttonlist {
margin: 5px 0;
padding: 0
}
#main_grid td.days,
.calendar_week td.days {
height: 100px;
padding: 10px;
}
.modify_event:hover {
text-decoration: none;
}
.modify_event_links {
float: right;
}
.event_wrapper:not(:last-child) {
margin-bottom: 5px;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
}
.event_time, .event_location {
color: #777;
}
.post_event_link {
vertical-align: middle;
height: 18px;
display: inline-block;
}
.active_post_event {
margin-top: 1em;
}
/* Break long words in calendar table cells to avoid layout problems */
#main_grid td.days {
-webkit-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
word-wrap: break-word; /* IE fallback */
overflow-wrap: break-word;
}
/* At less than 1024px wide, #main_grid needs all the space it can get */
@media (max-width: 1023px) {
#month_grid {
display: none;
}
}
/* Small screens get the calendar in a vertical list */
@media (max-width: 665px) {
#main_grid table {
border: none;
background: none;
}
#main_grid tr {
margin-bottom: 1em;
}
#main_grid tr:first-of-type {
display: none;
}
#main_grid tr:not(:first-of-type) {
display: block;
}
#main_grid td {
display: block;
}
#main_grid .calendar_table .days {
margin-top: 0;
height: auto;
}
#main_grid .calendar_table .days:not(.disabled) {
min-height: 45px;
}
#main_grid .calendar_table .weeks a::before {
content: attr(title);
font-size: 0.65em;
margin: 0 0.5em;
vertical-align: top;
}
#main_grid .calendar_table .weeks {
margin-top: 0;
}
#main_grid .calendar_week tr {
border: 1px solid #ddd !important;
}
#main_grid .calendar_week td {
margin: 0;
height: auto;
border: none !important;
}
#main_grid .calendar_week .event_col::before,
#main_grid .calendar_week .holiday_col::before,
#main_grid .calendar_week .birthday_col::before {
content: attr(data-css-prefix);
}
#main_grid .calendar_week .holiday_col:empty {
display: none;
}
#main_grid .calendar_week .birthday_col:empty {
display: none;
}
div.week_add_event {
display: inline-block;
}
div.week_add_event > a {
font-size: 1em;
text-decoration: underline;
}
}
@media (max-width: 639px) {
.calendar_top {
padding: 12px 8px;
}
#calendar_range,
#calendar_navigation {
max-width: none;
}
}
@media (max-width: 539px) {
#calendar_range {
clear: both;
padding: 10px 0 0;
}
}
@media (max-width: 479px) {
#calendar_navigation {
clear: both;
padding: 10px 0 0;
}
}

View file

@ -0,0 +1,23 @@
/* Styles for the calendar section.
------------------------------------------------- */
#main_grid .cat_bar {
margin: 0 0 0 2px;
}
#month_grid {
float: right;
margin: 0 0 0 1%;
}
#main_grid table.weeklist td.windowbg {
border-left: 2px solid #fff;
border-bottom: 2px solid #fff;
}
#main_grid img.calendar_icon {
float: right;
margin: 0 0 0 4px;
}
#main_grid table.weeklist td.weekdays {
text-align: left;
vertical-align: middle;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
}

View file

@ -0,0 +1,171 @@
:root {
/* normal body text */
--body-background-rgb: 236, 231, 242;
--body-background: rgb(var(--body-background-rgb));
--body-text-rgb: 34, 34, 34;
--body-text: rgb(var(--body-text-rgb));
--body-shadow-rgb: 255, 255, 255;
--bold-mid-text: #333;
--bold-body-text: #444;
--link-text: #346;
--link-text-hover: var(--link-text);
--header-text: #555;
/*
* Header image
* Not technically a color, but mode-dependant.
*/
--header-image: url('../images/header_light.png');
/*
* ui elements
*/
--main-background: #fff;
--main-bg-to: #f1f3f5;
--secondary-background: #f7f7f7;
--dropdown-bg-to: #e2e9f3;
--tooltip-background: #ddd;
--tooltip-hover-background: #888;
--tooltip-hover-text: #eee;
--main-border: #b8b8b8;
--secondary-border: #666;
--tertiary-border: #ddd;
--selection-bg: #99d4ff;
--title-bar-text: #fff;
--separator: #fff;
--new-post-background: linear-gradient(#f97b00,#884d00);
/* breadcrumb nav */
--bc-bg-from: #7e5ba6;
--bc-bg-to: #68478d;
--bc-text: #fff;
--bc-border: var(--secondary-border);
--bc-separator: var(--bc-text);
/* misc boxes */
--roundframe-background: #f8f8f8;
--roundframe-border: var(--tertiary-border);
/* top bars */
--nav-bg-from: #eef;
--nav-bg-mid: #fafaff;
--nav-bg-to: var(--main-background);
/* "badges" in menus; e.g. `Messages (5)` */
--badge-background: #6d90ad;
--badge-text: #fff;
--menu-badge-background: rgba(0, 0, 0, 0.2);
/* drop-down menus */
--dropmenu-bold-text: #333;
--dropmenu-text-hover: #fff;
--dropmenu-background-hover: #597b9f;
--dropmenu-border-hover: #4a6b8c;
--menu-notify-border: #ddd;
--menu-notify-background-hover: #eee;
--menubar-background: #eee;
/* input colors */
--input-background: var(--main-background);
--input-text: var(--body-text);
--input-border: #bbb;
--input-disabled-background: #eee;
--input-disabled-text: #999;
--input-disabled-border: #b6b6b6;
--input-border-hover: #82a2bc;
--input-border-focus: #7fb0d8;
--input-valid: #f5fff0;
--input-invalid: #fff0f0;
/* highlighted (not selected!) text */
--highlight-color: #ff7200;
/* pagination */
--current-page-text: #b46100;
/* post borders */
--post-ew-border: #7f7f7f;
/* buttons */
--btn-background: #ececec;
--btn-text: var(--body-text);
--btn-shadow-rgb: 221, 221, 221;
--btn-shadow-alt: #ddd;
--btn-ns-border: #ddd;
--btn-left-border: #bbb;
--btn-right-border: #aaa;
--btn-hover-border: #6af;
--btn-active-background: #557ea0;
--btn-active-text: #fff;
--btn-active-border: #558080;
--btn-active-hover-text: #ffc187;
--btn-active-hover-bg-to: #557ea0;
--btn-active-hover-bg-from: #406482;
/* callouts */
--callout-error-bg: #ffeeee;
--callout-notice-bg: #fff6ca;
--callout-info-bg: #ccffcc;
--table-even: #f0f4f7;
--table-odd: #fdfdfd;
--table-hover: #e2eef8;
--table-locked: #e7eaef;
--table-important: #cfdce8;
--table-important-locked: #e8d8cf;
--table-highlight: #ffffe0;
/* TODO: progress bars */
/*
* editor
* For the most part, we try to follow the general UI colors. There
* are a few special elements though.
*/
--editor-btngrp-background: #ddd;
--editor-btn-fill: #111;
--editor-btn-disabled-fill: #888;
--editor-btn-invert: 0.0;
/*
* bbcode
*/
/* post quote */
--quote-ns-border: #d6dfe2;
--quote-ew-border: #aaa;
--quote-cite-separator: rgba(0, 0, 0, 0.1);
--quote-background: #e0e6f6;
--quote-alt-background: #ebf4f8;
/* this one applies to both quote and code blocks */
--quote-header-text: #666;
/* code block */
--code-background: #f3f3f3;
--code-top-border: #bbb;
--code-bottom-border: #aaa;
--code-ew-border: #dfdfdf;
/* bbcode link */
--bbcode-link: #a8b6cf;
/* warning levels */
--warn-moderate-text: #ffa500;
--warn-watch-text: green; /* ??? */
--moderation-link-background: #f59e00; /* ??? */
/* user colors */
--user-birthday-text: #920ac4;
--user-event-text: #078907;
--user-holiday-text: #025dff;
/* ajax notification bar */
--notify-bar-background: var(--main-background);
--notify-bar-color: #f96f00;
}

View file

@ -0,0 +1,66 @@
:root {
--body-background-rgb: 51, 39, 65;
--body-text-rgb: 238, 238, 238;
--body-shadow-rgb: 0, 0, 0;
--bold-mid-text: #ddd;
--bold-body-text: #ccc;
--link-text: #9bd;
--header-text: #bbb;
--header-image: url('../images/header_dark.png');
--main-background: #222;
--main-bg-to: #1a1a1a;
--secondary-background: #2a2a2a;
--dropdown-bg-to: #1a1a1a;
--tooltip-background: #333;
--tooltip-hover-background: #aaa;
--tooltip-hover-text: #222;
--code-background: #111;
--menubar-background: #333;
--main-border: #8b8b8b;
--tertiary-border: #444;
--roundframe-background: #2a2a2a;
--roundframe-border: #3a3a3a;
--nav-bg-from: #2a2a2f;
--nav-bg-mid: #25252a;
--table-even: #2a2c2f;
--table-odd: #333;
--table-hover: #556;
--table-locked: #222;
--table-important: #555;
--table-important-locked: #4a4a4a;
--table-highlight: #443;
--btn-ns-border: #666;
--btn-left-border: #444;
--btn-right-border: #333;
--btn-hover-border: #479;
--btn-shadow-rgb: 30, 30, 30;
--btn-shadow-alt: #333;
--btn-active-background: #346;
--editor-btngrp-background: #444;
--editor-btn-fill: #fff;
--editor-btn-disabled-fill: #777;
--editor-btn-invert: 1.0;
--editor-btn-selected: #666;
--quote-background: #202a3f;
--quote-alt-background: #2b3438;
--callout-error-bg: #422;
--callout-notice-bg: #442;
--callout-info-bg: #242;
--input-valid: #242;
--input-invalid: #422;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
@import url("../css/colors.css");
@import url("../css/dark_colors.css") (prefers-color-scheme: dark);
@import url("../css/jquery.sceditor.default.css");

View file

@ -0,0 +1,3 @@
@import url("../css/colors.css");
@import url("../css/dark_colors.css");
@import url("../css/jquery.sceditor.default.css");

View file

@ -0,0 +1,152 @@
/*! SCEditor | (C) 2011-2013, Sam Clarke | sceditor.com/license */
html, p, code::before, div, table {
margin: 0;
padding: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
color: var(--body-text);
line-height: 1.25;
overflow: visible;
}
html {
height: 100%;
}
.ios {
/* Needed for iOS scrolling bug fix */
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.ios body {
/* Needed for iOS scrolling bug fix */
position: relative;
overflow: auto;
}
body {
/* Needed to make sure body covers the whole editor and that
long lines don't cause horizontal scrolling */
min-height: 100%;
word-wrap: break-word;
margin: 0 5px;
padding: 0;
}
ul, ol {
margin-top: 0;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
table, td {
border: 1px dotted var(--body-text);
empty-cells: show;
min-width: 0.5ch;
}
code::before {
position: absolute;
content: 'Code:';
top: -1.35em;
left: 0;
}
code[data-title]::before {
content: 'Code: (' attr(data-title) ')';
}
code {
margin-top: 1.5em;
position: relative;
background: var(--code-background);
border: 1px solid var(--code-ew-border);
white-space: pre;
padding: .25em;
display: block;
}
.ie6 code, .ie7 code {
margin-top: 0;
}
code::before, code {
display: block;
text-align: left;
}
blockquote {
margin: 0 0 8px 0;
padding: 6px 10px;
font-size: small;
border: 1px solid var(--quote-ns-border);
border-left: 2px solid var(--quote-ew-border);
border-right: 2px solid var(--quote-ew-border);
background-color: var(--quote-background);
}
blockquote cite {
display: block;
border-bottom: 1px solid var(--quote-cite-separator);
font-size: 0.9em;
margin-bottom: 0.5em;
}
blockquote cite::before {
color: var(--body-text);
font-size: 22px;
font-style: normal;
content: '\275D';
margin-right: 5px;
vertical-align: middle;
}
blockquote cite + br,
blockquote br:last-child {
display: none;
}
h1, h2, h3, h4, h5, h6 {
padding: 0;
margin: 0;
}
/* Make sure images stay within bounds */
img {
max-width: 100%;
}
img[data-sceditor-emoticon] {
max-height: 1.35em;
}
/* Responsive Youtube embed */
.videocontainer {
max-width: 560px;
}
.videocontainer div {
position: relative;
padding-bottom: 56.25%;
}
.videocontainer iframe {
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
}
.floatleft, .floatright {
max-width: 45%;
border: 1px dashed var(--separator);
padding: 1px;
min-height: 1em;
}
.floatleft {
float: left;
clear: left;
margin: 0 1em 1em 0;
}
.floatright {
float: right;
clear: right;
margin: 0 0 1em 1em;
}
@media (max-width: 480px) {
.floatleft, .floatright {
max-width: 100% !important;
margin: 0 0.5em 1em !important;
}
}

View file

@ -0,0 +1,2 @@
@import url("../css/colors.css");
@import url("../css/jquery.sceditor.default.css");

View file

@ -0,0 +1,81 @@
.sceditor-container {
color: var(--body-text);
background: var(--main-background);
border-color: var(--tertiary-border);
}
.sceditor-container iframe,
.sceditor-container textarea {
color: var(--body-text);
background: var(--main-background);
}
div.sceditor-dnd-cover {
background: rgba(var(--body-background-rgb), 0.2);
border-color: var(--main-border);
}
div.sceditor-smileyPopup, div.sceditor-dropdown {
border-color: var(--tertiary-border);
background: var(--main-background);
color: var(--body-text);
}
div.sceditor-dropdown a,
div.sceditor-dropdown a:link {
color: var(--bold-body-text);
}
div.sceditor-dropdown .button {
background: var(--main-background);
color: var(--bold-body-text);
border-color: var(--btn-left-border);
}
div.sceditor-dropdown .button:hover {
background: var(--btn-background);
}
.sceditor-fontsize-option,
.sceditor-font-option,
.sceditor-format a {
color: var(--body-text);
}
.sceditor-color-option {
border-color: var(--separator);
}
div.sceditor-toolbar {
background: var(--secondary-background);
border-color: var(--tertiary-border);
}
div.sceditor-group {
background: var(--editor-btngrp-background);
border-color: var(--btn-left-border);
}
.sceditor-button svg {
fill: var(--editor-btn-fill);
}
.sceditor-button.disabled svg {
fill: var(--editor-btn-disabled-fill);
}
.sceditor-button:hover, .sceditor-button:active,
.sceditor-button.active {
background: var(--editor-btn-selected);
}
.sceditor-button-bold div, .sceditor-button-italic div,
.sceditor-button-underline div, .sceditor-button-strike div,
.sceditor-button-superscript div, .sceditor-button-subscript div,
.sceditor-button-pre div, .sceditor-button-left div, .sceditor-button-center div,
.sceditor-button-right div, .sceditor-button-justify div,
.sceditor-button-floatleft div, .sceditor-button-floatright div,
.sceditor-button-bulletlist div, .sceditor-button-orderedlist div, .sceditor-button-horizontalrule div {
filter: invert(var(--editor-btn-invert));
}

View file

@ -0,0 +1,895 @@
/* Some very big stuff? Dunno... */
@media (min-width: 856px) and (max-width: 1024px) {
.boardindex_table .info {
width: calc(45% - 80px);
}
.lastpost {
/* width: 20%; */
margin: 3px 0 3px 5px;
}
#alerts .alert_time {
display: none;
}
#alerts .alert_inline_time {
display: block;
}
}
/* Still not enough data or people to test this... */
/* This needs more data and this range is probably for iPad Air (alike) tablets... */
@media (min-width: 721px) and (max-width: 855px) {
.lastpost {
margin: 0 0 0 20px;
}
.board_stats {
display: none;
}
#alerts .alert_time {
display: none;
}
#alerts .alert_inline_time {
display: block;
}
}
@media (max-width: 855px) {
#profile_menu_top .textmenu,
#pm_menu_top .textmenu,
#alerts_menu_top .textmenu {
display: none;
}
#pm_menu_top .main_icons,
#alerts_menu_top .main_icons {
display: inline-block;
}
#mobile_user_menu .menu_nav {
display: flex;
}
#member_list .ip, #member_list .last_active, #member_list .user_name {
display: none !important;
}
}
@media (min-width: 720px) and (max-width: 799px) {
#top_info .welcome {
display: none;
}
/* Calendar */
#event_time_options {
width: 44%;
}
#event_title {
padding: 0;
}
#evtitle {
width: 98%;
}
.event_options_left, .event_options_right {
display: block;
max-width: unset;
width: unset;
}
#event_title input[type="text"] {
width: 100%;
}
#post_event #event_board select {
width: calc(100% - 90px);
max-width: unset;
}
}
/* We have shared things... */
@media screen and (max-width: 720px) {
/* Remove some content from the hooks table */
#list_integration_hooks th#header_list_integration_hooks_function_name, #list_integration_hooks td.function_name,
#list_integration_hooks th#header_list_integration_hooks_remove, #list_integration_hooks td.remove {
display: none;
}
/* New Mobile Action/Mod Pop (Test) */
.moderationbuttons_check {
display: none;
}
.moderationbuttons_mobile_check {
display: inline-block;
}
#mobile_action .button, #mobile_moderation .button, #mobile_action .top_menu {
width: 100%;
margin: 0;
border-radius: 0;
border-left: 0;
border-right: 0;
text-indent: 5px;
}
#mobile_action .button, #mobile_moderation .button {
line-height: 2.8em;
height: auto;
}
#mobile_action .notify_dropdown {
top: 0 !important;
left: 0 !important;
position: relative;
}
#mobile_action .top_menu {
padding: 0;
margin: 0 auto;
}
#mobile_action .notify_dropdown a {
border-bottom: 1px solid #999;
}
#mobile_action .notify_dropdown a:last-of-type {
border-bottom: none;
}
#mobile_action .notify_dropdown span {
display: none;
}
.mobile_buttons {
margin: 5px 0;
}
.mobile_buttons .button {
margin: 0;
}
.pagesection .buttonlist, #moderationbuttons {
display: none;
}
.mobile_buttons {
display: block;
}
/* Stuff */
#top_info {
padding: 5px;
}
.infolinks {
display: inline-block;
margin: 5px 7px 0 0;
}
#registration .field_icons {
float: left;
margin: 5px 0 0 3px;
}
dl.register_form dt span {
display: inline;
}
#quick_actions {
display: flex;
justify-content: flex-end;
flex-wrap: wrap;
}
#quick_actions > * {
flex: 0 1 auto;
margin: 0 5px 0 0;
max-width: 40%;
white-space: nowrap;
}
#quick_actions > .button.qaction {
flex: 0 0 auto;
margin: 0 !important;
}
/* Menu */
.quickbuttons li:hover ul {
display: none;
}
/* General */
.action_home {
width: 100% !important;
}
#wrapper {
border-left: 0;
border-right: 0;
border-radius: 0;
}
#footer {
padding: 10px;
}
#top_section .inner_wrap, #wrapper, #header, #footer .inner_wrap {
width: 100%;
}
#header {
margin-top: 0;
border: 0;
}
#upper_section, #inner_section, #content_section {
border-radius: 0;
}
#boardindex_table .stats {
display: none;
}
.login {
width: 100%;
}
#inner_wrap {
flex-flow: row wrap;
}
#inner_wrap .user,
#inner_wrap .news {
width: auto;
max-width: initial;
}
#languages_form {
padding-right: 10px;
}
/* BoardIndex */
.board_stats {
display: none;
}
.info {
width: calc(100% - 65px);
}
.lastpost {
width: 100%;
padding: 0;
display: block;
min-height: 2em;
}
.up_contain .lastpost {
border-top: 1px solid #ddd;
min-height: initial;
}
.lastpost p {
margin: 5px;
}
span.postby {
display: inline-block;
}
/* Stats Center */
#ic_recentposts {
margin: 0;
width: 100%;
}
#upshrink_stats p.inline, #upshrink_stats p.last {
padding: 5px;
}
/* MessageIndex */
#messageindex .board_icon, #messageindex .lastpost {
display: none;
}
#messageindex .info {
padding: 8px 10px;
}
.info_block {
display: block;
width: 95%;
}
.moderation a {
padding: 3px;
}
#topic_container .moderation .main_icons {
display: none;
}
/* Unread */
#unread .board_icon, #unread .lastpost, #unreadreplies .board_icon, #unreadreplies .lastpost {
display: none;
}
#unread .info, #unreadreplies .info {
padding-left: 5px;
}
/* Display (Topics) */
.poster {
float: none;
width: auto;
position: relative;
}
.postarea {
margin: 0;
}
.inner {
padding: 1em 2px;
}
.moderatorbar {
margin: 0;
}
.keyinfo {
padding-top: 5px;
margin-top: 5px;
clear: both;
}
.keyinfo .postinfo {
font-weight: normal;
}
.keyinfo .postinfo .smalltext,
.keyinfo .page_number {
opacity: 0.6;
}
.keyinfo .postinfo a.smalltext:hover {
opacity: 1;
}
img.icon, #forumposts .catbg img {
display: none;
}
.poster h4 {
display: inline-block;
}
.user_info {
display: inline;
}
.user_info li,
.custom_fields_above_member {
display: none;
}
.user_info li.title,
.user_info li.membergroup {
display: inline-block;
font-weight: normal;
}
.user_info li::before {
content: "·";
padding: 0 1ch 0 0.5ch;
}
.like_count,
.smflikebutton:last-child {
margin-bottom: 8px;
}
.button.mobile {
margin: 0 0 5px 0;
}
.pagelinks {
margin: 0;
}
/* Profile */
#admin_content .content {
padding: 0;
}
#creator dt {
width: 33%;
}
#creator dd {
width: 65%;
}
#basicinfo, #detailedinfo {
width: 100%;
}
#basicinfo {
margin: 0 0 5px 0; /* For UX */
}
/* Buddies & Ignore List */
#edit_buddies .buddy_custom_fields {
display: none;
}
/* PersonalMessages */
#personal_messages .pm_time, #personal_messages .pm_from_to {
display: none;
}
#personal_messages .pm_inline_time {
display: block;
}
/* Alerts Page */
#alerts .alert_text, #alerts .alert_time, #alerts .alert_buttons {
display: block;
}
#alerts .alert_time {
float: left;
}
#alerts .alert_text {
margin: 11px 0 0;
}
#alerts .alert_buttons .quickbuttons {
margin: 0 0 11px;
display: block;
}
#alerts .alert_image {
width: 60px;
}
/* Post Screen */
form#postmodify .roundframe, #post_event .roundframe {
padding: 5px;
}
#post_header input {
width: 100%;
}
#post_confirm_buttons .smalltext {
display: none;
}
ul.post_options {
padding: 0;
margin: 0;
}
ul.post_options li {
margin: 2px 5px 0 0;
width: 48%;
}
/* Search */
#searchform .roundframe {
padding: 5px;
}
#advanced_search dt {
text-align: left;
width: 100%;
float: left;
}
#advanced_search dd {
width: auto;
}
#advanced_search dl#search_options {
width: 100%;
}
input#searchfor, input#userspec {
width: 75%;
}
/* Hide me */
#inner_wrap.hide_720, #inner_wrap time, #inner_wrap .news,
#search_form, #smflogo, #message_index_jump_to, .nextlinks, #display_jump_to,
#siteslogan, th.id_group, th.registered, th.posts, th.reg_group, th.reg_date, td.reg_group, td.reg_date,
td.id_group, td.registered, td.posts:not(.unique), td.statsbar.posts,
#approve_list .ip, #approve_list .date_registered, #group_members .date_registered,
#main_content_section .navigate_section, .time,
#header_custom_profile_fields_field_type, #header_custom_profile_fields_active,
#header_custom_profile_fields_placement, #custom_profile_fields .active, #custom_profile_fields .field_type, #custom_profile_fields .placement {
display: none !important;
}
/* Generic Lists */
#topic_notification_list .last_post, #topic_notification_list .started_by,
#request_list .time_applied, #file_list .date, #ban_list .notes, #ban_list .reason, #ban_log .email,
#mail_queue .priority, #attachments .posted {
display: none;
}
/* Admin */
.admin_search {
float: none;
}
.table_grid.half_content {
width: 100%;
margin: 0;
padding: 0;
}
.table_grid select {
max-width: 85vw;
}
#private, #enclose {
width: 95%;
}
/* Edit Language */
#language_list .character_set {
display: none;
}
/* Generic Classes for Customizations */
.hide_720 {
display: none;
}
.block_720 {
display: block;
}
.inlineblock_720 {
display: inline-block;
}
}
/* Tricky menu */
@media (min-width: 561px) {
#mobile_user_menu.popup_container {
display: block !important;
}
div[id^="mobile_generic_menu_"].popup_container {
display: block !important;
}
#main_menu .popup_window,
#genericmenu .popup_window,
#adm_submenus .popup_window {
box-shadow: none;
border-width: 0;
background: none;
}
}
@media (max-width: 560px) {
/* This is general */
#main_menu .popup_container,
#genericmenu .popup_container,
#adm_submenus .popup_container {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 5;
}
#main_menu .popup_heading,
#genericmenu .popup_heading,
#adm_submenus .popup_heading {
display: block;
}
#main_menu {
margin: 0;
background: none;
}
#inner_wrap {
margin-bottom: 12px;
}
.popup_window,
#main_menu .popup_window,
#genericmenu .popup_window,
#adm_submenus .popup_window {
top: 15%;
width: 95vw;
min-height: auto;
max-height: 90vh;
overflow-x: hidden;
overflow-y: scroll;
}
#adm_submenus {
padding: 0;
}
#adm_submenus .dropmenu li {
float: left;
margin: 0;
}
.generic_menu {
display: none;
background: none;
}
.dropmenu {
display: block;
}
#mobile_user_menu .dropmenu,
div[id^="mobile_generic_menu_"] .generic_menu {
display: block;
}
a.mobile_user_menu,
a[class^="mobile_generic_menu_"] {
display: flex;
align-items: center;
margin: 0 0 4px 0;
}
a[class^="mobile_generic_menu_"] {
margin: 8px 0;
}
li.button_separator {
height: 0;
border-top: 1px solid rgba(var(--body-text-rgb), 0.5);
margin: 0.5em auto !important;
display: block;
}
.menu_icon {
display: inline-block;
background-color: var(--editor-btn-fill);
-webkit-mask-image: url(../images/icons/menu.svg);
mask-image: url(../images/icons/menu.svg);
height: 24px;
width: 24px;
}
.dropmenu li, .dropmenu li:hover,
.dropmenu li a, .dropmenu li a:hover,
.dropmenu li a.active, .dropmenu li a.active:hover, .dropmenu li:hover a.active,
.dropmenu li ul, .dropmenu li li, .dropmenu li li a {
width: 100%;
padding: 0;
margin: 0;
border-left: 0;
border-right: 0;
}
.dropmenu li a, .dropmenu li a:hover {
text-indent: 10px;
border-radius: 0;
padding: 5px 0 !important;
}
.dropmenu li li li a,
.dropmenu li li li a:hover {
padding: 5px 24px !important;
}
.dropmenu li a, .dropmenu li:hover a,
.dropmenu li a.active, .dropmenu li a.active:hover,
.dropmenu ul li a:hover, .dropmenu li li a:hover,
.dropmenu ul li li:hover, .dropmenu li ul,
.dropmenu li li:hover ul, .dropmenu li li ul {
border-left: 0;
border-right: 0;
}
.dropmenu ul li a {
width: auto !important;
}
.dropmenu li.subsections > a::after {
position: absolute;
padding: 5px 0;
right: 10px;
font: 83.33%/150% Arial, sans-serif;
content: "\25bc" !important;
}
.dropmenu li ul,
.dropmenu li li:hover ul, .dropmenu li li ul {
position: relative;
border-radius: 0;
left: 0;
box-shadow: none;
}
/* 3rd level menu tests */
.dropmenu li ul ul {
margin: 0 !important;
}
}
@media (min-width: 481px) and (max-width: 560px) {
/* Calendar */
#event_time_options {
width: 40%;
}
#event_title, #event_board {
width: 100%;
}
#evtitle {
width: 98%;
}
}
/* Entry level phones */
@media (max-width: 480px) {
h1.forumtitle a, h1.forumtitle {
padding: 5px 0 0 4px;
max-width: 300px;
margin: 10px 0;
}
.board_moderators {
display: none;
}
#top_info .welcome {
display: none;
}
#pm_menu, #alerts_menu, #profile_menu {
min-width: initial;
width: 25em;
max-width: calc(100vw - 17px);
}
#footer {
text-align: center;
}
#footer ul {
width: 100%;
float: none;
}
#footer li {
display: block;
float: none;
}
/* MessageIndex */
#main_content_section .pagelinks {
display: block;
}
#main_content_section .pagesection {
margin: 5px 0;
padding: 0;
}
#topic_icons p {
display: block;
width: 100%;
}
/* some new stuff for far better UX */
.mobile_subject {
position: relative;
}
fieldset {
max-width: 100%;
min-width: unset;
}
/* Register Page */
#registration .button {
font-size: 0.67em;
}
dl.register_form, dl.register_form dt, dl.register_form dd {
float: none;
width: 100%;
}
/* Login Page */
.login dt, .login dd {
float: none;
width: 100%;
text-align: left;
}
.login #ajax_loginuser, .login #ajax_loginpass, .login #loginuser, .login #loginpass, .login select {
width: 100%;
}
/* Display (Topic View) */
.subject_title input {
width: 90%;
}
#quickreply_options .roundframe {
padding: 8px 10px 12px 10px;
}
/* Post Section */
#post_header dd {
width: 55%;
}
#post_header dt {
width: 35%;
}
img#icons {
margin: 0 0 0 5px;
}
#quickreply_options #postmodify {
width: 100%;
}
/* Poll */
#poll_options dl.options {
padding: 0;
}
#poll_options dl.options dt,
#poll_options dl.options dd,
dl.settings dt, dl.settings dd,
#creator .settings dt, #creator .settings dd,
div#report_form dl.settings dd, div#report_form dl.settings dt,
#tracking dt, #tracking dd,
#detailedinfo dt, #detailedinfo dd,
#advanced_search dt, #advanced_search dd {
width: 100%;
float: none;
}
#post_draft_options dl.settings dt, #post_draft_options dl.settings dd {
width: 50%;
float: left;
}
dl.settings dd textarea, #report_comment {
width: 100%;
}
.move_topic {
width: 100%;
}
.bbc_float {
max-width: 100% !important;
margin-left: 0.5em !important;
margin-right: 0.5em !important;
}
/* PersonalMessages */
#personal_messages .pm_icon {
display: none;
}
#personal_messages div.labels {
clear: both;
}
/* Alerts page */
#alerts .alert_image {
width: 40px;
padding-left: 6px;
}
#alerts .alert_image .avatar {
display: none;
}
#alerts .alert_image .avatar + .alert_icon {
position: static;
}
/* Buddies & Ignore List */
#edit_buddies .buddy_email {
display: none;
}
/* Stats Center */
.half_content {
width: 100%;
margin: 0;
padding: 0;
}
th.recentboard, th.recenttime,
td.recentboard, td.recenttime {
display: none;
}
.sceditor-container {
min-height: 375px;
}
/* Memberlist */
th.website_url,
td.website_url, td.reg_group, td.reg_date, td.post_num {
display: none;
}
#mlist .post_count {
width: 50px;
}
#mlist .post_count .generic_bar {
border: 0;
background: transparent;
color: inherit;
}
#mlist .post_count .generic_bar .bar {
background: transparent;
box-shadow: none;
}
#mlist_search dt {
width: 100%;
display: block;
padding: 0;
}
#mlist_search dd {
padding: 0;
margin: 0;
}
#mlist_search input[type="checkbox"] {
margin: 0 13px 3px 3px;
vertical-align: middle;
}
/* Moderation */
.post_note input {
width: 75%;
}
.modbox .floatleft {
float: none;
}
#warning_list .reason, #moderation_log_list .position, #moderation_log_list .ip, #group_members .last_active,
#group_request_list .date, #group_lists .icons, #regular_membergroups_list .icons, #post_count_membergroups_list .icons, #watch_user_list .last_login {
display: none;
}
/* Admin */
#live_news, #support_info {
width: 100%;
padding: 0;
margin: 0 0 5px 0;
}
fieldset.admin_group a {
width: 50%;
float: left;
margin: 0 0 5px 0;
}
.error_info, #fatal_error {
width: 100% !important;
padding: 0 !important;
float: none;
}
/* Calendar */
.event_options_left, .event_options_right {
width: 100%;
}
#event_title, #event_board {
width: 100%;
}
#evtitle {
width: 98%;
}
/* Menu tests */
#header_news_lists_preview, tr[id^="list_news_lists_"] td:nth-child(even),
#header_smiley_set_list_default, #header_smiley_set_list_url, #header_smiley_set_list_check,
tr[id^="list_smiley_set_list_"] td:nth-child(odd),
#header_mail_queue_priority,
tr[id^="list_mail_queue_"] td:nth-child(odd),
#header_member_list_user_name, #header_member_list_ip,
#header_member_list_last_active, #header_member_list_posts {
display: none;
}
tr[id^="list_mail_queue_"] td:first-of-type,
tr[id^="list_mail_queue_"] td:last-of-type {
display: table-cell;
}
.msearch_details {
width: 100% !important;
float: none;
}
.msearch_details .righttext {
text-align: left;
}
.msearch_details input {
width: 90%;
}
.msearch_details input[type="checkbox"] {
width: 5%;
}
/* Generic Lists */
#request_list .time_applied,
#track_user_list .date, #track_user_list .date2, #file_list .filesize, #file_list .downloads,
#ban_list .added, #ban_list .num_triggers, #ban_log .date, #mail_queue .age, #attachments .subject {
display: none;
}
/* Likes */
#likes li .like_time {
display: none;
}
/* Generic Classes for Customizations */
.hide_480 {
display: none;
}
.block_480 {
display: block;
}
.inlineblock_480 {
display: inline-block;
}
}
/* iPhone Tests */
@media (max-width: 320px) {
}

View file

@ -0,0 +1,687 @@
/* Common classes to easy styling.
------------------------------------------------------- */
.floatright {
float: left;
}
.floatleft {
float: right;
}
.clear_left {
clear: right;
}
.clear_right {
clear: left;
}
.righttext {
text-align: left;
}
.lefttext {
text-align: right;
}
/* Styling for BBC tags */
.bbc_list {
text-align: right;
}
/* A quote, perhaps from another post. */
.bbc_standard_quote::before, .bbc_alternate_quote::before {
content: '\275E';
margin-left: 0.25em;
}
/* All the signatures used in the forum. If your forum users use Mozilla, Opera, or Safari, you might add max-height here ;). */
.signature, .attachments, .custom_fields_above_signature {
clear: left;
}
/* the page navigation area */
.main_icons.move::before, .main_icons.next_page::before {
background-position: -31px -57px;
}
.main_icons.previous_page::before {
background-position: -5px -31px;
}
/* Amounts */
.amt {
margin-left: 0;
margin-right: 3px;
}
/* Lists with settings use these a lot.
------------------------------------------------------- */
dl.settings {
clear: left;
}
dl.settings dt {
float: right;
clear: both;
}
dl.settings dt.windowbg {
float: right;
}
dl.settings dd {
float: left;
}
dl.settings img {
margin: 0 0 0 10px;
}
/* Styles for popup windows
------------------------------------------------------- */
.popup_heading .hide_popup {
float: left;
}
/* Styles for rounded headers.
------------------------------------------------------- */
h3.catbg .icon {
margin: -2px 0 0 5px;
}
.cat_bar .desc {
margin: -8px 13px 4px 0;
}
/* Introduce New Title Bar */
h3.titlebg, h4.titlebg, .titlebg, h3.subbg, h4.subbg, .subbg {
padding-right: 9px;
padding-left: 9px;
}
/* Styles for the standard dropdown menus.
------------------------------------------------------- */
#main_menu {
float: right;
}
#menu_nav {
padding: 0;
}
/* Level 3 submenu wrapper positioning. */
.dropmenu li ul ul {
margin: -2em 3.1em 0 0;
}
/* This is a small fix for dropmenu icons */
.dropmenu .main_icons, #profile_menu .main_icons, .dropmenu img {
margin: 0 -4px 0 8px;
}
/* Hiding Level 3 submenu off hover. */
.dropmenu li:hover ul ul, .dropmenu li ul ul, .dropmenu li:hover ul ul ul, .dropmenu li ul ul ul {
right: -9999px;
left: unset;
}
/* Reposition as visible on hover. */
.dropmenu li li:hover ul, .dropmenu li li ul {
right: 11em;
}
/* Indicator for additional levels. Best in the anchor so it stays visible on hover. */
.dropmenu li li.subsections > a::after {
left: 10px;
right: auto;
content: '\25c4';
}
/* the main title. */
h1.forumtitle {
float: right;
}
/* float these items to the left */
#siteslogan, img#smflogo {
float: left;
}
/* Tweak the SMF logo */
img#smflogo {
margin-right: 1em;
}
/* Styles for the general looks of the theme.
------------------------------------------------------- */
.user {
padding-left: 0;
text-align: left;
}
#upper_section .news {
float: right;
}
.navigate_section .unread_links {
float: left;
}
/* Profile drop it needs reverse on RTL */
#profile_menu_top > img.avatar {
float: right;
margin: 2px 0 0 5px;
}
#profile_menu .profile_user_info {
margin: 3px 10px 5px 0;
}
#profile_menu .profile_user_avatar img {
margin: 5px 10px 0 0;
}
.profile_user_links li {
padding-right: 24px;
padding-left: 0;
}
/* The framing graphics */
#search_form {
text-align: left;
}
/* The navigation list (i.e. linktree) */
.navigate_section ul li {
float: right;
}
.navigate_section ul li .dividers {
padding: 0 6px 0 2px;
}
/* the posting icons */
#postbuttons_upper ul li a span {
line-height: 19px;
padding: 0 6px 0 0;
}
.mark_read {
float: left;
}
/* Poll results */
#poll_options dl.options {
padding: 1em 2em 1em 2.5em;
margin: 0 0 1em 1em;
}
#poll_options dl.options dt {
float: right;
clear: right;
}
#poll_options dl.options dd {
float: right;
text-align: left;
}
/* poster and postarea + moderation area underneath */
.poster {
float: right;
}
.postarea, .moderatorbar {
margin: 0 175px 0 0;
}
.keyinfo h5::after {
clear: left;
}
.moderatorbar {
clear: left;
}
/* poster details and list of items */
.poster h4, .poster ul {
padding: 0;
margin: 0;
}
/* The quick buttons */
ul.quickbuttons {
float: left;
clear: left;
}
ul.quickbuttons li {
float: right;
}
.quickbuttons li:last-child, .quickbuttons li:last-child:hover {
border-radius: 4px 1px 1px 4px;
padding-bottom: 0;
}
.quickbuttons li:first-child, .quickbuttons li:first-child:hover {
border-radius: 1px 4px 4px 1px;
padding-bottom: 0;
line-height: 1.9em;
}
.quickbuttons li.quick_edit, .quickbuttons li.post_options {
line-height: 1.9em;
position: relative;
}
.quickbuttons li ul {
text-align: right;
right: unset;
left: -1px;
}
/* The buttonrow */
.buttonrow .button:last-child {
border-radius: 0;
border-right: 0;
}
.buttonrow .button:first-child {
border-radius: 0;
border-right: 1px solid #ccc;
}
.post_verification #verification_control {
margin: .3em 1em .3em 0;
}
.post {
clear: left;
}
#forumposts .modified {
float: right;
}
#forumposts .reportlinks {
margin-left: 1.5em;
text-align: left;
clear: left;
}
#moderationbuttons_strip {
float: right;
}
#moderationbuttons_strip ul {
margin: 0 0.2em 0 0;
padding: 0 1em 0 0;
}
/* The jump to box */
#display_jump_to {
text-align: left;
}
#display_jump_to select {
margin: 0 5px 0 0;
}
/* mlist */
#mlist .website_url {
width: 80px;
}
/* Styles for edit post section
---------------------------------------------------- */
#post_header dt {
float: right;
}
#post_header dd {
float: right;
}
ul.post_options {
margin: 0 1em 0 0;
}
ul.post_options li {
float: right;
margin: 0 2px;
}
/* Styles for edit event section
---------------------------------------------------- */
#post_event div.event_options {
float: left;
}
#post_event #event_main input {
margin: 0 0 1em 0;
float: right;
}
#post_event #event_main div.smalltext {
float: left;
}
#post_event ul.event_main li {
float: left;
}
#post_event ul.event_options {
padding: 0 .7em .7em 0;
}
#post_event #event_main select, #post_event ul.event_options li select,
#post_event ul.event_options li input[type="checkbox"] {
margin: 0 0 0 1em;
}
/* Styles for edit poll section.
---------------------------------------------------- */
#edit_poll fieldset input {
margin-right: 7em;
}
#edit_poll ul.poll_main li {
padding-right: 1em;
}
#edit_poll ul.poll_main input {
margin-right: 1em;
}
#edit_poll div.poll_options {
float: right;
}
#edit_poll ul.poll_main, dl.poll_options {
padding: 0 .7em 0 0;
}
#edit_poll dl.poll_options dt {
padding: 0 1em 0 0;
}
#edit_poll dl.poll_options dd input {
margin-right: 0;
}
/* Styles for the personal messages section.
------------------------------------------------- */
#personal_messages h3 span#author, #personal_messages h3 span#topic_title {
float: right;
}
#personal_messages h3 span#author {
margin: 0 0.5em 0 0;
}
#personal_messages h3 span#topic_title {
margin: 0 9em 0 0;
}
#personal_messages .labels {
padding: 0 0 0 1em;
}
#to_item_list_container div, #bcc_item_list_container div {
float: right;
margin: 0;
}
/* Styles for the move topic section. */
.move_topic {
text-align: right;
}
/* Styles for the login areas.
------------------------------------------------------- */
.login dt {
float: right;
}
.login dd {
float: right;
text-align: right;
}
.login h3 img {
margin: 0 0 0.5em;
}
/* Additional profile fields */
dl.register_form {
clear: left;
}
dl.register_form dt {
float: right;
}
/* Styles for maintenance mode.
------------------------------------------------------- */
#maintenance_mode img.floatleft {
margin-left: 1em;
}
/* common for all admin sections */
h3.titlebg img {
margin-left: 0.5em;
}
tr.titlebg td {
padding-right: 0.7em;
}
div#admin_menu {
padding-right: 0;
}
#admin_content {
clear: right;
}
/* Styles for generic tables.
------------------------------------------------------- */
#info_center .cat_bar, .table_grid tr.catbg th {
text-align: right;
}
.message_index_title {
margin-left: 40px;
}
/* Styles for info boxes.
------------------------------------------------- */
.errorbox, .noticebox, .infobox {
padding: 7px 35px 7px 10px;
}
.errorbox::before, .noticebox::before, .infobox::before {
left: 0;
right: 10px;
}
.errorbox p.alert {
margin: 0 0 0 4px;
float: right;
}
.errorbox, .noticebox, .infobox {
padding: 7px 35px 7px 10px;
}
/* Styles for the profile section.
------------------------------------------------- */
#basicinfo {
float: right;
}
#detailedinfo {
float: left;
}
#basicinfo .icon_fields li {
float: right;
margin-right: 0;
margin-left: 5px;
}
#avatar_server_stored div {
float: right;
}
#detailedinfo dt, #tracking dt {
float: right;
}
#userstatus .smalltext, .pm_icon {
margin: 0 5px 0 0 !important;
}
/* h3 HD Icons */
h3.search_hd {
padding: 8px 45px 6px;
background-position: 99% 50%;
}
h3.profile_hd {
padding: 8px 50px 8px 0;
background-position: 99% 50%;
}
/* Activity by time */
#activitytime {
clear: right;
}
.activity_stats li {
float: right;
}
.activity_stats li span {
border-width: 1px 0 0 1px;
}
.activity_stats li.last span {
border-left: none;
}
.profile_pie {
background-image: url(../images/stats_pie_rtl.png);
float: right;
margin-right: 0;
margin-left: 1em;
}
/* Most popular boards by posts and activity */
#popularposts {
float: right;
}
#popularactivity {
float: left;
}
/* View posts */
.topic .time {
float: left;
}
.counter {
padding: 0.2em 0.2em 0.1em 0.5em;
float: right;
}
.topic .mod_icons {
text-align: left;
margin-right: 0;
margin-left: 1em;
}
#ip_list li.header, #ip_list li.ip {
float: right;
}
#creator dt {
float: right;
}
#creator dd {
float: right;
}
.ignoreboards ul {
margin: 0 1em 0 0;
}
.ignoreboards li {
float: right;
}
#pick_theme {
float: right;
}
.infolinks {
min-width: 95%;
float: right;
}
/* Styles for the statistics center.
------------------------------------------------- */
.stats_icon {
margin: 2px 3px -1px 6px;
}
dl.stats dt {
float: right;
}
dl.stats dd {
margin: 0 2% 4px 0;
}
#stats tr.windowbg th.stats_month {
text-align: right;
}
.generic_bar .bar, .progress_bar .bar {
left: unset;
right: 0;
}
tr.windowbg th.stats_month, tr.windowbg td.stats_day {
text-align: right;
}
#stats tr.windowbg th.lefttext, #stats tr.titlebg th.lefttext {
text-align: right;
}
/* Styles for the advanced search section.
------------------------------------------------- */
#searchform fieldset {
text-align: right;
}
#advanced_search dt {
float: right;
text-align: left;
}
#advanced_search dd {
float: right;
margin: 0 0.5em 0 0;
text-align: right;
}
/* Boards picker */
#searchform fieldset p {
text-align: right;
}
.search_results_posts .buttons {
padding: 5px 0 0 1em;
}
/* Styles for the help section.
------------------------------------------------- */
#helpmain h3.section {
padding: 0 0.5em 0.5em 0;
}
/* put back the bullets please */
#helpmain ul {
margin: 0 25px 0 0;
padding-left: 0;
}
#helpmain #messageindex {
clear: left;
}
/* Styles for the admincenter (reverse admin.css).
------------------------------------------------- */
/* common admin classes */
#admin_content .button {
float: left;
}
#manage_boards .button {
margin: 2px 6px 0px 6px;
}
/* Styles for the package manager.
------------------------------------------------- */
#package_list .tborder {
margin: .25em 26px .25em 0;
}
#package_list ol, #package_list ol li {
margin-left: 0;
margin-right: 50px;
}
/* ManageBoards */
#manage_boards ul {
overflow: hidden;
}
#manage_boards li {
overflow: hidden;
}
.move_links {
padding: 0 0 0 13px;
}
span.search_weight {
text-align: left;
}
/* Manage Bans */
.ban_restriction {
margin: 0.2em 2.2em 0.2em 0;
}
/* Themes */
.is_directory {
padding-right: 18px;
padding-left: 0;
}
.is_directory span {
margin: -2px 0 0 3px;
}
/* Styles for the moderation center.
------------------------------------------------- */
ul.moderation_notes li {
padding: 4px 4px 4px 0;
}
h3 .collapse {
float: left;
}
.pages {
margin-left: 0;
margin-right: 7px;
}
/* Styles for the calendar.
----------------------------- */
#main_grid th.days, #main_grid td.days {
text-align: right;
}
/* Code is a code do it LTR */
code.bbc_code, pre.file_content {
text-align: left;
direction: ltr;
}

View file

@ -0,0 +1,21 @@
<?php
// defines what css variant the wysiwyg editor should get (light, adaptive, dark)
function f9_hook_sceditor(&$sce_options) {
global $options, $settings, $context;
// determine the sceditor css variant to pull in
$variant = 'light';
if (!array_key_exists('dark_light', $options) || $options['dark_light'] == 0) {
$variant = 'adaptive';
} else if ($options['dark_light'] == 2) {
$variant = 'dark';
}
// only override if the variant exists
if (file_exists($settings['theme_dir'] . "/css/jquery.sceditor.$variant.css")) {
$sce_options['style'] = $settings['theme_url'] . "/css/jquery.sceditor.$variant.css" . $context['browser_cache'];
}
}
?>

Binary file not shown.

After

(image error) Size: 425 B

Binary file not shown.

After

(image error) Size: 583 B

View file

@ -0,0 +1,9 @@
<?php
// Try to handle it with the upper level index.php. (it should know what to do.)
if (file_exists(dirname(dirname(__FILE__)) . '/index.php'))
include(dirname(dirname(__FILE__)) . '/index.php');
else
exit;
?>

Binary file not shown.

After

(image error) Size: 81 B

Binary file not shown.

After

(image error) Size: 6.3 KiB

Binary file not shown.

After

(image error) Size: 296 B

Binary file not shown.

After

(image error) Size: 570 B

Binary file not shown.

After

(image error) Size: 1.7 KiB

Binary file not shown.

After

(image error) Size: 2.7 KiB

Binary file not shown.

After

(image error) Size: 13 KiB

Binary file not shown.

After

(image error) Size: 13 KiB

Binary file not shown.

After

(image error) Size: 6.5 KiB

Binary file not shown.

After

(image error) Size: 8.9 KiB

Binary file not shown.

After

(image error) Size: 757 B

Binary file not shown.

After

(image error) Size: 1.4 KiB

Binary file not shown.

After

(image error) Size: 51 KiB

Binary file not shown.

After

(image error) Size: 740 B

Binary file not shown.

After

(image error) Size: 1.2 KiB

Binary file not shown.

After

(image error) Size: 304 B

Binary file not shown.

After

(image error) Size: 963 B

Binary file not shown.

After

(image error) Size: 332 B

Binary file not shown.

After

(image error) Size: 13 KiB

View file

@ -0,0 +1,9 @@
<?php
// Try to handle it with the upper level index.php. (it should know what to do.)
if (file_exists(dirname(dirname(__FILE__)) . '/index.php'))
include(dirname(dirname(__FILE__)) . '/index.php');
else
exit;
?>

Some files were not shown because too many files have changed in this diff Show more