public static function import($params)
 {
     $appUrl = Settings::getProtected('app_url');
     $themeRoot = Settings::getProtected('theme_root');
     $format = Utils::getFormat($params['args'], 1, 3);
     $projectType = Utils::getProjectType($params['args']);
     $projectSlug = $projectType == 'system' ? $params['args'][0] : $params['args'][2];
     $user = User::getAuthenticatedUser();
     // Load the project
     $project = new Project($projectSlug);
     RoleController::forceClearance(array('project.admin', 'project.owner', 'system.admin'), $user, array('project' => $project));
     if ($project->title == '') {
         Utils::redirectToDashboard('', 'Error loading project.');
     }
     if ($project->type == 'system') {
         $projectUrl = "projects/" . $project->slug;
     } else {
         if ($project->type == 'user') {
             $projectUrl = "users/" . $project->owner . "/projects/" . $project->slug;
         }
     }
     $project->getItems();
     $projectArray = $project->getResponse();
     $projectArray['items'] = $project->items;
     $projectArray['url'] = "{$appUrl}/{$projectUrl}";
     switch ($params['method']) {
         // GET: Get transcript import page
         case 'GET':
             $response = array('page_title' => 'Import Transcript', 'user' => $user->getResponse(), 'project' => $projectArray);
             switch ($format) {
                 case 'json':
                     echo json_encode(array('status' => 'success', 'response' => $response));
                     break;
                 case 'html':
                     Template::render('import', $response);
                     break;
             }
             break;
             // POST: Update transcripts for items
         // POST: Update transcripts for items
         case 'POST':
             $template = Utils::POST('template');
             $transcript = Utils::POST('transcript');
             $items = Utils::POST('items');
             $projectSlug = Utils::POST('projectSlug');
             $status = 'success';
             // Split the transcript
             $splitTranscripts = TranscriptController::splitTranscript($transcript, $template);
             // Make sure the number of items still matches, otherwise return error
             if (count($splitTranscripts) != count($items)) {
                 $status = 'error';
             }
             // Update each item's transcript
             for ($i = 0; $i < count($items); $i++) {
                 $item = new Item($items[$i], $projectSlug);
                 $item->transcript = $splitTranscripts[$i];
                 if (!$item->save()) {
                     $status = 'error';
                     break;
                 }
             }
             echo json_encode(array('status' => $status));
             break;
     }
 }