add_hook('global_start', 'usercss_global');
$plugins->add_hook('usercp_options_end', 'usercss_editor');
$plugins->add_hook('usercp_do_options_end', 'usercss_change');
function usercss_info() {
return array(
'name' => 'UserCSS',
'description' => 'Very simple plugin to allow users to add global custom CSS.',
'website' => 'http://mybbhacks.zingaburga.com/',
'author' => 'ZiNgA BuRgA',
'authorsite' => 'http://zingaburga.com/',
'version' => '1.1',
'compatibility' => '14*,15*,16*,17*,18*',
'guid' => ''
);
}
function usercss_install() {
global $db;
$db->write_query('ALTER TABLE `'.$db->table_prefix.'users` ADD COLUMN `usercss` text not null');
}
function usercss_activate() {
// template modification
require_once MYBB_ROOT.'inc/adminfunctions_templates.php';
find_replace_templatesets('headerinclude', '~\{\$stylesheets\}~', '$0{$usercss}');
find_replace_templatesets('usercp_options', '~(?:\
\{\$stylelist\}\ | |\{\$board_style\})~i', "$0\n\n\n [WARNING! save down this link in case you mess up your CSS] |
| ");
}
function usercss_is_installed() {
return $GLOBALS['db']->field_exists('usercss', 'users');
}
function usercss_deactivate() {
require_once MYBB_ROOT.'inc/adminfunctions_templates.php';
find_replace_templatesets('headerinclude', '~\{\$usercss\}~i', '', 0);
find_replace_templatesets('usercp_options', '~\
\s*\]+\>\s*(?:\<[^>]+\>\s*)?Custom CSS.*?\ | \s*\
\s*\\s*\]+\>\s*\\s*\ | \s*\
\s*~si', '', 0);
}
function usercss_uninstall() {
global $db;
$db->write_query('ALTER TABLE `'.$db->table_prefix.'users` DROP COLUMN `usercss`');
}
function usercss_global() {
global $mybb;
if(!$mybb->user['uid'] || !$mybb->user['usercss'] || $mybb->input['nousercss']) return;
// do evaluations
$mybb->user['usercss'] = preg_replace_callback("~(\n|^)/\*@- *([a-z0-9\-_]+\.php)(, *[a-z0-9\-_]+\.php)* *\*/\r?\n.*?\n/\*@-\*/(?=\r?\n|$)~si", 'usercss_global_preg', $mybb->user['usercss']);
$GLOBALS['usercss'] = '';
}
function usercss_global_preg($m) {
// our ultra-confusing compact one-liner!
return $m[(int)! in_array(THIS_SCRIPT, explode(',', strtolower(str_replace(' ', '', $m[2].$m[3]))))];
}
function usercss_editor() {
global $user;
$user['usercss'] = htmlspecialchars_uni($user['usercss']);
}
function usercss_change() {
// cause I'm too lazy to do a proper way
global $mybb, $db;
if(!isset($mybb->input['usercss'])) return;
$usercss = strip_tags(str_replace('-->', '', $mybb->input['usercss']));
$db->update_query('users', array(
'usercss' => $db->escape_string($usercss)
), 'uid='.$mybb->user['uid']);
}