コード例 #1
0
ファイル: ToolsController.php プロジェクト: rloic/ptut
 public static function render($params = [])
 {
     $user = AppController::getUser();
     if (!$user) {
         AppController::setMsg('warning', "La zone demandée n'est pas autorisé pour les personnes non inscrites.");
         AppController::redirect('index');
     }
     $algorithms = \Root\Src\Model\AlgorithmModel::loadFunctionByUser($user->getId());
     $structures = \Root\Src\Model\StructureModel::loadStructureByUser($user->getId());
     $translationOfC = \Root\Src\Model\TranslationModel::loadTranslationByLanguage('c');
     $translationOfJava = \Root\Src\Model\TranslationModel::loadTranslationByLanguage('java');
     $translationOfJavascript = \Root\Src\Model\TranslationModel::loadTranslationByLanguage('javascript');
     $translationOfPhp = \Root\Src\Model\TranslationModel::loadTranslationByLanguage('php');
     $translationOfPython = \Root\Src\Model\TranslationModel::loadTranslationByLanguage('python');
     parent::getHeader();
     self::call('Render', ['algorithms' => $algorithms, 'structures' => $structures, 'translations' => ['c' => $translationOfC, 'java' => $translationOfJava, 'javascript' => $translationOfJavascript, 'php' => $translationOfPhp, 'python' => $translationOfPython]]);
     parent::getFooter();
 }
コード例 #2
0
ファイル: Translator.php プロジェクト: rloic/ptut
 /**
  * Traduit le pseudoCode dans un langage avec une liste de structure privée donnée
  * @param type $pseudoCode
  * @param type $language
  * @param type $structures
  * @return type
  */
 public static function translate($pseudoCode, $language, $structures = [])
 {
     $result = $pseudoCode;
     $translations = \Root\Src\Model\TranslationModel::loadTranslationByLanguage($language);
     $publicStructures = \Root\Src\Model\StructureModel::loadStructureByUser(\Root\Src\Model\AlgorithmModel::PUBLIC_USER);
     foreach ($publicStructures as $publicStructure) {
         if (!in_array($publicStructure, $structures)) {
             array_push($structures, $publicStructure);
         }
     }
     foreach ($structures as $structure) {
         if (isset($translations[$structure->getId()])) {
             $result = preg_replace(self::interpret($structure->getCode()), $translations[$structure->getId()]->getCode(), $result);
         } else {
             $result = preg_replace(self::interpret($structure->getCode()), 'ERR', $result);
         }
     }
     return $result;
 }