From ff225064a1f9d0a356c69a06638dcc3cead4dd35 Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 22 Oct 2014 19:18:23 -0700 Subject: [PATCH] Add ?/flags [NOT DONE] and $config[allow_delete] to ?/settings --- inc/instance-config.php | 82 ++++++++++++++++++++++++++++++++++--- templates/mod/settings.html | 1 + 2 files changed, 77 insertions(+), 6 deletions(-) diff --git a/inc/instance-config.php b/inc/instance-config.php index c2df3b5b..f2edfad7 100644 --- a/inc/instance-config.php +++ b/inc/instance-config.php @@ -86,6 +86,9 @@ $config['mod']['debug_antispam'] = ADMIN; $config['mod']['modlog'] = SUPERMOD; $config['mod']['editpost'] = MOD; + $config['mod']['edit_banners'] = MOD; + $config['mod']['edit_flags'] = MOD; + $config['mod']['edit_settings'] = MOD; $config['mod']['recent_reports'] = 65535; $config['mod']['ip_less_recentposts'] = 75; $config['ban_show_post'] = true; @@ -93,10 +96,14 @@ // Board shit $config['max_links'] = 40; $config['poster_id_length'] = 6; - $config['ayah_enabled'] = true; + $config['ayah_enabled'] = false; + $config['cbRecaptcha'] = true; $config['url_banner'] = '/banners.php'; + $config['additional_javascript_compile'] = true; //$config['default_stylesheet'] = array('Notsuba', 'notsuba.css'); $config['additional_javascript'][] = 'js/jquery.min.js'; + $config['additional_javascript'][] = 'js/jquery.mixitup.min.js'; + $config['additional_javascript'][] = 'js/catalog.js'; $config['additional_javascript'][] = 'js/jquery.tablesorter.min.js'; $config['additional_javascript'][] = 'js/options.js'; $config['additional_javascript'][] = 'js/style-select.js'; @@ -136,6 +143,8 @@ $config['additional_javascript'][] = 'js/infinite-scroll.js'; $config['additional_javascript'][] = 'js/download-original.js'; $config['additional_javascript'][] = 'js/thread-watcher.js'; + $config['additional_javascript'][] = 'js/ajax.js'; + $config['additional_javascript'][] = 'js/show-own-posts.js'; //$config['font_awesome_css'] = '/netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css'; @@ -176,11 +185,72 @@ } } + $config['mod']['custom_pages']['/flags/(\%b)'] = function($b) { + global $config, $mod, $board; + require_once 'inc/image.php'; + + if (!hasPermission($config['mod']['edit_flags'], $b)) + error($config['mod']['noaccess']); + + if (!openBoard($b)) + error("Could not open board!"); + + $dir = 'static/custom-flags/'.$b; + + if (!is_dir($dir)){ + mkdir($dir, 0777, true); + } + + if (isset($_FILES['file'])){ + $upload = $_FILES['file']['tmp_name']; + $banners = array_diff(scandir($dir), array('..', '.')); + + if (!is_readable($upload)) + error($config['error']['nomove']); + + $id = time() . substr(microtime(), 2, 3); + $extension = strtolower(mb_substr($_FILES['file']['name'], mb_strrpos($_FILES['file']['name'], '.') + 1)); + + if ($extension != 'png') { + error(_('Flags must be in PNG format.')); + } + + if (filesize($upload) > 48000){ + error(_('File too large!')); + } + + if (!$size = @getimagesize($upload)) { + error($config['error']['invalidimg']); + } + + if ($size[0] != 16 or $size[1] != 11){ + error(_('Image wrong size!')); + } + if (sizeof($banners) >= 100) { + error(_('Too many flags.')); + } + + copy($upload, "$dir/$id.$extension"); + } + + if (isset($_POST['delete'])){ + foreach ($_POST['delete'] as $i => $d){ + if (!preg_match('/[0-9+]\.(png|jpeg|jpg|gif)/', $d)){ + error('Nice try.'); + } + unlink("$dir/$d"); + } + } + + $banners = array_diff(scandir($dir), array('..', '.')); + mod_page(_('Edit banners'), 'mod/banners.html', array('board'=>$board,'banners'=>$banners,'token'=>make_secure_link_token('banners/'.$board['uri']))); + }; + $config['mod']['custom_pages']['/banners/(\%b)'] = function($b) { global $config, $mod, $board; require_once 'inc/image.php'; - if (!in_array($b, $mod['boards']) and $mod['boards'][0] != '*') + if (!hasPermission($config['mod']['edit_banners'], $b)) error($config['error']['noaccess']); if (!openBoard($b)) @@ -263,12 +333,12 @@ $auto_unicode = isset($_POST['auto_unicode']) ? 'true' : 'false'; $allow_roll = isset($_POST['allow_roll']) ? 'true' : 'false'; $image_reject_repost = isset($_POST['image_reject_repost']) ? 'true' : 'false'; + $allow_delete = isset($_POST['allow_delete']) ? 'true' : 'false'; $allow_flash = isset($_POST['allow_flash']) ? '$config[\'allowed_ext_files\'][] = \'swf\';' : ''; $code_tags = isset($_POST['code_tags']) ? '$config[\'additional_javascript\'][] = \'js/code_tags/run_prettify.js\';$config[\'markup\'][] = array("/\[code\](.+?)\[\/code\]/ms", "
\$1
");' : ''; $katex = isset($_POST['katex']) ? '$config[\'katex\'] = true;$config[\'additional_javascript\'][] = \'js/katex/katex.min.js\'; $config[\'markup\'][] = array("/\[tex\](.+?)\[\/tex\]/ms", "\$1"); $config[\'additional_javascript\'][] = \'js/katex-enable.js\';' : ''; $oekaki_js = <<{% trans %}Allow SWF uploading{% endtrans %} {% trans %}Enable dice rolling{% endtrans %} {% trans %}Don't allow users to repost images{% endtrans %} + {% trans %}Allow a poster to delete his own posts{% endtrans %} {% trans %}Language{% endtrans %}
{% trans %}To contribute translations, register at Transifex{% endtrans %}