Sanırım bu dosya olacak. Bir dosya daha var ama ama onu bulamadım. Yapacak arkadaşa anydesk açarım, istediği dosyaları alır kendi bilgisayarında düzenler. Cevap yazamadığım için düzenle tıklıyorum kusura bakmayın. iş Metehan arkadaşıma verilmiştir. Site sahibini yakalıp kürekle dövmek gerek bu nasıl site.

<?php

namespace App\Controllers;

class Home extends BaseController
{
    function __construct()
    {
        parent::__construct();
        $this->data['footerPages'] = $this->pageModel->where('menu', 1)->orderBy('menu_order', 'ASC')->findAll();
    }
    function callback() {
        if(isset($_POST['requestHash']) && $_POST['paymentStatus'] && $_POST['paymentStatus'] == 'successful') {
            $apiKey = getConfig('fsfpayApiKey');
            $apiUsername = getConfig('fsfpayUsername');
            $secretKey = getConfig('fsfpaySecretKey');
            if(hash('sha256', $apiKey . $apiUsername . $secretKey) === $_POST['requestHash']) {
                $orderId = $_POST['orderId'];
                model('ApplicationModel')->where('id', intval($orderId))->set('status', 1)->update();
                die('OK');
            }
        }        
    }
    function lang_process($lang) {
        $lang = $lang == null ? getConfig('language') : $lang;
        if(!in_array($lang, $this->allowedLanguages)) {
            $this->redirect('');
        }
        $this->data['languageName'] = array_filter($this->languages, function($l) use ($lang) {
            return $l['code'] == $lang;
        });
        $this->data['languageName'] = $this->data['languageName'][array_key_first($this->data['languageName'])]['name'];
        $this->data['langExtra'] = $lang == getConfig('language') ? '' : $lang.'/';
        $GLOBALS['UserLanguage'] = $lang;
    }
    public function index($lang = null)
    {
        $this->lang_process($lang);
        $this->data['page'] = 'home';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('Home'), getConfig('title'));
        $this->data['description'] = type('HomeDescription');
        $this->data['keywords'] = type('HomeKeywords');
        return view('header', $this->data).view('home', $this->data).view('footer', $this->data);
    }
    public function page($slug, $lang = null)
    {
        $page = $this->pageModel->where('slug', $slug)->find();
        if(isset($page[0])) {
            $this->lang_process($lang);
            $page = $page[0];
            $this->data['page'] = 'page';
            $this->data['title'] = sprintf(getConfig('pageTitleFormat'), $page['title'], getConfig('title'));
            $this->data['description'] = $page['description'];
            $this->data['keywords'] = $page['keywords'];
            $this->data['pageContent'] = $page;  
            return view('header', $this->data).view('page', $this->data).view('footer', $this->data);
        }
        else {
            $this->redirect('404');
        }
    }
    public function countries($lang = null, $country = null, $coin = null) {
        $coins = [
            'bitcoin' => 'Bitcoin',
            'bitcoin-cash' => 'Bitcoin Cash',
            'bitcoin-gold' => 'Bitcoin Gold',
            'bittorent' => 'BitTorrent',
            'dogecoin' => 'Dogecoin',
            'ethereum' => 'Ethereum',
            'ethereum-classic' => 'Ethereum Classic',
            'litecoin' => 'Litecoin',
            'neo' => 'Neo',
            'ravencoin' => 'Raven',
            'tron' => 'Tron',
            'waves' => 'Waves',
            'velas' => 'Velas',
            '1irstgold' => '1GOLD',
            'cardano' => 'Cardano',
            'apollo' => 'Apollo',
            'avalanche' => 'Avalanche',
            'badcoin' => 'Badcoin',
            'bytecoin' => 'Byte Coin',
            'beam' => 'Beam',
            'bf-token' => 'BF Token',
            'bizzcoin' => 'Bizz Coin',
            'bnb-coin' => 'BNB Coin',
            'bitcoin-sv' => 'Bitcoin SV',
            'bitcoinbam' => 'Bitcoin Bam',
            'bitcoin-vault' => 'Bitcoin Vault',
            'celsius' => 'Celsius',
            'cloakcoin' => 'Cloak Coin',
            'commonsos' => 'CommonsOS',
            'crown' => 'Crown',
            'curecoin' => 'Cure Coin',
            'dai-coin' => 'Dai Coin',
            'dash' => 'Dash',
            'digibyte' => 'DigiByte',
            'divi' => 'Divi',
            'eboost' => 'eBoost',
            'eurekacoin' => 'Eureka Coin',
            'electroneum' => 'Electroneum',
            'statis-eurs' => 'STASIS EURS',
            'eventchain' => 'Event Chain',
            'firo' => 'Firo',
            'flash' => 'FLASH',
            'fuel-token' => 'Fuel Token',
            'globcoin' => 'GlobCoin',
            'groestlcoin' => 'Groestl Coin',
            'guapcoin' => 'Guap Coin',
            'gemini-dollar' => 'Gemini Dollar',
            'ilcoin' => 'ILCOIN',
            'kucoin-token' => 'KuCoin',
            'komodo' => 'Komodo',
            'kinguin-krowns' => 'Kinguin Krowns',
            'chainLink' => 'ChainLink',
            'lisk' => 'Lisk',
            'metronome' => 'Metronome',
            'okb' => 'OKB',
            'oduwa-coin' => 'Oduwa Coin',
            'oxen' => 'Oxen',
            'pivx' => 'PIVX',
            'qash' => 'QASH',
            'qtum' => 'Qtum',
            'resistance' => 'Resistance',
            'sai' => 'Sai',
            'sb-coin' => 'SB Coin',
            'skincoin' => 'Skin Coin',
            'smartcash' => 'SmartCash',
            'solana' => 'Solana',
            'spark-point' => 'Spark Point',
            'sirin' => 'Sirin',
            'storj' => 'Storj',
            'sys-coin' => 'Sys Coin',
            'token-pay' => 'TokenPay',
            'troni-pay' => 'Tronipay',
            'trueusd' => 'TrueUSD',
            'uca-coin' => 'Ucacoin',
            'unikoin-gold' => 'UKG',
            'tether' => 'Tether - ERC20',
            'vert-coin' => 'Vert Coin',
            'wom-token' => 'WOM Token',
            'curate' => 'Curate',
            'nem' => 'NEM',
            'defis' => 'Defis',
            'monero' => 'Monero',
            'ripple-xrp' => 'Ripple XRP',
            'stakenet' => 'Stakenet',
            'verge' => 'VERGE',
            'zcash' => 'ZCash',
            'horizen' => 'Horizen',
            'zyne-coin' => 'Zyne Coin',
            'usd-coin' => 'USD Coin',
            'polkadot' => 'Polkadot',
            'hex-coin' => 'HEX Coin',
            'uniswap' => 'Uniswap',
            'matic-network' => 'Matic Network',
            'theta-fuel' => 'THETA',
            'icp' => 'InternetComputer',
            'xlm' => 'Stellar',
            'vechain' => 'VeChain',
            'filecoinfutures' => 'FilecoinFutures',
            'eos' => 'EOS',
            'aave' => 'Aave',
            'shibainu' => 'SHIBAINU',
            'cryptocom-coin' => 'Crypto.com Coin',
            'maker' => 'Maker',
            'algorand' => 'Algorand',
            'compound' => 'Compound',
            'iota' => 'IOTA',
            'tezos' => 'Tezos',
            'amp' => 'AMP',
            'thegraph' => 'TheGraph',
            'kusama' => 'Kusama',
            'thetafuel' => 'ThetaFuel',
            'counosx' => 'CounosX',
            'decred' => 'Decred',
            'elrond' => 'Elrond',
            'thor-chain' => 'THOR Chain',
            'hedera-hashgraph' => 'Hedera Hashgraph',
            'chiliz' => 'Chiliz',
            'credit-coin' => 'Creditcoin',
            'yearn-finance' => 'Yearn Finance',
            'synthetix-network-token' => 'Synthetix Network Token',
            'decentraland' => 'Decentraland',
            'sushi' => 'Sushi',
            'xinfin-network' => 'Xin Fin Network',
            'helium' => 'Helium',
            'stacks' => 'Stacks',
            'enjin-coin' => 'Enjin Coin',
            'holo' => 'Holo',
            'quant' => 'Quant',
            'basic-attention-token' => 'Basic Attention Token',
            'zilliqa' => 'Zilliqa',
            'celo' => 'Celo',
            'harmony' => 'Harmony',
            'bancor' => 'Bancor',
            'curve-dao-token' => 'Curve DAO Token',
            'whitecoin' => 'White Coin',
            'defichain' => 'DeFiChain',
            'ontology' => 'Ontology',
            'siacoin' => 'Siacoin',
            'omisego' => 'OmiseGO',
            'nano' => 'Nano',
            'uma' => 'UMA',
            'icon' => 'ICON',
            'ankr' => 'Ankr',
            'voyager-token' => 'Voyager Token',
            'pirate-chain' => 'Pirate Chain',
            'iost' => 'IOST',
            'arweave' => 'Arweave',
            'bitcoin-diamond' => 'Bitcoin Diamond',
            'reserve-rights' => 'Reserve Rights',
            'kyber-network' => 'Kyber Network',
            'golem' => 'Golem',
            'kava' => 'Kava',
            'loopring' => 'Loopring',
            'maid-safe-coin' => 'Maid Safe Coin',
            'stratis' => 'Stratis',
            'fetch' => 'Fetch',
            'ergo' => 'Ergo',
            'orchid' => 'Orchid',
            'serum' => 'Serum',
            'iotex' => 'IoTeX',
            'civic' => 'Civic',
            'melon' => 'Melon',
            'augur' => 'Augur',
            'ardor' => 'Ardor',
            'nucypher' => 'NuCypher',
            'balancer' => 'Balancer',
            'funfair' => 'FunFair',
            'tomo-chain' => 'Tomo Chain',
            'steem' => 'Steem',
            'energy-web-token' => 'Energy Web Token',
            'nkn' => 'NKN',
            'mco' => 'MCO',
            'aragon' => 'Aragon',
            'constellation' => 'Constellation',
            'hive' => 'Hive',
            'phala-network' => 'Phala Network',
            'abbc-coin' => 'ABBC Coin',
            'metadium' => 'Metadium',
            'bit-shares' => 'Bit Shares',
            'ark' => 'Ark',
            'sapphire' => 'Sapphire',
            'wanchain' => 'Wanchain',
            'metal' => 'Metal',
            'travala-com' => 'Travalacom',
            'populous' => 'Populous',
            'xenios-coin' => 'Xenios Coin',
            'pac-global' => 'PAC Global',
            'coti' => 'COTI',
            'bytom' => 'Bytom',
            'mona-coin' => 'Mona Coin',
            'kin' => 'Kin',
            'trust-wallet-token' => 'Trust Wallet Token',
            'irisnet' => 'IRISnet',
            'newyork-exchange' => 'NewYork Exchange',
            'efforce' => 'EFFORCE',
            'handshake' => 'Handshake',
            'rchain' => 'RChain',
            'district0x' => 'District0x',
            'energi' => 'Energi',
            'dero' => 'Dero',
            'thunder-token' => 'Thunder Token',
            'super-zero' => 'Super Zero',
            'rsksmart-bitcoin' => 'RSKSmart Bitcoin',
            'burst' => 'Burst',
            'gas' => 'Gas',
            'aion' => 'Aion',
            'darmacash' => 'DARMA Cash',
            'sonm' => 'SONM',
            'groestl-coin' => 'Groestl Coin',
            'mimble-wimble-coin' => 'Mimble Wimble Coin',
            'haven-protocol' => 'Haven Protocol',
            'atari-token' => 'Atari Token',
            'fio-protocol' => 'FIO Protocol',
            'crust' => 'Crust',
            'steem-dollars' => 'Steem Dollars',
            'veritaseum' => 'Veritaseum',
            'redd-coin' => 'Redd Coin',
            'axel' => 'AXEL',
            'kadena' => 'Kadena',
            'zenon' => 'Zenon',
            'verasity' => 'Verasity',
            'adex' => 'AdEx',
            'walton-chain' => 'Walton Chain',
            'elastos' => 'Elastos',
            'terrakrw' => 'TerraKRW',
            'loki' => 'Loki',
            'vsystems' => 'VSystems',
            'massnet' => 'Massnet',
            'nimiq' => 'Nimiq',
            'coinex-token' => 'Coin Ex Token',
            'digix-dao' => 'Digix DAO',
            'nuls' => 'NULS',
            'pivx' => 'PIVX',
            'nervos-network' => 'Nervos Network',
            'thesandbox' => 'TheSandbox',
            'gnosis' => 'Gnosis',
            'hellenic-coin' => 'Hellenic Coin',
            'status' => 'Status',
            've-thor-token' => 'Ve Thor Token',
            'wax' => 'WAX',
            'iexec-rlc' => 'iExec RLC',
            'band-protocol' => 'Band Protocol',
            'wayki-chain' => 'Wayki Chain',
            'nexus' => 'Nexus',
            'chainx' => 'ChainX',
            'aeternity' => 'Aeternity',
            'gx-chain' => 'GX Chain',
            'platin-coin' => 'Platin Coin',    
            'hyper-cash' => 'Hyper Cash',
            'metahash' => 'Metahash',
            'Fusion' => 'Fusion',
            'Cortex' => 'Cortex',
            'PRIZM' => 'PRIZM',
            'Peercoin' => 'Peer Coin',
            'NavCoin' => 'Nav Coin',
            'Maro' => 'MARO',
            'ProjectPai' => 'Project Pai',
            'VITE' => 'VITE',
            'BetProtocol' => 'Bet Protocol',
            'Zano' => 'ZANO',
            'CUTcoin' => 'CUT Coin',
            'GoChain' => 'Go Chain',
            'SOLVE' => 'SOLVE',
            'AidosKuneen' => 'Aidos Kuneen',
            'Namecoin' => 'Name Coin',
            'Grin' => 'GRIN',
            'ZelCash' => 'Zel Cash',
            'Nebulas' => 'Nebulas',
            'MinterNetwork' => 'Minter Network',
            'Skycoin' => 'Sky Coin',
            'SALT' => 'SALT',
            'Obyte' => 'Obyte',
            'GameCredits' => 'Game Credits',
            'Tael' => 'Tael',
            'QuantumResistantLedger' => 'Quantum Resistant Ledger',
            'neblio' => 'Neblio',
            'lbrycredits' => 'LBRY Credits',
            'MetaverseDualchainNetworkArchitecture' => 'Metaverse',
            'Factom' => 'Factom',
            'Nxt' => 'Nxt',
            'Gulden' => 'Gulden',
            'Ondori' => 'Ondori',
            'Particl' => 'Particl',
            'Dentacoin' => 'Denta Coin',
            'MetaverseETP' => 'Metaverse ETP',
            'BHPCoin' => 'BHP Coin',
            'Validity' => 'Validity',
            'TenX' => 'TenX',
            'MetrixCoin' => 'Metrix Coin',
            'Viacoin' => 'Via Coin',
            'BitcoinHD' => 'Bitcoin HD',
            'TrueChain' => 'True Chain',
            'Aeon' => 'AEON',
            'GHOST' => 'GHOST',
            'POANetwork' => 'POA Network',
            'TurtleCoin' => 'Turtle Coin',
            'Ubiq' => 'Ubiq',
            'NerveNetwork' => 'Nerve Network',
            'CyberMiles' => 'Cyber Miles',
            'HTMLCOIN' => 'HTMLCOIN',
            'HighPerformanceBlockchain' => 'High Performance Blockchain',
            'Blocknet' => 'Blocknet',
            'Dynamic' => 'Dynamic',
            'Achain' => 'Achain',
            'SmartCash' => 'Smart Cash',
            'Diamond' => 'Diamond',
            'Bitcoin2' => 'Bitcoin2',
            'Bitcore' => 'Bitcore',
            'Observer' => 'Observer',
            'FLO' => 'FLO',
            'Wagerr' => 'Wagerr',
            'Vexanium' => 'Vexanium',
            'Pmeer' => 'PMEER',
            'DigitalNote' => 'Digital Note',
            'FIBOS' => 'Fibos',
            'Einsteinium' => 'Einsteinium',
            'DECOIN' => 'De Coin',
            'StakeCubeCoin' => 'Stake Cube Coin',
            'AlchemyPay' => 'AlchemyPay',
            'MoneroClassic' => 'Monero Classic',
            'OrientWalt' => 'OrientWalt',
            'YOYOW' => 'Yoyow',
            'SafexToken' => 'Safex Token',
            'MatrixAINetwork' => 'MatrixAINetwork',
            'PCHAIN' => 'PCHAIN',
            'RINGXPLATFORM' => 'Ringx Platform',
            'Ambrosus' => 'Ambrosus',
            'Myriad' => 'Myriad',
            'Feathercoin' => 'Feather Coin',
            'Xaya' => 'Xaya',
            'TERA' => 'TERA',
            'SingularDTV' => 'Singular DTV',
            'Phore' => 'Phore',
            'Vitae' => 'Vitae',
            'NuBits' => 'Nu Bits',
            'InsightsNetwork' => 'Insights Network',
            'Wings' => 'Wings',
            'Gleec' => 'Gleec',
            'InternetNodeToken' => 'Internet Node Token',
            'MIRCOIN' => 'MIR Coin',
            'Quark' => 'Quark',
            'GridCoin' => 'Grid Coin',
            'Stealth' => 'Stealth',
            'Idena' => 'Idena',
            'Nyzo' => 'NYZO',
            'BitcoinPoS' => 'Bitcoin Pos',
            'BlackCoin' => 'Black Coin',
            'ILCoin' => 'IL Coin',
            'SonoCoin' => 'Sono Coin',
            'Aryacoin' => 'Arya Coin',
            'MobileGo' => 'MobileGo',
            'VINchain' => 'VIN Chain',
            'OTOCASH' => 'OTO Cash',
            'ScPrime' => 'Sc Prime',
            'Dimecoin' => 'Dime Coin',
            'FairCoin' => 'FairCoin',
            'Nexalt' => 'Nexalt',
            'BitcoinRhodium' => 'Bitcoin Rhodium',
            'GHOSTPRISM' => 'Ghost Prism',
            'Crown' => 'Crown',
            'BitTube' => 'BitTube',
            'BitcoinAtom' => 'Bitcoin Atom',
            'IOCoin' => 'IO Coin',
            'Curecoin' => 'Cure Coin',
            'ODUWA' => 'Oduwa',
            'NIX' => 'NIX',
            'Substratum' => 'Substratum',
            'ColossusXT' => 'Colossus XT',
            'GlobalCryptocurrency' => 'Global Cryptocurrency',
            'XTRABYTES' => 'XTRABYTES',
            'Polis' => 'Polis',
            'BackPackerCoin' => 'Back Packer Coin',
            'DDKoin' => 'DDKoin',
            'EurekaCoin' => 'Eureka Coin',
            'Asch' => 'Asch',
            'MicroBitcoin' => 'Micro Bitcoin',
            'HYCON' => 'Hycon',
            'Edgeless' => 'Edgeless',
            'Ouroboros' => 'Ouroboros',
            'ATBCoin' => 'ATB Coin',
            'FirstCoin' => 'First Coin',
            'CompoundCoin' => 'Compound Coin',
            'Lykke' => 'Lykke',
            'ECC' => 'ECC',
            'MOAC' => 'MOAC',
            'Alias' => 'Alias',
            'Clams' => 'Clams',
            'Electra' => 'Electra',
            'Bonorum' => 'Bonorum',
            'CasinoCoin' => 'Casino Coin',
            'NoLimitCoin' => 'No Limit Coin',
            'Beldex' => 'Beldex',
            'Unobtanium' => 'Unobtanium',
            'DACC' => 'Dacc',
            'Sphere' => 'Sphere',
            'DuneNetwork' => 'Dune Network',
            'MintCoin' => 'Mint Coin',
            'Rubycoin' => 'Ruby Coin',
            'ExchangeUnion' => 'Exchange Union',
            'AdvancedInternetBlocks' => 'Advanced Internet Blocks',
            'Metacoin' => 'Meta Coin',
            'CounosCoin' => 'Counos Coin',
            'JDCoin' => 'JD Coin',
            'SaluS' => 'SaluS',
            'Dinastycoin' => 'Dinasty Coin',
            'Shift' => 'Shift',
            'Midas' => 'Midas',
            'LargoCoin' => 'Largo Coin',
            'Counterparty' => 'Counterparty',
            'GreenPower' => 'Green Power',
            'BaerChain' => 'Baer Chain',
            'VeriBlock' => 'Veri Block',
            'ChiaNetwork' => 'Chia Network',
            'BlockStamp' => 'Block Stamp',
            'Bonfire' => 'Bonfire',
        ];
        $coin_codes = [
            'bitcoin' => 'BTC',
            'bitcoin-cash' => 'BCH',
            'bitcoin-gold' => 'BTG',
            'bittorent' => 'BTT',
            'dogecoin' => 'DOGE',
            'ethereum' => 'ETH',
            'ethereum-classic' => 'ETC',
            'litecoin' => 'LTC',
            'neo' => 'NEO',
            'ravencoin' => 'RAVEN',
            'tron' => 'TRON',
            'waves' => 'WAVES',
            'velas' => 'VLX',
            '1irstgold' => '1GOLD',
            'cardano' => 'ADABEP2',
            'apollo' => 'APL',
            'avalanche' => 'AVEX',
            'badcoin' => 'BAD',
            'bytecoin' => 'BCN',
            'beam' => 'BEAM',
            'bf-token' => 'BFT',
            'bizzcoin' => 'BIZZ',
            'bnb-coin' => 'BNB',
            'bitcoin-sv' => 'BSV',
            'bitcoinbam' => 'BTCBAM',
            'bitcoin-vault' => 'BTCV',
            'celsius' => 'CEL',
            'cloakcoin' => 'CLOAK',
            'commonsos' => 'CommonsOS',
            'crown' => 'CRW',
            'curecoin' => 'CURE',
            'dai-coin' => 'DAI',
            'dash' => 'DASH',
            'digibyte' => 'DGB',
            'divi' => 'DIVI',
            'eboost' => 'EBST',
            'eureka-coin' => 'ERK',
            'electroneum' => 'ETN',
            'statis-eurs' => 'EURS',
            'eventchain' => 'EVC',
            'firo' => 'FIRO',
            'flash' => 'FLASH',
            'fuel-token' => 'FUEL',
            'globcoin' => 'GLX',
            'groestlcoin' => 'GRS',
            'guapcoin' => 'GUAP',
            'gemini dollar' => 'GUSD',
            'ilcoin' => 'ILC',
            'kucoin-token' => 'KCS',
            'komodo' => 'KMD',
            'kinguin-krowns' => 'KRS',
            'chainlink' => 'LINK',
            'lisk' => 'LSK',
            'metronome' => 'MET',
            'okb' => 'OKB',
            'oduwa-coin' => 'OWC',
            'oxen' => 'OXEN',
            'pivx' => 'PIVX',
            'qash' => 'QASH',
            'qtum' => 'QTUM',
            'resistance' => 'RES',
            'sai' => 'SAI',
            'sv-coin' => 'SBC',
            'skincoin' => 'SKIN',
            'smartcash' => 'SMART',
            'solana' => 'SOL',
            'sparkpoint' => 'SparkPoint',
            'sirin' => 'SRN',
            'storj' => 'STORJ',
            'sys-coin' => 'SYS',
            'token-pay' => 'TPAY',
            'troni-pay' => 'TRP',
            'trueusd' => 'TUSD',
            'uca-coin' => 'UCA',
            'unikoin-gold' => 'UKG',
            'tether' => 'USDT',
            'vert-coin' => 'VTC',
            'wom-token' => 'WOM',
            'curate' => 'XCUR',
            'nem' => 'XEM',
            'defis' => 'XGM',
            'monero' => 'XMR',
            'ripple-xrp' => 'XRP',
            'stakenet' => 'XSN',
            'verge' => 'XVG',
            'zcash' => 'ZEC',
            'horizen' => 'ZEN',
            'zyne-coin' => 'ZYN',
            'usd-coin' => 'USDC',
            'polkadot' => 'DOT1',
            'hex-coin' => 'HEX',
            'uniswap' => 'UNI3',
            'matic-network' => 'MATIC',
            'theta' => 'THETA',
            'internet-computer' => 'ICP',
            'stellar' => 'XLM',
            'vechain' => 'VET',
            'file-coin-futures' => 'FIL',
            'eos' => 'EOS',
            'aave' => 'AAVE',
            'shibainu' => 'SHIB',
            'cryptocom-coin' => 'CRO',
            'maker' => 'MKR',
            'algorand' => 'ALGO',
            'compound' => 'COMP',
            'iota' => 'MIOTA',
            'tezos' => 'XTZ',
            'amp' => 'AMP',
            'thegraph' => 'GRT2',
            'kusama' => 'KSM',
            'theta-fuel' => 'TFUEL',
            'counosx' => 'CCXX',
            'decred' => 'DCR',
            'elrond' => 'EGLD',
            'thor-chain' => 'RUNE',
            'hedera-hashgraph' => 'HBAR',
            'chiliz' => 'CHZ',
            'credit-coin' => 'CTC',
            'yearn-finance' => 'YFI',
            'synthetix-network-token' => 'SNX',
            'decentraland' => 'MANA',
            'sushi' => 'SUSHI',
            'xinfin-network' => 'XDC',
            'helium' => 'HNT',
            'stacks' => 'STX',
            'enjin-coin' => 'ENJ',
            'holo' => 'HOT',
            'quant' => 'QNT',
            'basic-attention-token' => 'BAT',
            'zilliqa' => 'ZIL',
            'celo' => 'CELO',
            'harmony' => 'ONE2',
            'bancor' => 'BNT',
            'curve-dao-token' => 'CRV',
            'white-coin' => 'XWC',
            'defi-chain' => 'DFI',
            'ontology' => 'ONT',
            'siacoin' => 'SC',
            'omisego' => 'OMG',
            'nano' => 'NANO',
            'uma' => 'UMA',
            'icon' => 'ICON',
            'ankr' => 'ANKR',
            'voyager-token' => 'VGX',
            'pirate-chain' => 'ARRR',
            'iost' => 'IOST',
            'arweave' => 'AR',
            'bitcoin-diamond' => 'BCD',
            'reserve-rights' => 'RSR',
            'kyber-network' => 'KNC',
            'golem' => 'GLM',
            'kava' => 'KAVA',
            'loopring' => 'LRC',
            'maid-safe-coin' => 'MAID',
            'stratis' => 'STRAX',
            'fetch' => 'FET',
            'ergo' => 'ERG',
            'orchid' => 'OXT',
            'serum' => 'SRM',
            'iotex' => 'IOTX',
            'civic' => 'CVC',
            'melon' => 'MLC',
            'augur' => 'REP',
            'ardor' => 'ARDR',
            'nucypher' => 'NU',
            'balancer' => 'BAL',
            'funfair' => 'FUN',
            'tomo-chain' => 'TOMO',
            'steem' => 'STEEM',
            'energy-web-token' => 'EWT',
            'nkn' => 'NKN',
            'mco' => 'MCO',
            'aragon' => 'ANT',
            'constellation' => 'DAG',
            'hive' => 'HIVE',
            'phala-network' => 'PHA',
            'abbc-coin' => 'ABBC',
            'metadium' => 'META',
            'bit-shares' => 'BTS',
            'ark' => 'ARK',
            'sapphire' => 'SAPP',
            'wanchain' => 'WAN',
            'metal' => 'MTL',
            'travala-com' => 'AVA',
            'populous' => 'PPT',
            'xenios-coin' => 'XNC',
            'pac-global' => 'PAC',
            'coti' => 'COTI',
            'bytom' => 'BTM',
            'mona-coin' => 'MONA',
            'kin' => 'KIN',
            'trust-wallet-token' => 'TWT',
            'irisnet' => 'IRIS',
            'newyork-exchange' => 'NYE',
            'efforce' => 'WOZX',
            'handshake' => 'HNS',
            'rchain' => 'REV',
            'district0x' => 'DRT',
            'energi' => 'NRG',
            'dero' => 'DERO',
            'thunder-token' => 'THUNDER',
            'super-zero' => 'SERO',
            'rsksmart-bitcoin' => 'RBTC',
            'burst' => 'BURST',
            'gas' => 'GAS',
            'aion' => 'AION',
            'darma-cash' => 'DMCH',
            'sonm' => 'SONM',
            'groestl-coin' => 'GRS',
            'mimble-wimble-coin' => 'MVC',
            'haven-protocol' => 'XHV',
            'ataritoken' => 'ARI',
            'fio-protocol' => 'FIO',
            'crust' => 'CRU',
            'steem-dollars' => 'SBD',
            'veritaseum' => 'VRI',
            'redd-coin' => 'RDD',
            'axel' => 'AXEL',
            'kadena' => 'KDA',
            'zenon' => 'ZNN',
            'verasity' => 'VRA',
            'adex' => 'ADX',
            'walton-chain' => 'WTC',
            'elastos' => 'ELA',
            'terrakrw' => 'KRT',
            'loki' => 'LOKI',
            'vsystems' => 'VSYS',
            'massnet' => 'MASS',
            'nimiq' => 'NIM',
            'coinex-token' => 'CET',
            'digix-dao' => 'DGD',
            'nuls' => 'NULS',
            'pivx' => 'PIVX',
            'nervos-network' => 'CKB',
            'thesandbox' => 'SAND',
            'gnosis' => 'GNO',
            'hellenic-coin' => 'HNC',
            'status' => 'STN',
            've-thor-token' => 'VTHO',
            'wax' => 'WAX',
            'iexec-rlc' => 'RLC',
            'band-protocol' => 'BAND',
            'Wayki-Chain' => 'WICC',
            'Nexus' => 'NXS',
            'ChainX' => 'PCX',
            'Aeternity' => 'AE',
            'GXChain' => 'GXC',
            'platin-coin' => 'PLC',    
            'hyper-cash' => 'HC',
            'metahash' => 'MHC',
            'Fusion' => 'FSN',
            'Cortex' => 'CTXC',
            'PRIZM' => 'PZM',
            'Peercoin' => 'PPC',
            'NavCoin' => 'NAV',
            'Maro' => 'MARO',
            'ProjectPai' => 'PAI',
            'VITE' => 'VITE',
            'BetProtocol' => 'BEPRO',
            'Zano' => 'ZANO',
            'CUTcoin' => 'CUT',
            'GoChain' => 'GO',
            'SOLVE' => 'SOLVE',
            'AidosKuneen' => 'ADK',
            'Namecoin' => 'NMC',
            'Grin' => 'GRIN',
            'ZelCash' => 'ZEL',
            'Nebulas' => 'NAS',
            'MinterNetwork' => 'BIP',
            'Skycoin' => 'SKY',
            'SALT' => 'SALT',
            'Obyte' => 'GBYTE',
            'GameCredits' => 'GAME',
            'Tael' => 'WABI',
            'QuantumResistantLedger' => 'QRL',
            'Neblio' => 'NEBL',
            'LBRYCredits' => 'LBC',
            'MetaverseDualchainNetworkArchitecture' => 'DNA',
            'Factom' => 'FCT',
            'Nxt' => 'NXT',
            'Gulden' => 'NLG',
            'Ondori' => 'RSTR',
            'Particl' => 'PART',
            'Dentacoin' => 'DCN',
            'MetaverseETP' => 'ETP',
            'BHPCoin' => 'BHP',
            'Validity' => 'VAL1',
            'TenX' => 'PAY',
            'MetrixCoin' => 'MRX',
            'Viacoin' => 'VIA',
            'BitcoinHD' => 'BHD',
            'TrueChain' => 'TRUE',
            'Aeon' => 'AEON',
            'GHOST' => 'GHOST',
            'POANetwork' => 'POA',
            'TurtleCoin' => 'TRTL',
            'Ubiq' => 'UBQ',
            'NerveNetwork' => 'NVT',
            'CyberMiles' => 'CMT',
            'HTMLCOIN' => 'HTML',
            'HighPerformanceBlockchain' => 'HPB',
            'Blocknet' => 'BLOCK',
            'Dynamic' => 'DYN',
            'Achain' => 'ACT',
            'SmartCash' => 'SMART',
            'Diamond' => 'DMD',
            'Bitcoin2' => 'BTC2',
            'Bitcore' => 'BTX',
            'Observer' => 'OBSR',
            'FLO' => 'FLO',
            'Wagerr' => 'WGR',
            'Vexanium' => 'VEX',
            'Pmeer' => 'PMEER',
            'DigitalNote' => 'XDN',
            'FIBOS' => 'FO',
            'Einsteinium' => 'EMC2',
            'DECOIN' => 'DTEP',
            'StakeCubeCoin' => 'SCC3',
            'AlchemyPay' => 'ACH',
            'MoneroClassic' => 'XMC',
            'OrientWalt' => 'HTDF',
            'YOYOW' => 'YOYOW',
            'SafexToken' => 'SFT',
            'MatrixAINetwork' => 'MAN',
            'PCHAIN' => 'PI',
            'RINGXPLATFORM' => 'RINGX',
            'Ambrosus' => 'AMB',
            'Myriad' => 'XMY',
            'Feathercoin' => 'FTC',
            'Xaya' => 'CHI',
            'TERA' => 'TERA',
            'SingularDTV' => 'SNGLS',
            'Phore' => 'PHR',
            'Vitae' => 'VITAE',
            'NuBits' => 'USNBT',
            'InsightsNetwork' => 'INSTAR',
            'Wings' => 'WINGS',
            'Gleec' => 'GLEEC',
            'InternetNodeToken' => 'INT',
            'MIRCOIN' => 'MIR',
            'Quark' => 'QRK',
            'GridCoin' => 'GRC',
            'Stealth' => 'XST',
            'Idena' => 'IDNA',
            'Nyzo' => 'NYZO',
            'BitcoinPoS' => 'BPS',
            'BlackCoin' => 'BLK',
            'ILCoin' => 'ILC',
            'SonoCoin' => 'SONO1',
            'Aryacoin' => 'AYA',
            'MobileGo' => 'MGO',
            'VINchain' => 'VIN',
            'OTOCASH' => 'OTO',
            'ScPrime' => 'SCP',
            'Dimecoin' => 'DIME',
            'FairCoin' => 'FAIR',
            'Nexalt' => 'XLT',
            'BitcoinRhodium' => 'XRC',
            'GHOSTPRISM' => 'GHOST',
            'Crown' => 'CRW',
            'BitTube' => 'TUBE',
            'BitcoinAtom' => 'BCA',
            'IOCoin' => 'IOC',
            'Curecoin' => 'CURE',
            'ODUWA' => 'OWC',
            'NIX' => 'NIX',
            'Substratum' => 'SUB',
            'ColossusXT' => 'COLX',
            'GlobalCryptocurrency' => 'GCC1',
            'XTRABYTES' => 'XBY',
            'Polis' => 'POLIS',
            'BackPackerCoin' => 'BPC',
            'DDKoin' => 'DDK',
            'EurekaCoin' => 'ERK',
            'Asch' => 'XAS',
            'MicroBitcoin' => 'MBC',
            'HYCON' => 'HYC',
            'Edgeless' => 'EDG',
            'Ouroboros' => 'OURO',
            'ATBCoin' => 'ATB',
            'FirstCoin' => 'FRST',
            'CompoundCoin' => 'COMP1',
            'Lykke' => 'LKK',
            'ECC' => 'ECC',
            'MOAC' => 'MOAC',
            'Alias' => 'ALIAS',
            'Clams' => 'CLAM',
            'Electra' => 'ECA',
            'Bonorum' => 'BONO',
            'CasinoCoin' => 'CSC',
            'NoLimitCoin' => 'NLC2',
            'Beldex' => 'BDX',
            'Unobtanium' => 'UNO',
            'DACC' => 'DACC',
            'Sphere' => 'SPHR',
            'DuneNetwork' => 'DUN',
            'MintCoin' => 'MINT',
            'Rubycoin' => 'RBY',
            'ExchangeUnion' => 'XUC',
            'AdvancedInternetBlocks' => 'AIB',
            'Metacoin' => 'MTC2',
            'CounosCoin' => 'CCA',
            'JDCoin' => 'JDC',
            'SaluS' => 'SLS',
            'Dinastycoin' => 'DCY',
            'Shift' => 'SHIFT',
            'Midas' => 'MIDAS',
            'LargoCoin' => 'LRG',
            'Counterparty' => 'XCP',
            'GreenPower' => 'GRN',
            'BaerChain' => 'BRC',
            'VeriBlock' => 'VBK',
            'ChiaNetwork' => 'XCH',
            'BlockStamp' => 'BST',
            'Bonfire' => 'BONFIRE',
        ];

        $lang = $lang === 'null' ? null : $lang;
        $this->lang_process($lang);
        $countries = [];
        $path = sprintf('./app/Language/%s/Countries.php', getConfig('language'));
        if(file_exists($path)) {
            $countries = include $path;
        }
        if($country == null) {
            $this->data['page'] = 'page';
            $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('CountriesTitle'), getConfig('title'));
            $this->data['description'] = type('CountriesDescription');
            $this->data['keywords'] = type('CountriesKeywords');    
            $cols = '';
            foreach($countries as $code => $name) {
                $format = '<div class="col-lg-3 mb-3"><a href="%s" class="btn btn-primary py-2 d-block">%s</a></div>';
                $cols .= sprintf($format, './'.$this->data['langExtra'].'countries/'.$code, htmlspecialchars($name));
            }
            $this->data['pageContent'] = [
                'title' => type('CountriesTitle'),
                'content' => '<div class="text-center">'.type('CountriesText').
                '<div class="mt-4 row">'.$cols.
                '</div></div>'
            ];
            return view('header', $this->data).view('page', $this->data).view('footer', $this->data);
        }
        else {
            if(isset($countries[$country])) {
                if(is_null($coin)) {
                    $countryName = $countries[$country];
                    $this->data['page'] = 'page';
                    $this->data['title'] = sprintf(getConfig('pageTitleFormat'), str_replace('{CountryName}', $countryName, type('CountryCoinListTitle')), getConfig('title'));
                    $this->data['description'] = str_replace('{CountryName}', $countryName, type('CountryCoinListDescription'));
                    $this->data['keywords'] = str_replace('{CountryName}', $countryName, type('CountryCoinListKeywords'));
                $cols = '';
                    foreach($coins as $coin => $name) {
                        $format = '<div class="col-lg-3 mb-3"><a href="%s" class="btn btn-primary py-2 d-block">%s</a></div>';
                        $cols .= sprintf($format, './'.$this->data['langExtra'].'countries/'.$country.'/'.$coin, htmlspecialchars($name));
                    }
                    $this->data['pageContent'] = [
                        'title' => str_replace('{CountryName}', $countryName, type('CountryCoinListsTitle')),
                        'content' => '<div class="text-center">'.type('CountryCoinText').
                        '<div class="mt-4 row">'.$cols.
                        '</div></div>'
                    ];
                    return view('header', $this->data).view('page', $this->data).view('footer', $this->data);
                }
                else {
                    if(isset($coins[$coin])) {
                        $cryptoName = $coins[$coin];
                        $cryptoCode = $coin_codes[$coin];
                        $countryName = $countries[$country];
                        $this->data['page'] = 'country';
                        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), str_replace(['{CountryName}', '{CryptoCode}', '{CryptoName}'], [$countryName, $cryptoCode, $cryptoName], type('CountryDetailsTitle')), getConfig('title'));
                        $this->data['description'] = str_replace(['{CountryName}', '{CryptoCode}', '{CryptoName}'], [$countryName, $cryptoCode, $cryptoName], type('CountryDetailsDescription'));
                        $this->data['keywords'] = str_replace(['{CountryName}', '{CryptoCode}', '{CryptoName}'], [$countryName, $cryptoCode, $cryptoName], type('CountryDetailsKeywords'));
                        $this->data['countryName'] = $countryName;
                        $data = str_replace(['{CountryName}', '{CryptoCode}', '{CryptoName}'], [$countryName, $cryptoCode, $cryptoName], view('country', $this->data));
                        return view('header', $this->data).$data.view('footer', $this->data);  
                    }
                    else {
                        $this->redirect('404');
                    }
                }
            }
            else {
                $this->redirect('404');
            }
        }
    }
    public function modules($lang = null)
    {
        $this->lang_process($lang);
        $this->data['page'] = 'page';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('ModulesTitle'), getConfig('title'));
        $this->data['description'] = type('ModulesDescription');
        $this->data['keywords'] = type('ModulesKeywords');

        return view('header', $this->data).view('modules', $this->data).view('footer', $this->data);
    }
    public function contact($lang = null)
    {
        $this->lang_process($lang);
        $this->data['page'] = 'page';
        $this->data['page_name'] = 'contact';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('Contact Us'), getConfig('title'));
        $this->data['description'] = '';
        $this->data['keywords'] = '';

        return view('header', $this->data).view('contact', $this->data).view('footer', $this->data);
    }
    public function add_coin($lang = null)
    {
        $this->lang_process($lang);

        if($this->request->getGet('orderId') !== null && $this->request->getGet('token') !== null) {
            $applicationModel = model('ApplicationModel');
            $application = $applicationModel->find(intval($this->request->getGet('orderId')));
            if(is_null($application) || $application['status'] != 0 || md5('fsfpayApplication'.$application['email']) !== $this->request->getGet('token')) {
                header('Location: '.base_url());
                die;
            }
            $this->data['page'] = 'page';
            $this->data['page_name'] = 'payment';
            $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('Payment'), getConfig('title'));
            $this->data['description'] = '';
            $this->data['keywords'] = '';
            $this->data['application'] = $application;
    
            return view('header', $this->data).view('payment', $this->data).view('footer', $this->data);    
        }

        if($this->request->getPost('name') !== null && $this->request->getPost('email') !== null && filter_var($this->request->getPost('email'), FILTER_VALIDATE_EMAIL) && $this->request->getPost('coin_name') !== null && $this->request->getPost('coin_logo') !== null) {
            $applicationModel = model('ApplicationModel');
            $applicationModel->insert([
                'name' => $this->request->getPost('name'),
                'email' => $this->request->getPost('email'),
                'coin_name' => $this->request->getPost('coin_name'),
                'coin_logo' => $this->request->getPost('coin_logo'),
                'status' => 0
            ]);
            $id = $applicationModel->insertId();
            header('Location: '.base_url(($lang != null ? $lang.'/' : '').'add-coin?orderId='.$id.'&token='.md5('fsfpayApplication'.$this->request->getPost('email'))));
            die;
        }

        $this->data['page'] = 'page';
        $this->data['page_name'] = 'add-coin';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('CoinListingTitle'), getConfig('title'));
        $this->data['description'] = type('CoinListingDescription');
        $this->data['keywords'] = type('CoinListingKeywords');

        return view('header', $this->data).view('add-coin', $this->data).view('footer', $this->data);
    }
    public function faq($lang = null)
    {
        $this->lang_process($lang);
        $this->data['page'] = 'page';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('FaqTitle'), getConfig('title'));
        $this->data['description'] = type('FaqDescription');
        $this->data['keywords'] = type('FaqKeywords');
        $faqs = [];
        $path = sprintf('./app/Language/%s/Faq.php', getConfig('language'));
        if(file_exists($path)) {
            $faqs = include $path;
        }
        $cards = '';
        $i = 0;
        foreach($faqs as $question => $answer) {
            $i++;
            $cards .= '<div class="card">
            <div class="p-1 card-header bg-primary" id="heading'.$i.'">
              <h2 class="mb-0">
                <button class="btn btn-link text-white" style="text-decoration:none" type="button" data-toggle="collapse" data-target="#collapse'.$i.'" aria-expanded="true" aria-controls="collapse'.$i.'">
                  '.htmlspecialchars($question).'
                </button>
              </h2>
            </div>
        
            <div id="collapse'.$i.'" class="collapse'.($i == 1 ? ' show' : '').'" aria-labelledby="heading'.$i.'" data-parent="#faq">
              <div class="card-body">'.htmlspecialchars($answer).'</div>
            </div>
          </div>';
        }
        $this->data['pageContent'] = [
            'title' => type('FaqTitle'),
            'content' => '<div class="accordion" id="faq">'.$cards.'</div>'
        ];  
        return view('header', $this->data).view('page', $this->data).view('footer', $this->data);
    }
    public function page_not_found() {
        $this->data['langExtra'] = '';
        $this->data['page'] = 'page';
        $this->data['title'] = sprintf(getConfig('pageTitleFormat'), type('Page Not Found!'), getConfig('title'));
        $this->data['description'] = '';
        $this->data['keywords'] = '';
        $this->data['pageContent'] = [
            'title' => type('Page Not Found!'),
            'content' => '<div class="text-center">'.type('Unfortunately the page you looking for does not exist. You can go back to home page with using the button below.').'<div class="mt-4"><a href="./" class="btn btn-link text-danger" style="text-decoration:none"><i class="fas fa-home mr-2"></i>'.type('Back to Home Page').'</a></div></div>'
        ];
        http_response_code(404);
        echo view('header', $this->data).view('page', $this->data).view('footer', $this->data);
        die;
    }
    public function send_message() {
        if(!in_array('', [
            $this->request->getPost('name'),
            $this->request->getPost('email'),
            $this->request->getPost('phone'),
            $this->request->getPost('message')
        ])) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
                'secret' => getConfig('recaptchaSecretKey'),
                'response' => $this->request->getPost('g-recaptcha-response')
            ]));
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $response = json_decode(curl_exec($ch));
            if($response->success) {
                $content = view('include/email', [
                    'content' => sprintf(
                        '<div style="text-align:left"><b>%s:</b> %s<br/><b>%s:</b> %s<br/><b>%s:</b> %s<br/><b>%s:</b><br/>%s</div>',
                        type('Name Surname'),htmlspecialchars($this->request->getPost('name')),
                        type('Email Address'), htmlspecialchars($this->request->getPost('email')),
                        type('Phone Number'), htmlspecialchars($this->request->getPost('phone')),
                        type('Message'), htmlspecialchars($this->request->getPost('message'))
                    )
                ]);
                sendEmail(type('New Contact Form Message!'), $content, getConfig('notificationEmail'));
                $this->lang_process($this->request->getGet('lang'));
                return $this->response->setJSON(['success' => true, 'message' => type('Your message has sent successfully!')]);
            }
            else {
                $this->lang_process($this->request->getGet('lang'));
                return $this->response->setJSON(['success' => false, 'message' => type('Robot verification failed!')]);
            }
        }
        else {
            return $this->response->setJSON(['success' => false]);
        }
    }
}