Esempio n. 1
0
 protected function prepare()
 {
     if ($this->getState() == 'deleteComment') {
     } else {
         if ($this->bindComponent && $this->bindComponent->getState() == $this->getParam('bind_state') && $this->getState() == 'main' && $this->getParam('show_form') && $this->getParam('show_comments') && $this->isExistsNeedTables()) {
             parent::prepare();
             if (($this->document->getUser()->isAuthenticated() or !$this->getParam('use_captcha')) && ($captcha = $this->getDataDescription()->getFieldDescriptionByName('captcha'))) {
                 $this->getDataDescription()->removeFieldDescription($captcha);
             }
             //ID комментируемого элемента
             $ap = $this->bindComponent->getStateParams(true);
             //Тут костыль
             if (is_array($ap)) {
                 $apk = array_keys($ap);
                 $param_idx = $this->getParam('bind_pk_param_idx');
                 $apName = isset($apk[$param_idx]) ? $apk[$param_idx] : $apk[sizeof($apk) - 1];
                 $targetId = $ap[$apName];
             } else {
                 $targetId = $this->document->getID();
             }
             if ($this->isTargetEditable()) {
                 $this->getDataDescription()->getFieldDescriptionByName('target_id')->setType(FieldDescription::FIELD_TYPE_HIDDEN);
                 $f = new Field('target_id');
                 $f->setData($targetId);
                 $this->getData()->addField($f);
                 // добавляем переводы для формы
                 $this->addTranslation('COMMENT_DO');
                 // коментировать
                 $this->addTranslation('COMMENT_DO_NEWS');
                 // коментировать новость
                 $this->addTranslation('COMMENT_REMAIN');
                 // осталось
                 $this->addTranslation('COMMENT_SYMBOL1');
                 // символ
                 $this->addTranslation('COMMENT_SYMBOL2');
                 // символа
                 $this->addTranslation('COMMENT_SYMBOL3');
                 // символов
                 $this->addTranslation('COMMENT_REALY_REMOVE');
                 // Действительно удалить комментарий?
             } else {
                 // форма нужна только для вывода списка комментариев
                 $this->setProperty('hide_form', 1);
             }
             $this->addTranslation('COMMENTS');
             // коментирии
         } else {
             $this->disable();
         }
         if ($this->getParam('show_comments') && $this->isExistsNeedTables() && is_object($this->bindComponent) && $this->bindComponent->getState() == $this->getParam('bind_state') && $this->bindComponent->getData() && !$this->bindComponent->getData()->isEmpty()) {
             $this->showComments();
         }
     }
 }