public function isLockQuiz()
 {
     $quizId = (int) $this->_post['quizId'];
     $userId = get_current_user_id();
     $data = array();
     $lockMapper = new WpProQuiz_Model_LockMapper();
     $quizMapper = new WpProQuiz_Model_QuizMapper();
     $prerequisiteMapper = new WpProQuiz_Model_PrerequisiteMapper();
     $quiz = $quizMapper->fetch($this->_post['quizId']);
     if ($quiz === null || $quiz->getId() <= 0) {
         return null;
     }
     if ($this->isPreLockQuiz($quiz)) {
         $lockIp = $lockMapper->isLock($this->_post['quizId'], $this->getIp(), $userId, WpProQuiz_Model_Lock::TYPE_QUIZ);
         $lockCookie = false;
         $cookieTime = $quiz->getQuizRunOnceTime();
         if (isset($this->_cookie['wpProQuiz_lock']) && $userId == 0 && $quiz->isQuizRunOnceCookie()) {
             $cookieJson = json_decode($this->_cookie['wpProQuiz_lock'], true);
             if ($cookieJson !== false) {
                 if (isset($cookieJson[$this->_post['quizId']]) && $cookieJson[$this->_post['quizId']] == $cookieTime) {
                     $lockCookie = true;
                 }
             }
         }
         $data['lock'] = array('is' => $lockIp || $lockCookie, 'pre' => true);
     }
     if ($quiz->isPrerequisite()) {
         $quizIds = array();
         if ($userId > 0) {
             $quizIds = $prerequisiteMapper->getNoPrerequisite($quizId, $userId);
         } else {
             $checkIds = $prerequisiteMapper->fetchQuizIds($quizId);
             if (isset($this->_cookie['wpProQuiz_result'])) {
                 $r = json_decode($this->_cookie['wpProQuiz_result'], true);
                 if ($r !== null && is_array($r)) {
                     foreach ($checkIds as $id) {
                         if (!isset($r[$id]) || !$r[$id]) {
                             $quizIds[] = $id;
                         }
                     }
                 }
             } else {
                 $quizIds = $checkIds;
             }
         }
         if (!empty($quizIds)) {
             $names = $quizMapper->fetchCol($quizIds, 'name');
             if (!empty($names)) {
                 $data['prerequisite'] = implode(', ', $names);
             }
         }
     }
     if ($quiz->isStartOnlyRegisteredUser()) {
         $data['startUserLock'] = (int) (!is_user_logged_in());
     }
     return $data;
 }