replaceDefaultThings( $website ); $website = $this->setScore( $website ); return $website; } catch( Exception $e ) { throw new RuntimeException( 'Cannot load the score file', 201 ); } } public function buildWebsite(): string { try { $website = file_get_contents( __DIR__ . '/website.html' ); $website = $this->replaceDefaultThings( $website ); $website = $this->setQuestions( $website ); return $website; } catch( Exception $e ) { if( ( $code = $e->getCode() ) === 202 || $code === 203 ) { throw new RuntimeException( $e->getMessage(), $code ); } throw new RuntimeException( 'Cannot load the website.html file', 201 ); } } private function replaceDefaultThings( $website ) { if( !isset( language::$lang_file[language::TITLE], language::$lang_file[language::MAIN_TITLE], language::$lang_file[language::DESCRIPTION], language::$lang_file[language::SCORE_FINISHED], language::$lang_file[language::PROJECT_DESCRIPTION], language::$lang_file[language::HELP_US], language::$lang_file[language::REQUEST_MORE], language::$lang_file[language::LANGUAGE_CHOOSE], language::$lang_file[language::JOIN_DISCORD] ) ) { throw new RuntimeException( 'Cannot load default langauge replacements', 202 ); } $website = str_replace( array( '[LANG]', '[TITLE]', '[MAIN_TITLE]', '[DESCRIPTION]', '[SCORE_FINISHED]', '[PROJECT_DESCRIPTION]', '[HELP_US]', '[REQUEST_MORE]','[LANGUAGE_CHOOSE]', '[JOIN_DISCORD]' ), array( substr( language::$lang, 0, 2 ), language::$lang_file[language::TITLE], language::$lang_file[language::MAIN_TITLE], language::$lang_file[language::DESCRIPTION], language::$lang_file[language::SCORE_FINISHED], language::$lang_file[language::PROJECT_DESCRIPTION], language::$lang_file[language::HELP_US], language::$lang_file[language::REQUEST_MORE], language::$lang_file[language::LANGUAGE_CHOOSE], language::$lang_file[language::JOIN_DISCORD] ), $website ); $languages = ''; foreach( language::$languages as $code => $language ) { $languages .= <<$language HTML; } $website = str_replace( '[LANGUAGES]', $languages, $website ); return $website; } private function setQuestions( $website ) : string { $website = str_replace( '[EXPLANATION]', language::$lang_file[language::EXPLANATION_QUESTIONS], $website ); if( !isset( language::$lang_file['questions'] ) ) { throw new RuntimeException( 'Error while reading the questions in langauge file', 203 ); } $questions = '
[SCORE_DESCRIPTION]