diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index 8d7dd5b284b4261519a9b273af8c25c268aa2546..cce0cab24a3ba68d92add89717f2314720184e5e 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -168,28 +168,7 @@ if ($result) // IP print '<td>'; - 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 '</td>'; // Login diff --git a/htdocs/includes/modules/modGeoIPMaxmind.class.php b/htdocs/includes/modules/modGeoIPMaxmind.class.php new file mode 100644 index 0000000000000000000000000000000000000000..837455688be5c984b6fbcc46e3245fb056967f2a --- /dev/null +++ b/htdocs/includes/modules/modGeoIPMaxmind.class.php @@ -0,0 +1,114 @@ +<?php +/* Copyright (C) 2009 Laurent Destailleur <eldy@users.sourceforge.net> + * + * 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 f72089e7144ca75b4086d9b21896fd8c6d7e7e41..e96a36068d587f2ada0ee4d4738f71864c60c962 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 <johndo@titi.com>")