Update locations for string.
Drupal\locale\StringInterface $string: The string object.
protected function updateLocation($string) {
if ($locations = $string
->getLocations(TRUE)) {
$created = FALSE;
foreach ($locations as $type => $location) {
foreach ($location as $name => $lid) {
if (!$lid) {
$this
->dbDelete('locales_location', array(
'sid' => $string
->getId(),
'type' => $type,
'name' => $name,
))
->execute();
}
elseif ($lid === TRUE) {
// This is a new location to add, take care not to duplicate.
$this->connection
->merge('locales_location', $this->options)
->key(array(
'sid' => $string
->getId(),
'type' => $type,
'name' => $name,
))
->fields(array(
'version' => VERSION,
))
->execute();
$created = TRUE;
}
// Loaded locations have 'lid' integer value, nor FALSE, nor TRUE.
}
}
if ($created) {
// As we've set a new location, check string version too.
$this
->checkVersion($string, VERSION);
}
}
}