|
Пигмалион
Интернет-агентство "Пигмалион"

Зарегистрирован: 2006-02-22
Сообщений: 26
|
При сохранении поля для системных таблиц новое поле добавляется нормально, но ниже выводится сообщение о том, что имя зарезервировано.
Ошибка появляется из-за того, что функция FieldCompleted() вызывается дважды, собственно на втором вызове ошибка и показывается, т.к. поле с таким именем уже создано за первый вызов.
Судя по всему, разработчики забыли закомментировать старый вызов функции, который использовался в версии 243.
Было (патч 243, строки 52-60)
Код:
if (FieldCompleted ())
{
FieldList ($SystemTableID);
}
else
{
echo "<b>".CONTROL_FIELD_ONE_RESERVED."</b>";
FieldForm (0, $SystemTableID);
}
Стало (патч 244, строки 52-78)
Код:
if (FieldCompleted ())
{
FieldList ($SystemTableID);
}
else
{
echo "<b>".CONTROL_FIELD_ONE_RESERVED."</b>";
FieldForm (0, $SystemTableID);
}
if (!preg_match("/^[a-zA-Z0-9_]+$/", $FieldName))
{
echo '<b>'.CONTROL_FIELD_NAME_ERROR.'</b>';
FieldForm (0, $SystemTableID);
}
else
{
if (FieldCompleted())
{
FieldList ($SystemTableID);
}
else
{
echo "<b>".CONTROL_FIELD_ONE_RESERVED."</b>";
FieldForm (0, $SystemTableID);
}
}
Для нормальной работы необходимо закомментировать строки с 52 по 60 включительно. Надеюсь, разработчики исправят оплошность в следующем патче.
С уважением, Павел Зотов
ООО "АРБ-Консалтинг"
сайты на Netcat
|