Module Country Filter v1.0 - Datalife Engine English
The module adds functionality DLE content filtering depending on the country of the visitor. Filtering is based on a database of IP addresses. Database of IP addresses from 01.01.2015 with service ip2location.com
The module adds tags:
[Country = RU, UA] display unit only for visitors from Russia and Ukraine [/ Country]
[not-Country = RU, UA] display unit for all visitors, except of Russia and Ukraine [/ not-country]
Author: MSW
Версия DLE: 9.6, 9.7, 9.8, 10.0, 10.1, 10.2, 10.3
Support Site: 0-web.ru
Download Country-Filter-v.1.0.zip
================================================== ===
Module: Country Filter
Version: 1.0
-------------------------------------------------- ---
Author: MSW
Website: https://0-web.ru/
-------------------------------------------------- ---
Copyright (c) 2015 MSW
================================================== ===
This code is copyrighted
================================================== ===
1. Load dump the database through phpmyadmin.
2. Open files:
- /engine/modules/show.full.php
- /engine/modules/show.short.php
- /engine/modules/show.custom.php
Search for:================================================== === if (stripos ( $tpl->copy_template, "{image-" ) !== false) { ================================================== ===
Add above:================================================== === # ****** Country Filter *** srart ****** # if (strpos ( $tpl->result['content'], "[country=" ) !== false) { $tpl->result['content'] = preg_replace_callback ( "#\[(country)=(.+?)\](.*?)\[/country\]#is", 'check_country', $tpl->result['content'] ); } if (strpos ( $tpl->result['content'], "[not-country=" ) !== false) { $tpl->result['content'] = preg_replace_callback ( "#\[(not-country)=(.+?)\](.*?)\[/not-country\]#is", 'check_country', $tpl->result['content'] ); } # ****** Country Filter *** stop ****** # ================================================== ===
3. File: /engine/modules/functions.php
Find:================================================== === function formatsize($file_size) { ================================================== ===
Add above:================================================== === # ****** Country Filter *** srart ****** # function check_country( $matches=array() ) { global $member_id; $block = $matches[3]; $country = explode( ',', $matches[2] ); if( $matches[1] == "country" ) { if( ! in_array( $member_id['user_country'], $country ) ) return ""; } else { if( in_array( $member_id['user_country'], $country ) ) return ""; } return $block; } # ****** Country Filter *** stop ****** # ================================================== ===
4. File: /engine/modules/sitelogin.php
Find:================================================== === ?> ================================================== ===
Add above:================================================== === # ****** Country Filter *** srart ****** # if( $_IP != $_SESSION['dle_user_ip'] ) { $_IP_COD = sprintf( "%u", ip2long( $_IP ) ); $_IP_SQL = $db->super_query( "SELECT country_code FROM " . PREFIX . "_ip2location1 WHERE ip_from <= '{$_IP_COD}' AND ip_to >= '{$_IP_COD}'" ); if($_IP_SQL['country_code']) { $dle_user_country = $_IP_SQL['country_code']; } else { $dle_user_country = "no"; } $_SESSION['dle_user_ip'] = $_IP; $_SESSION['dle_user_country'] = $dle_user_country; } $member_id['user_country'] = $_SESSION['dle_user_country']; # ****** Country Filter *** stop ****** # ================================================== ===
5. File: /engine/classes/templates.class.php
Find:================================================== === if (strpos ( $this->template, "[group=" ) !== false) { $this->template = preg_replace_callback ( "#\[(group)=(.+?)\](.*?)\[/group\]#is", array( &$this, 'check_group'), $this->template ); } ================================================== ===
Add above:================================================== === # ****** Country Filter *** srart ****** # if (strpos ( $this->template, "[country=" ) !== false) { $this->template = preg_replace_callback ( "#\[(country)=(.+?)\](.*?)\[/country\]#is", 'check_country', $this->template ); } if (strpos ( $this->template, "[not-country=" ) !== false) { $this->template = preg_replace_callback ( "#\[(not-country)=(.+?)\](.*?)\[/not-country\]#is", 'check_country', $this->template ); } # ****** Country Filter *** stop ****** # ================================================== ===
Find:================================================== === if (strpos ( $template, "[group=" ) !== false) { $template = preg_replace_callback ( "#\[(group)=(.+?)\](.*?)\[/group\]#is", array( &$this, 'check_group'), $template ); } ================================================== ===
Add above:================================================== === # ****** Country Filter *** srart ****** # if (strpos ( $template, "[country=" ) !== false) { $template = preg_replace_callback ( "#\[(country)=(.+?)\](.*?)\[/country\]#is", 'check_country', $template ); } if (strpos ( $template, "[not-country=" ) !== false) { $template = preg_replace_callback ( "#\[(not-country)=(.+?)\](.*?)\[/not-country\]#is", 'check_country', $template ); } # ****** Country Filter *** stop ****** # ================================================== ===
6. Tags can be used in the text of news and template files:================================================== === [country = RU, UA] display unit only for visitors from Russia and Ukraine [/ country] [not-country = RU, UA] display unit for all visitors, except of Russia and Ukraine [/ not-country] ================================================== ===
Some country code that I know"AF" = AFGHANISTAN "AL" = ALBANIA "DZ" = ALGERIA "AS" = AMERICAN SAMOA "AD" = ANDORRA "AO" = ANGOLA "AI" = ANGUILLA "AQ" = ANTARCTICA "AG" = ANTIGUA AND BARBUDA "AR" = ARGENTINA "AM" = ARMENIA "AW" = ARUBA "AP" = ASIA PACIFIC "AU" = AUSTRALIA "AT" = AUSTRIA "AZ" = AZERBAIJAN "BS" = BAHAMAS "BH" = BAHRAIN "BD" = BANGLADESH "BB" = BARBADOS "BY" = BELARUS "BE" = BELGIUM "BZ" = BELIZE "BJ" = BENIN "BM" = BERMUDA "BT" = BHUTAN "BO" = BOLIVIA "BA" = BOSNIA AND HERZEGOWINA "BW" = BOTSWANA "BV" = BOUVET ISLAND "BR" = BRAZIL "IO" = BRITISH INDIAN OCEAN TERRITORY "BN" = BRUNEI DARUSSALAM "BG" = BULGARIA "BF" = BURKINA FASO "BI" = BURUNDI "KH" = CAMBODIA "CM" = CAMEROON "CA" = CANADA "CV" = CAPE VERDE "KY" = CAYMAN ISLANDS "CF" = CENTRAL AFRICAN REPUBLIC "TD" = CHAD "CL" = CHILE "CN" = CHINA "CX" = CHRISTMAS ISLAND "CC" = COCOS (KEELING) ISLANDS "CO" = COLOMBIA "KM" = COMOROS "CG" = CONGO "CD" = CONGO, THE DEMOCRATIC REPUBLIC OF THE "CK" = COOK ISLANDS "CR" = COSTA RICA "CI" = COTE D'IVOIRE "HR" = CROATIA "CU" = CUBA "CY" = CYPRUS "CZ" = CZECH REPUBLIC "CS" = CZECHOSLOVAKIA (FORMER) "DK" = DENMARK "DJ" = DJIBOUTI "DM" = DOMINICA "DO" = DOMINICAN REPUBLIC "TP" = EAST TIMOR "EC" = ECUADOR "EG" = EGYPT "SV" = EL SALVADOR "GQ" = EQUATORIAL GUINEA "ER" = ERITREA "EE" = ESTONIA "ET" = ETHIOPIA "EU" = EUROPEAN UNION "FK" = FALKLAND ISLANDS (MALVINAS) "FO" = FAROE ISLANDS "FJ" = FIJI "FI" = FINLAND "FR" = FRANCE "FX" = FRANCE, METROPOLITAN "GF" = FRENCH GUIANA "PF" = FRENCH POLYNESIA "TF" = FRENCH SOUTHERN TERRITORIES "GA" = GABON "GM" = GAMBIA "GE" = GEORGIA "DE" = GERMANY "GH" = GHANA "GI" = GIBRALTAR "GB" = GREAT BRITAIN "GR" = GREECE "GL" = GREENLAND "GD" = GRENADA "GP" = GUADELOUPE "GU" = GUAM "GT" = GUATEMALA "GN" = GUINEA "GW" = GUINEA-BISSAU "GY" = GUYANA "HT" = HAITI "HM" = HEARD ISLAND AND MCDONALD ISLANDS "VA" = HOLY SEE (VATICAN CITY STATE) "HN" = HONDURAS "HK" = HONG KONG "HU" = HUNGARY "IS" = ICELAND "IN" = INDIA "ID" = INDONESIA "IR" = IRAN, ISLAMIC REPUBLIC OF "IQ" = IRAQ "IE" = IRELAND "IL" = ISRAEL "IT" = ITALY "JM" = JAMAICA "JP" = JAPAN "JO" = JORDAN "KZ" = KAZAKSTAN "KE" = KENYA "KI" = KIRIBATI "KP" = KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF "KR" = KOREA, REPUBLIC OF "KW" = KUWAIT "KG" = KYRGYZSTAN "LA" = LAO PEOPLE'S DEMOCRATIC REPUBLIC "LV" = LATVIA "LB" = LEBANON "LS" = LESOTHO "LR" = LIBERIA "LY" = LIBYAN ARAB JAMAHIRIYA "LI" = LIECHTENSTEIN "LT" = LITHUANIA "LU" = LUXEMBOURG "MO" = MACAU "MK" = MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF "MG" = MADAGASCAR "MW" = MALAWI "MY" = MALAYSIA "MV" = MALDIVES "ML" = MALI "MT" = MALTA "MH" = MARSHALL ISLANDS "MQ" = MARTINIQUE "MR" = MAURITANIA "MU" = MAURITIUS "YT" = MAYOTTE "MX" = MEXICO "FM" = MICRONESIA, FEDERATED STATES OF "MD" = MOLDOVA, REPUBLIC OF "MC" = MONACO "MN" = MONGOLIA "MS" = MONTSERRAT "MA" = MOROCCO "MZ" = MOZAMBIQUE "MM" = MYANMAR "NA" = NAMIBIA "NR" = NAURU "NP" = NEPAL "NL" = NETHERLANDS "AN" = NETHERLANDS ANTILLES "NC" = NEW CALEDONIA "NZ" = NEW ZEALAND "NI" = NICARAGUA "NE" = NIGER "NG" = NIGERIA "NU" = NIUE "NF" = NORFOLK ISLAND "MP" = NORTHERN MARIANA ISLANDS "NO" = NORWAY "OM" = OMAN "PK" = PAKISTAN "PW" = PALAU "PS" = PALESTINIAN TERRITORY, OCCUPIED "PA" = PANAMA "PG" = PAPUA NEW GUINEA "PY" = PARAGUAY "PE" = PERU "PH" = PHILIPPINES "PN" = PITCAIRN "PL" = POLAND "PT" = PORTUGAL "PR" = PUERTO RICO "QA" = QATAR "RE" = REUNION "RO" = ROMANIA "SU" = RUSSIAN FEDERATION "RW" = RWANDA "SH" = SAINT HELENA "KN" = SAINT KITTS AND NEVIS "LC" = SAINT LUCIA "PM" = SAINT PIERRE AND MIQUELON "VC" = SAINT VINCENT AND THE GRENADINES "WS" = SAMOA "SM" = SAN MARINO "ST" = SAO TOME AND PRINCIPE "SA" = SAUDI ARABIA "SN" = SENEGAL "YU" = SERBIA AND MONTENEGRO "SC" = SEYCHELLES "SL" = SIERRA LEONE "SG" = SINGAPORE "SK" = SLOVAKIA "SI" = SLOVENIA "SB" = SOLOMON ISLANDS "SO" = SOMALIA "ZA" = SOUTH AFRICA "GS" = SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS "ES" = SPAIN "LK" = SRI LANKA "SD" = SUDAN "SR" = SURINAME "SJ" = SVALBARD AND JAN MAYEN "SZ" = SWAZILAND "SE" = SWEDEN "CH" = SWITZERLAND "SY" = SYRIAN ARAB REPUBLIC "TW" = TAIWAN, PROVINCE OF CHINA "TJ" = TAJIKISTAN "TZ" = TANZANIA, UNITED REPUBLIC OF "TH" = THAILAND "TG" = TOGO "TK" = TOKELAU "TO" = TONGA "TT" = TRINIDAD AND TOBAGO "TN" = TUNISIA "TR" = TURKEY "TM" = TURKMENISTAN "TC" = TURKS AND CAICOS ISLANDS "TV" = TUVALU "UG" = UGANDA "UA" = UKRAINE "AE" = UNITED ARAB EMIRATES "UK" = UNITED KINGDOM "US" = UNITED STATES "UM" = UNITED STATES MINOR OUTLYING ISLANDS "UY" = URUGUAY "UZ" = UZBEKISTAN "VU" = VANUATU "VE" = VENEZUELA "VN" = VIET NAM "VG" = VIRGIN ISLANDS, BRITISH "VI" = VIRGIN ISLANDS, U.S. "WF" = WALLIS AND FUTUNA "EH" = WESTERN SAHARA "YE" = YEMEN "ZM" = ZAMBIA "ZW" = ZIMBABWE