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(); } } }