summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorJano Slota <jano@alokal.eu>2014-07-04 02:47:24 +0200
committerczaks <marcin@6irc.net>2014-07-06 01:29:12 +0200
commitdb3c7f4ee984002fccb86e0cb3fda45edde74351 (patch)
tree3559fe5daab91f50f134e8bb9a12cb1ac9c7595e /inc
parent4adf893c3906bebb29fc1720793366291da87b58 (diff)
Rework the GeoIP code, add country-based poster names
Diffstat (limited to 'inc')
-rw-r--r--inc/config.php7
-rw-r--r--inc/functions.php19
2 files changed, 25 insertions, 1 deletions
diff --git a/inc/config.php b/inc/config.php
index 4ffff767..1dbec895 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -773,9 +773,14 @@
// $config['board_path'] if you wish to change the URL.
$config['board_abbreviation'] = '/%s/';
- // The default name (ie. Anonymous). Can be an array - in that case it's picked randomly from the array.
+ // The default name (e.g. Anonymous). Can be an array - in that case it's picked randomly from the array.
// Example: $config['anonymous'] = array('Bernd', 'Senpai', 'Jonne', 'ChanPro');
$config['anonymous'] = 'Anonymous';
+ // Pick the default name based on the poster's country. Can contain subarrays and is picked randomly from the them.
+ // If the user posts from a country you have not set a name for, his name is going to be whatever you set in $config['anonymous'].
+ // Example 1: $config['country_anonymous'] = array('cz' => 'Pepik', 'pl' => 'Karol Wojtyla', 'de' => 'Bernd', 'fi' => 'Jonne');
+ // Example 2: $config['country_anonymous'] = array('cz' => array('Pepik', 'Bohus', 'Lada'), 'pl' => array('Karol Wojtyla', 'Demon Pedofyl');
+ $config['country_anonymous'] = false;
// Number of reports you can create at once.
$config['report_limit'] = 3;
diff --git a/inc/functions.php b/inc/functions.php
index 6ce76472..4313e531 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -21,6 +21,8 @@ require_once 'inc/api.php';
require_once 'inc/bans.php';
require_once 'inc/lib/gettext/gettext.inc';
+use Lifo\IP\IP;
+
// the user is not currently logged in as a moderator
$mod = false;
@@ -242,6 +244,23 @@ function loadConfig() {
if (is_array($config['anonymous']))
$config['anonymous'] = $config['anonymous'][array_rand($config['anonymous'])];
+
+ if ($config['country_flags'] || $config['country_anonymous']) {
+ require_once 'inc/lib/geoip/geoip.inc';
+ $gi=geoip_open('inc/lib/geoip/GeoIPv6.dat', GEOIP_STANDARD);
+ $ipaddy = $_SERVER['REMOTE_ADDR'];
+ if (IP::isIPv4($ipaddy))
+ $ipaddy = IP::to_ipv6($ipaddy, true);
+ global $country_code, $country_name;
+ $country_code = strtolower(geoip_country_code_by_addr_v6($gi, $ipaddy));
+ $country_name = geoip_country_name_by_addr_v6($gi, $ipaddy);
+ if (isset($config['country_anonymous'][$country_code])) {
+ if (is_array($config['country_anonymous'][$country_code]))
+ $config['anonymous'] = $config['country_anonymous'][$country_code][array_rand($config['country_anonymous'][$country_code])];
+ else
+ $config['anonymous'] = $config['country_anonymous'][$country_code];
+ }
+ }
event('load-config');