diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php
index 8d7dd5b284b..cce0cab24a3 100644
--- a/htdocs/admin/tools/listevents.php
+++ b/htdocs/admin/tools/listevents.php
@@ -168,28 +168,7 @@ if ($result)
// IP
print '
';
- print $obj->ip;
-
- if (! empty($conf->geoip_maxmind->enabled))
- {
- $datafile=$conf->global->GEOIP_MAXMIND_COUNTRY_DATAFILE;
- $ip=$obj->ip;
-
- $ip='24.24.24.24';
- $datafile='E:\Mes Sites\Web\Admin1\awstats\maxmind\GeoIP.dat';
-
- include_once(DOL_DOCUMENT_ROOT.'/lib/dolgeoip.class.php');
- $geoip=new DolGeoIP('country',$datafile);
- $countrycode=$geoip->getCountryCodeFromIP($ip);
- if ($countrycode) // If success, countrycode is us, fr, ...
- {
- if (file_exists(DOL_DOCUMENT_ROOT.'/theme/common/flags/'.$countrycode.'.png'))
- {
- print ' '.img_picto($langs->trans("AccordingToGeoIPDatabase"),DOL_URL_ROOT.'/theme/common/flags/'.$countrycode.'.png','',1);
- }
- else print ' ('.$countrycode.')';
- }
- }
+ print dol_print_ip($obj->ip);
print ' | ';
// Login
diff --git a/htdocs/includes/modules/modGeoIPMaxmind.class.php b/htdocs/includes/modules/modGeoIPMaxmind.class.php
new file mode 100644
index 00000000000..837455688be
--- /dev/null
+++ b/htdocs/includes/modules/modGeoIPMaxmind.class.php
@@ -0,0 +1,114 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/** \defgroup geoip Module GeoIP
+ * \brief Module to make geoip conversions
+ * \version $Id$
+ */
+
+/**
+ * \file htdocs/includes/modules/modGeoIPMaxmind.class.php
+ * \ingroup geoip
+ * \brief File of geoipmaxmind module descriptor
+ */
+
+include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php");
+
+
+/** \class modImport
+ * \brief Classe de description et activation du module Import
+ */
+class modGeoIPMaxmind extends DolibarrModules
+{
+
+ /**
+ * \brief Constructeur. Definit les noms, constantes et boites
+ * \param DB handler d'acces base
+ */
+ function modGeoIPMaxmind($DB)
+ {
+ $this->db = $DB ;
+ $this->numero = 2900;
+
+ // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
+ // It is used to group modules in module setup page
+ $this->family = "technic";
+ // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
+ $this->name = eregi_replace('^mod','',get_class($this));
+ // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
+ $this->description = "GeoIP Maxmind conversions capabilities";
+ // Possible values for version are: 'development', 'experimental', 'dolibarr' or version
+ $this->version = 'experimental';
+ // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
+ $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
+ // Where to store the module in setup page (0=common,1=interface,2=others,3=very specific)
+ $this->special = 1;
+ // Name of image file used for this module.
+ // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue'
+ // If file is in module/images directory, use this->picto=DOL_URL_ROOT.'/module/images/file.png'
+ $this->picto = '';
+
+ // Data directories to create when module is enabled
+ $this->dirs = array("/geoipmaxmind");
+
+ // Config pages
+ $this->config_page_url = array();
+
+ // D�pendances
+ $this->depends = array();
+ $this->requiredby = array();
+ $this->phpmin = array(4,2,0);
+ $this->phpmax = array();
+ $this->need_dolibarr_version = array(2,7,-1); // Minimum version of Dolibarr required by module
+ $this->need_javascript_ajax = 1;
+
+ // Constantes
+ $this->const = array();
+
+ // Boxes
+ $this->boxes = array();
+
+ // Permissions
+ $this->rights = array();
+ $this->rights_class = 'geoipmaxmind';
+ $r=0;
+ }
+
+ /**
+ * \brief Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module.
+ * Definit egalement les repertoires de donnees a creer pour ce module.
+ */
+ function init()
+ {
+ $sql = array();
+
+ return $this->_init($sql);
+ }
+
+ /**
+ * \brief Fonction appelee lors de la desactivation d'un module.
+ * Supprime de la base les constantes, boites et permissions du module.
+ */
+ function remove()
+ {
+ $sql = array();
+
+ return $this->_remove($sql);
+ }
+}
+?>
diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php
index f72089e7144..e96a36068d5 100644
--- a/htdocs/lib/functions.lib.php
+++ b/htdocs/lib/functions.lib.php
@@ -860,6 +860,32 @@ function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=
return $newphone;
}
+function dol_print_ip($ip)
+{
+ global $conf,$langs;
+
+ print $ip;
+ if (! empty($conf->geoipmaxmind->enabled))
+ {
+ $datafile=$conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE;
+
+ //$ip='24.24.24.24';
+ $datafile='E:\Mes Sites\Web\Admin1\awstats\maxmind\GeoIP.dat';
+
+ include_once(DOL_DOCUMENT_ROOT.'/lib/dolgeoip.class.php');
+ $geoip=new DolGeoIP('country',$datafile);
+ $countrycode=$geoip->getCountryCodeFromIP($ip);
+ if ($countrycode) // If success, countrycode is us, fr, ...
+ {
+ if (file_exists(DOL_DOCUMENT_ROOT.'/theme/common/flags/'.$countrycode.'.png'))
+ {
+ print ' '.img_picto($langs->trans("AccordingToGeoIPDatabase"),DOL_URL_ROOT.'/theme/common/flags/'.$countrycode.'.png','',1);
+ }
+ else print ' ('.$countrycode.')';
+ }
+ }
+}
+
/**
* \brief Return true if email syntax is ok
* \param address email (Ex: "toto@titi.com", "John Do ")