protected function _prepareForWrite(array $item)
{
$filter = function ($value) use(&$filter) {
if (is_array($value)) {
return array_map($filter, $value);
}
$value = strtr($value, array("\\'" => "'", "\\\\" => "\\", "\r\n" => "\n"));
$value = addcslashes($value, "..\\\"");
return $value;
};
$fields = array('id', 'ids', 'translated', 'context');
foreach ($fields as $field) {
if (isset($item[$field])) {
$item[$field] = $filter($item[$field]);
}
}
if (!isset($item['ids']['singular'])) {
$item['ids']['singular'] = $item['id'];
}
$path = Libraries::get(true, 'path');
if (isset($item['occurrences'])) {
foreach ($item['occurrences'] as &$occurrence) {
$occurrence['file'] = str_replace($path, '', $occurrence['file']);
}
}
return parent::_prepareForWrite($item);
}