public function getTemplate($filename)
 {
     $templateDir = $this->config['template_path'];
     //Before setup there is no theme...
     if ($this->settingRepository) {
         $currentTheme = $this->settingRepository->getTheme();
         $filePath = '.' . DIRECTORY_SEPARATOR . $templateDir . DIRECTORY_SEPARATOR . $currentTheme . DIRECTORY_SEPARATOR . $filename;
         if (is_file($filePath) && is_readable($filePath)) {
             return $currentTheme . DIRECTORY_SEPARATOR . $filename;
         }
     }
     $defaultTheme = $this->config['default_theme'];
     $defaultFilePath = '.' . DIRECTORY_SEPARATOR . $templateDir . DIRECTORY_SEPARATOR . $defaultTheme . DIRECTORY_SEPARATOR . $filename;
     if (is_file($defaultFilePath) && is_readable($defaultFilePath)) {
         return $defaultTheme . DIRECTORY_SEPARATOR . $filename;
     }
     throw new PaytoshiException('Unable to load a theme.');
 }
 private function getTemplateData()
 {
     return array('name' => $this->settingRepository->getName(), 'description' => $this->settingRepository->getDescription(), 'referral' => $this->app->request->get('r'), 'referral_percentage' => $this->settingRepository->getReferralPercentage(), 'rewards' => $this->rewardService->getNormalized(), 'rewards_average' => $this->rewardService->getAverage(), 'rewards_max' => $this->rewardService->getMax(), 'waiting_interval' => $this->settingRepository->getWaitingInterval(), 'address' => isset($_SESSION['address']) ? $_SESSION['address'] : null, 'base_path' => $this->getBasePath(), 'base_url' => $this->app->request->getUrl() . $this->app->request->getPath(), 'captcha' => array('name' => $this->captchaService->getName(), 'server' => $this->captchaService->getServer(), 'public_key' => $this->captchaService->getPublicKey()), 'content' => array('header_box' => $this->settingRepository->getHeaderBox(), 'left_box' => $this->settingRepository->getLeftBox(), 'right_box' => $this->settingRepository->getRightBox(), 'center1_box' => $this->settingRepository->getCenter1Box(), 'center2_box' => $this->settingRepository->getCenter2Box(), 'center3_box' => $this->settingRepository->getCenter3Box(), 'footer_box' => $this->settingRepository->getFooterBox()), 'theme' => array('name' => $this->settingRepository->getTheme(), 'css' => $this->settingRepository->getCss()));
 }
 private function getView()
 {
     return array('version' => $this->settingRepository->getVersion(), 'api_key' => $this->settingRepository->getApiKey(), 'name' => $this->settingRepository->getName(), 'description' => $this->settingRepository->getDescription(), 'current_theme' => $this->settingRepository->getTheme(), 'captcha_provider' => $this->settingRepository->getCaptchaProvider(), 'solve_media' => array('challenge_key' => $this->settingRepository->getSolveMediaChallengeKey(), 'verification_key' => $this->settingRepository->getSolveMediaVerificationKey(), 'authentication_key' => $this->settingRepository->getSolveMediaAuthenticationKey()), 'recaptcha' => array('public_key' => $this->settingRepository->getRecaptchaPublicKey(), 'private_key' => $this->settingRepository->getRecaptchaPrivateKey()), 'funcaptcha' => array('public_key' => $this->settingRepository->getFuncaptchaPublicKey(), 'private_key' => $this->settingRepository->getFuncaptchaPrivateKey()), 'waiting_interval' => $this->settingRepository->getWaitingInterval(), 'rewards' => $this->settingRepository->getRewards(), 'referral_percentage' => $this->settingRepository->getReferralPercentage(), 'css' => $this->settingRepository->getCss(), 'header_box' => $this->settingRepository->getHeaderBox(), 'left_box' => $this->settingRepository->getLeftBox(), 'right_box' => $this->settingRepository->getRightBox(), 'center1_box' => $this->settingRepository->getCenter1Box(), 'center2_box' => $this->settingRepository->getCenter2Box(), 'center3_box' => $this->settingRepository->getCenter3Box(), 'footer_box' => $this->settingRepository->getFooterBox());
 }