Page 5 of 12
Re: Welcome On Index
Posted: 03 Dec 2014, 16:46
by Anders
Here is the code i use but iam not a good coder and absolutely not on phpbb3 ...were should i put it in so it work
did try this code and got just blank pages
Code: Select all
<?php
require_once('Location.php');
$loc = new IP2Location('databases/D4.BIN/IP.BIN');
$ip = $_SERVER['REMOTE_ADDR'];
$record = $loc->lookup($ip, Location::ALL);
echo 'Country Name: ' . $record->countryName . '<br />';
?>
i have got so the lang file works looks cool just missing the country lol
Re: Welcome On Index
Posted: 03 Dec 2014, 18:24
by Stoker
Im only able to help you if you have the before mentoined server extension enabled.
Re: Welcome On Index
Posted: 03 Dec 2014, 18:28
by Anders
ok... iam still waiting for an awnser from webhost....
i be back with an awnser...
Re: Welcome On Index
Posted: 03 Dec 2014, 22:31
by Anders
ok iam good to go host have install geoip mod
Re: Welcome On Index
Posted: 04 Dec 2014, 07:48
by Stoker
Open core/functions_welcomeonindex.php
Find
Code: Select all
public function welcomeonindex()
{
add after:
Code: Select all
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$country_code = apache_note("GEOIP_COUNTRY_CODE");
Find
Code: Select all
'MEMBER_FOR' => (!empty($member_for)) ? $this->user->lang['MEMBER_FOR'] . ' ' . $member_for : '',
add after
Code: Select all
'COUNTRY_NAME' => $country_name,
'COUNTRY_CODE' => $country_code,
Now you can use
{COUNTRY_NAME}
or
{COUNTRY_CODE}
in the welcome template to display visitor country or country code.
Re: Welcome On Index
Posted: 04 Dec 2014, 07:55
by Anders
Great and thanks but i get a blank page...i will play around with it and look at erro
Re: Welcome On Index
Posted: 04 Dec 2014, 07:58
by Stoker
post the php file and i can take a look
Re: Welcome On Index
Posted: 04 Dec 2014, 07:59
by Anders
Code: Select all
<?php
/**
*
* @package Welcome on Index
* @copyright (c) 2014 Stoker
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*
*/
namespace stoker\welcomeonindex\core;
class functions_welcomeonindex
{
/** @var \phpbb\auth\auth */
protected $auth;
/** @var \phpbb\config\config */
protected $config;
/** @var \phpbb\db\driver\driver */
protected $db;
/** @var \phpbb\event\dispatcher_interface */
protected $dispatcher;
/** @var \phpbb\template\template */
protected $template;
/** @var \phpbb\user */
protected $user;
/** @var string phpBB root path */
protected $phpbb_root_path;
/** @var string PHP extension */
protected $php_ext;
public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\cache\service $cache, \phpbb\db\driver\driver_interface $db, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\template\template $template, \phpbb\user $user, $phpbb_root_path, $php_ext)
{
$this->auth = $auth;
$this->config = $config;
$this->db = $db;
$this->dispatcher = $dispatcher;
$this->template = $template;
$this->user = $user;
$this->root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
}
public function welcomeonindex()
{
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$country_code = apache_note("GEOIP_COUNTRY_CODE");
$date = $this->user->format_date(time(), 'H');
if ($this->user->data['is_registered'])
{
$u_user_name = get_username_string('full', $this->user->data['user_id'], $this->user->data['username'], $this->user->data['user_colour']);
}
else
{
$u_user_name = $this->user->lang['WELCOME_GUEST'];
}
switch (true)
{
case ($date < 1):
// if the hour is 01 - 23
$s_welcome = sprintf($this->user->lang['GOOD_NIGHT'], $u_user_name);;
break;
case ($date < 4):
// if the hour is 01 - 04
$s_welcome = sprintf($this->user->lang['UP_LATE'], $u_user_name);
break;
case ($date < 7):
// if the hour is 04 - 07
$s_welcome = sprintf($this->user->lang['UP_EARLY'], $u_user_name);
break;
case ($date < 10):
// if the hour is 07 - 10 am
$s_welcome = sprintf($this->user->lang['GOOD_MORNING'], $u_user_name);
break;
case ($date < 14):
// if the hour is 10 - 14
$s_welcome = sprintf($this->user->lang['GOOD_DAY'], $u_user_name);
break;
case ($date < 18):
// if the hour is 14 - 18
$s_welcome = sprintf($this->user->lang['GOOD_AFTERNOON'], $u_user_name);
break;
case ($date < 24):
// if the hour is 18 - 24
$s_welcome = sprintf($this->user->lang['GOOD_EVENING'], $u_user_name);;
break;
}
// how long a member for
$member_for = '';
if ($this->user->data['is_registered'] && !$this->user->data['is_bot'])
{
$member_length = time() - $this->user->data['user_regdate'];
$years = $months = $days = 0;
$member_for = '';
if ($member_length)
{
if ($member_length >= 31536000)
{
$years = floor($member_length / 31536000);
$member_length = $member_length - ($years * 31536000);
$member_for .= $years > 1 ? ($years . ' ' . $this->user->lang['WELCOME_YEARS'] . ', ') : ($years . ' ' . $this->user->lang['WELCOME_YEAR'] . ', ');
}
$months = floor($member_length / 2628000);
if ($months)
{
$months = $months > 1 ? ($months . ' ' . $this->user->lang['WELCOME_MONTHS'] . ', ') : ($months . ' ' . $this->user->lang['WELCOME_MONTHS'] . ', ');
$member_length = $member_length - ($months * 2628000);
$member_for .= $months;
}
$days = floor($member_length / 86400);
if ($days)
{
$days = $days > 1 ? ($days . ' ' . $this->user->lang['WELCOME_DAYS']) : ($days . ' ' . $this->user->lang['WELCOME_DAY']);
$member_for .= $days;
}
}
}
// END Welcome Mod
// Assign portal specific vars
$this->template->assign_vars(array(
// BEGIN Welcome Mod
'S_WELCOME' => $s_welcome,
'S_JOINED_DATE' => $this->user->lang['JOINED'] . ': ' . $this->user->format_date($this->user->data['user_regdate']),
'MEMBER_FOR' => (!empty($member_for)) ? $this->user->lang['MEMBER_FOR'] . ' ' . $member_for : '',
'COUNTRY_NAME' => $country_name,
'COUNTRY_CODE' => $country_code,
// END Welcome Mod
));
}
}
Re: Welcome On Index
Posted: 04 Dec 2014, 08:02
by Stoker
That worked for me, but try take out these two lines: $country_code = apache_note("GEOIP_COUNTRY_CODE");
and 'COUNTRY_CODE' => $country_code,
Re: Welcome On Index
Posted: 04 Dec 2014, 08:05
by Anders
same result
![Sad :-(](./images/smilies/icon_e_sad.gif)