Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не сохраняются введеные значения в случае ошибки #29

Open
111ypuk opened this issue Jun 2, 2016 · 2 comments
Assignees

Comments

@111ypuk
Copy link

111ypuk commented Jun 2, 2016

в AdminEditHelper.php в

else {
                    unset($this->data);
                    $this->data = $_REQUEST['FIELDS']; //Заполняем, чтобы в случае ошибки сохранения поля не были пустыми
                }

нало поправить т.к. например при сохранение с виджетом HL ИБ, веденные значения не хранятся в FIELDS. Или вообще убрать

@111ypuk
Copy link
Author

111ypuk commented Sep 6, 2016

Не прав был, проблема в другом, у input элементов HLIBlockFieldWidget атрибут namе равен коду пользовательского поля (name="UF_XYZ"),а не FIELDS['UF_XYZ'], как требуется для предыдущего коментария. Для правильной работы надо в HLIBlockFieldWidget::getEditHtml() перед
print $USER_FIELD_MANAGER->GetEditFormHTML($bVarsFromForm, $GLOBALS[$this->getCode()], $info);
добавить (для файла надо оставить как есть, а то при редактирование жалуется)

if ( $info['USER_TYPE_ID']!='file') {
            $info['FIELD_NAME']='FIELDS['.$info['FIELD_NAME'].']';
}
//для  CUserTypeBoolean, а то тоже не созраняются
if ($info['ENTITY_VALUE_ID'] < 1) $info['ENTITY_VALUE_ID'] = 1;

@nook-ru
Copy link
Contributor

nook-ru commented Dec 18, 2017

  • Не сохраняются когда есть значение первичного ключа,
    т.е. мы редактируем запись, а не создаём новую: lib/helper/AdminEditHelper.php:142
  • Не сохраняются для множественных полей,
    виджеты с MULTIPLE => 'Y' передают значения в $_REQUEST[$code], тогда как AdminEditHelper собирает их только из $_REQUEST[FIELDS]

С множественными как-то странно, кажется, они всегда берут данные из БД, но не с формы: StringWidget.php:99.

Кроме того, есть виджеты, использующие $_REQUEST напрямую вместо $this->data (те, которым нужно несколько ключей в запросе и/или изменить их имена не позволяет используемое API битрикса (HLIBlockFieldWidget, VisualEditorWidget). Порядку это не способствует, конечно.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants