modx-pro / localizator

MODX Revolution component for multilanguage sites with auto translate
1 stars 2 forks source link

Не правильный ключ языка при редактировании #6

Open webinmd opened 3 months ago

webinmd commented 3 months ago

Сообщение об ошибке / Error message

Резюме / Summary

Если редактировать заголовок из грида (процессор updatefromgrid), а поля ключ и Название локализатора отличаются, то в базу записывается название, а не ключ

Шаг для воспроизведения / Step to play

Создать 2 языка

Создать ресурс, создать ему переводы Попробовать отредактировать заголовок

Наблюдаемое поведение / Observed behavior

В базу запишется key = English

Ожидаемое поведение / Expected behavior

В базу должен записаться key = en

Проблема в процессоре updatefromgrid в строке получения key https://github.com/modx-pro/localizator/blob/master/core/components/localizator/processors/mgr/content/updatefromgrid.class.php#L38

Environment

MODX 2.8.7, localizator 1.0.9

webinmd commented 3 months ago

Строка _key формируется следующим образом: name [key] (host) Нам необходимо получить key, на данный момент получаем name

Было

if ($key == '_key') {
    $key_value = explode(" ", $value);
    $this->setProperty('key', $key_value[0]);
}

Возможное решение

if ($key == '_key') {
    preg_match('|\[(.+?)\]|is', $value, $key_value);
    $this->setProperty('key', $key_value[1]);
}