Esempio n. 1
0
 public function deleteQuestion(array $questionIdList)
 {
     if ($questionIdList === null || count($questionIdList) == 0) {
         return false;
     }
     $questionArray = $this->questionDao->findByIdList($questionIdList);
     $questionsNameList = array();
     $questionValueIdList = array();
     foreach ($questionArray as $question) {
         if ($question->base == 1 || (int) $question->removable == 0) {
             continue;
         }
         $questionsNameList[] = $question->name;
         $values = $this->valueDao->findQuestionValues($question->id);
         foreach ($values as $value) {
             $questionValueIdList[] = $value->id;
             $key = BOL_LanguageService::getInstance()->findKey(self::QUESTION_LANG_PREFIX, $this->getQuestionLangKeyName(self::LANG_KEY_TYPE_QUESTION_VALUE, $question->name, $value->id));
             if ($key !== null) {
                 BOL_LanguageService::getInstance()->deleteKey($key->id);
             }
         }
         $key = BOL_LanguageService::getInstance()->findKey(self::QUESTION_LANG_PREFIX, $this->getQuestionLangKeyName(self::LANG_KEY_TYPE_QUESTION_LABEL, $question->name));
         if ($key !== null) {
             BOL_LanguageService::getInstance()->deleteKey($key->id);
         }
         $key = BOL_LanguageService::getInstance()->findKey(self::QUESTION_LANG_PREFIX, $this->getQuestionLangKeyName(self::LANG_KEY_TYPE_QUESTION_DESCRIPTION, $question->name));
         if ($key !== null) {
             BOL_LanguageService::getInstance()->deleteKey($key->id);
         }
         $event = new OW_Event(self::EVENT_ON_QUESTION_DELETE, array('questionName' => $question->name, 'dto' => $question));
         OW::getEventManager()->trigger($event);
     }
     $this->valueDao->deleteByIdList($questionValueIdList);
     $this->dataDao->deleteByQuestionNamesList($questionsNameList);
     $this->questionDao->deleteByIdList($questionIdList);
     $this->updateQuestionsEditStamp();
     return (bool) OW::getDbo()->getAffectedRows();
 }