Initial commit
5
.gitignore
vendored
Normal 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
|
@ -0,0 +1,4 @@
|
|||
PKGDIR := $(PWD)/out
|
||||
|
||||
packages:
|
||||
make PKGDIR=$(PKGDIR) -C $(PWD)/plugin
|
14
README.md
Normal 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
After Width: 64px | Height: 64px | Size: 17 KiB |
26
plugin/Makefile
Normal 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
|
3
plugin/f9_buttons/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
PROJECT := f9_buttons
|
||||
|
||||
include ../plugin.mk
|
58
plugin/f9_buttons/src/f9_buttons.php
Normal 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),
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
19
plugin/f9_buttons/src/package-info.xml
Normal 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>
|
3
plugin/f9_buttons/src/readme.txt
Normal 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
|
@ -0,0 +1,2 @@
|
|||
out
|
||||
f9_emotes.tar.gz
|
49
plugin/f9_emotes/Makefile
Normal 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
|
24
plugin/f9_emotes/README.md
Normal 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
|
@ -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
|
BIN
plugin/f9_emotes/eggbug/eggbug.gif
Normal file
After ![]() (image error) Size: 3.6 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_asleep.gif
Normal file
After ![]() (image error) Size: 3.9 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_devious.gif
Normal file
After ![]() (image error) Size: 3.7 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_heart_sob.gif
Normal file
After ![]() (image error) Size: 4.4 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_nervous.gif
Normal file
After ![]() (image error) Size: 3.8 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_pensive.gif
Normal file
After ![]() (image error) Size: 3 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_pleading.gif
Normal file
After ![]() (image error) Size: 3.3 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_relieved.gif
Normal file
After ![]() (image error) Size: 3.8 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_shocked.gif
Normal file
After ![]() (image error) Size: 3.7 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_smile_hearts.gif
Normal file
After ![]() (image error) Size: 4.1 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_sob.gif
Normal file
After ![]() (image error) Size: 3.9 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_tuesday.gif
Normal file
After ![]() (image error) Size: 3.6 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_uwu.gif
Normal file
After ![]() (image error) Size: 3 KiB |
BIN
plugin/f9_emotes/eggbug/eggbug_wink.gif
Normal file
After ![]() (image error) Size: 3.6 KiB |
BIN
plugin/f9_emotes/misc/imcold.gif
Normal file
After ![]() (image error) Size: 182 B |
BIN
plugin/f9_emotes/msn/omg.gif
Normal file
After ![]() (image error) Size: 1 KiB |
BIN
plugin/f9_emotes/msn/turtle.gif
Normal file
After ![]() (image error) Size: 387 B |
BIN
plugin/f9_emotes/msn/xbox.gif
Normal file
After ![]() (image error) Size: 293 B |
BIN
plugin/f9_emotes/phpbb/icon_arrow.gif
Executable file
After ![]() (image error) Size: 170 B |
BIN
plugin/f9_emotes/phpbb/icon_biggrin.gif
Executable file
After ![]() (image error) Size: 172 B |
BIN
plugin/f9_emotes/phpbb/icon_confused.gif
Executable file
After ![]() (image error) Size: 171 B |
BIN
plugin/f9_emotes/phpbb/icon_cool.gif
Executable file
After ![]() (image error) Size: 172 B |
BIN
plugin/f9_emotes/phpbb/icon_cry.gif
Executable file
After ![]() (image error) Size: 498 B |
BIN
plugin/f9_emotes/phpbb/icon_eek.gif
Executable file
After ![]() (image error) Size: 170 B |
BIN
plugin/f9_emotes/phpbb/icon_evil.gif
Executable file
After ![]() (image error) Size: 236 B |
BIN
plugin/f9_emotes/phpbb/icon_exclaim.gif
Executable file
After ![]() (image error) Size: 236 B |
BIN
plugin/f9_emotes/phpbb/icon_frown.gif
Executable file
After ![]() (image error) Size: 171 B |
BIN
plugin/f9_emotes/phpbb/icon_idea.gif
Executable file
After ![]() (image error) Size: 176 B |
BIN
plugin/f9_emotes/phpbb/icon_lol.gif
Executable file
After ![]() (image error) Size: 336 B |
BIN
plugin/f9_emotes/phpbb/icon_mad.gif
Executable file
After ![]() (image error) Size: 174 B |
BIN
plugin/f9_emotes/phpbb/icon_mrgreen.gif
Executable file
After ![]() (image error) Size: 349 B |
BIN
plugin/f9_emotes/phpbb/icon_neutral.gif
Executable file
After ![]() (image error) Size: 171 B |
BIN
plugin/f9_emotes/phpbb/icon_question.gif
Executable file
After ![]() (image error) Size: 248 B |
BIN
plugin/f9_emotes/phpbb/icon_razz.gif
Executable file
After ![]() (image error) Size: 176 B |
BIN
plugin/f9_emotes/phpbb/icon_redface.gif
Executable file
After ![]() (image error) Size: 650 B |
BIN
plugin/f9_emotes/phpbb/icon_rolleyes.gif
Executable file
After ![]() (image error) Size: 485 B |
BIN
plugin/f9_emotes/phpbb/icon_sad.gif
Executable file
After ![]() (image error) Size: 171 B |
BIN
plugin/f9_emotes/phpbb/icon_smile.gif
Executable file
After ![]() (image error) Size: 174 B |
BIN
plugin/f9_emotes/phpbb/icon_surprised.gif
Executable file
After ![]() (image error) Size: 174 B |
BIN
plugin/f9_emotes/phpbb/icon_twisted.gif
Executable file
After ![]() (image error) Size: 238 B |
BIN
plugin/f9_emotes/phpbb/icon_wink.gif
Executable file
After ![]() (image error) Size: 170 B |
56
plugin/f9_emotes/src/install.php
Normal 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 ...';
|
||||
|
||||
?>
|
20
plugin/f9_emotes/src/package-info.xml
Normal 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>
|
3
plugin/f9_emotes/src/readme.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
[size=x-large][b]Emoticon Pack for F9[/b][/size]
|
||||
|
||||
This adds the custom F9 emoticon pack to SMF.
|
46
plugin/f9_emotes/src/uninstall.php
Normal 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
|
@ -0,0 +1 @@
|
|||
src/scripts/minified_*
|
9
plugin/f9_theme/Makefile
Normal 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:
|
578
plugin/f9_theme/src/MessageIndex.template.php
Normal 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'] ? ' <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 != \'\' && 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 -->';
|
||||
}
|
||||
|
||||
?>
|
252
plugin/f9_theme/src/Settings.template.php
Normal 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',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
1
plugin/f9_theme/src/css/adaptive_colors.css
Normal file
|
@ -0,0 +1 @@
|
|||
@import url("../css/dark_colors.css") (prefers-color-scheme: dark);
|
609
plugin/f9_theme/src/css/admin.css
Normal 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;
|
||||
}
|
351
plugin/f9_theme/src/css/calendar.css
Normal 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;
|
||||
}
|
||||
}
|
23
plugin/f9_theme/src/css/calendar.rtl.css
Normal 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;
|
||||
}
|
171
plugin/f9_theme/src/css/colors.css
Normal 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;
|
||||
}
|
66
plugin/f9_theme/src/css/dark_colors.css
Normal 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;
|
||||
}
|
4239
plugin/f9_theme/src/css/index.css
Normal file
3
plugin/f9_theme/src/css/jquery.sceditor.adaptive.css
Normal 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");
|
3
plugin/f9_theme/src/css/jquery.sceditor.dark.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
@import url("../css/colors.css");
|
||||
@import url("../css/dark_colors.css");
|
||||
@import url("../css/jquery.sceditor.default.css");
|
152
plugin/f9_theme/src/css/jquery.sceditor.default.css
Normal 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;
|
||||
}
|
||||
}
|
2
plugin/f9_theme/src/css/jquery.sceditor.light.css
Normal file
|
@ -0,0 +1,2 @@
|
|||
@import url("../css/colors.css");
|
||||
@import url("../css/jquery.sceditor.default.css");
|
81
plugin/f9_theme/src/css/jquery.sceditor.theme.css
Normal 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));
|
||||
}
|
895
plugin/f9_theme/src/css/responsive.css
Normal 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) {
|
||||
|
||||
}
|
687
plugin/f9_theme/src/css/rtl.css
Normal 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;
|
||||
}
|
21
plugin/f9_theme/src/hooks.php
Normal 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'];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
BIN
plugin/f9_theme/src/images/bbc/bbc_bg.png
Normal file
After ![]() (image error) Size: 425 B |
BIN
plugin/f9_theme/src/images/bbc/bbc_hoverbg.png
Normal file
After ![]() (image error) Size: 583 B |
9
plugin/f9_theme/src/images/bbc/index.php
Normal 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;
|
||||
|
||||
?>
|
BIN
plugin/f9_theme/src/images/blank.png
Normal file
After ![]() (image error) Size: 81 B |
BIN
plugin/f9_theme/src/images/boardicons.png
Normal file
After ![]() (image error) Size: 6.3 KiB |
BIN
plugin/f9_theme/src/images/buddy_useroff.png
Normal file
After ![]() (image error) Size: 296 B |
BIN
plugin/f9_theme/src/images/buddy_useron.png
Normal file
After ![]() (image error) Size: 570 B |
BIN
plugin/f9_theme/src/images/cake.png
Normal file
After ![]() (image error) Size: 1.7 KiB |
BIN
plugin/f9_theme/src/images/construction.png
Normal file
After ![]() (image error) Size: 2.7 KiB |
BIN
plugin/f9_theme/src/images/generic_attach.png
Normal file
After ![]() (image error) Size: 13 KiB |
BIN
plugin/f9_theme/src/images/header.png
Normal file
After ![]() (image error) Size: 13 KiB |
BIN
plugin/f9_theme/src/images/header_dark.png
Normal file
After ![]() (image error) Size: 6.5 KiB |
BIN
plugin/f9_theme/src/images/header_light.png
Normal file
After ![]() (image error) Size: 8.9 KiB |
BIN
plugin/f9_theme/src/images/helptopics.png
Normal file
After ![]() (image error) Size: 757 B |
BIN
plugin/f9_theme/src/images/helptopics_hd.png
Normal file
After ![]() (image error) Size: 1.4 KiB |
BIN
plugin/f9_theme/src/images/icons/admin_sprite.png
Normal file
After ![]() (image error) Size: 51 KiB |
BIN
plugin/f9_theme/src/images/icons/bell.png
Normal file
After ![]() (image error) Size: 740 B |
BIN
plugin/f9_theme/src/images/icons/bell_hd.png
Normal file
After ![]() (image error) Size: 1.2 KiB |
BIN
plugin/f9_theme/src/images/icons/clip.png
Normal file
After ![]() (image error) Size: 304 B |
BIN
plugin/f9_theme/src/images/icons/config_hd.png
Normal file
After ![]() (image error) Size: 963 B |
BIN
plugin/f9_theme/src/images/icons/delete.png
Normal file
After ![]() (image error) Size: 332 B |
BIN
plugin/f9_theme/src/images/icons/editor_sprite.png
Normal file
After ![]() (image error) Size: 13 KiB |
9
plugin/f9_theme/src/images/icons/index.php
Normal 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;
|
||||
|
||||
?>
|