/**
  * Редактирование поля контента
  *
  * @param ModuleTopic_EntityContentType $oContentType
  * @param ModuleTopic_EntityField $oField
  * @return bool
  */
 protected function SubmitEditField($oContentType, $oField)
 {
     // * Проверяем отправлена ли форма с данными
     if (!F::isPost('submit_field')) {
         return false;
     }
     // * Проверка корректности полей формы
     if (!$this->CheckFieldsField($oContentType)) {
         return false;
     }
     if (!E::ModuleTopic()->GetFieldValuesCount($oField->getFieldId())) {
         // Нет ещё ни одного значения этого поля, тогда можно сменить ещё и тип
         $oField->setFieldType(F::GetRequest('field_type'));
     }
     $oField->setFieldName(F::GetRequest('field_name'));
     $oField->setFieldDescription(F::GetRequest('field_description'));
     $oField->setFieldRequired(F::GetRequest('field_required'));
     if ($oField->getFieldType() == 'select') {
         $oField->setOptionValue('select', F::GetRequest('field_values'));
     }
     $sOldFieldUniqueName = $oField->getFieldUniqueName();
     if (F::GetRequest('field_unique_name_translit')) {
         $oField->setFieldUniqueName(F::TranslitUrl(F::GetRequest('field_name')));
     } else {
         $oField->setFieldUniqueName(F::TranslitUrl(F::GetRequest('field_unique_name')));
     }
     try {
         if (E::ModuleTopic()->UpdateContentField($oField)) {
             E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('action.admin.contenttypes_success_fieldedit'), null, true);
             R::Location('admin/settings-contenttypes/edit/' . $oContentType->getContentId() . '/');
         }
     } catch (Exception $e) {
         // Если ошибка дублирования уникального ключа, то выводим соответствующее сообщение
         if (1062 == $e->getCode()) {
             $sNewFieldUniqueName = $oField->getFieldUniqueName();
             $oField->setFieldUniqueName($sOldFieldUniqueName);
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('plugin.contentfieldsx.error_field_unique_name_duplicate', array('unique_name' => htmlspecialchars($sNewFieldUniqueName))), null, false);
         }
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  * Редактирование поля контента
  *
  * @param ModuleTopic_EntityContentType $oContentType
  * @param ModuleTopic_EntityField $oField
  * @return bool
  */
 protected function SubmitEditField($oContentType, $oField)
 {
     // * Проверяем отправлена ли форма с данными
     if (!F::isPost('submit_field')) {
         return false;
     }
     // * Проверка корректности полей формы
     if (!$this->CheckFieldsField($oContentType)) {
         return false;
     }
     if (!E::ModuleTopic()->GetFieldValuesCount($oField->getFieldId())) {
         // Нет ещё ни одного значения этого поля, тогда можно сменить ещё и тип
         $oField->setFieldType(F::GetRequest('field_type'));
     }
     $oField->setFieldName(F::GetRequest('field_name'));
     $oField->setFieldDescription(F::GetRequest('field_description'));
     $oField->setFieldRequired(F::GetRequest('field_required'));
     if ($oField->getFieldType() == 'select') {
         $oField->setOptionValue('select', F::GetRequest('field_values'));
     }
     if (E::ModuleTopic()->UpdateContentField($oField)) {
         E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('action.admin.contenttypes_success_fieldedit'), null, true);
         R::Location('admin/settings-contenttypes/edit/' . $oContentType->getContentId() . '/');
     }
     return false;
 }
Ejemplo n.º 3
0
 /**
  * Обновляет поле
  *
  * @param ModuleTopic_EntityField $oField    Объект поля
  *
  * @return bool
  */
 public function UpdateContentField(ModuleTopic_EntityField $oField)
 {
     $sql = "UPDATE ?_content_field\n\t\t\tSET\n\t\t\t\tcontent_id=?d,\n\t\t\t\tfield_name=?,\n\t\t\t\tfield_sort=?d,\n\t\t\t\tfield_type=?,\n\t\t\t\tfield_description=?,\n\t\t\t\tfield_options=?,\n\t\t\t\tfield_required=?d,\n\t\t\t\tfield_postfix=?\n\t\t\tWHERE\n\t\t\t\tfield_id = ?d\n\t\t";
     $bResult = $this->oDb->query($sql, $oField->getContentId(), $oField->getFieldName(), $oField->getFieldSort(), $oField->getFieldType(), $oField->getFieldDescription(), $oField->getFieldOptions(), $oField->getFieldRequired() ? 1 : 0, $oField->getFieldPostfix(), $oField->getFieldId());
     return $bResult !== false;
 }