| 21 | | return midgard_replicator::serialize($object); |
|---|
| | 24 | //return midgard_replicator::serialize($object); |
|---|
| | 25 | /** |
|---|
| | 26 | * Workaround for bug #259 |
|---|
| | 27 | */ |
|---|
| | 28 | if ( !isset($object->lang) |
|---|
| | 29 | || $object->lang === 0) |
|---|
| | 30 | { |
|---|
| | 31 | // Non-ML or not in langx does not trigger the bug |
|---|
| | 32 | return midgard_replicator::serialize($object); |
|---|
| | 33 | } |
|---|
| | 34 | $current_language = (int)$_MIDGARD['lang']; |
|---|
| | 35 | $current_default_language = mgd_get_default_lang(); |
|---|
| | 36 | mgd_set_lang(0); |
|---|
| | 37 | mgd_set_default_lang(0); |
|---|
| | 38 | $object_class = get_class($object); |
|---|
| | 39 | $object_lang0 = new $object_class($object->guid); |
|---|
| | 40 | if ( !$object_lang0 |
|---|
| | 41 | || !isset($object_lang0->guid) |
|---|
| | 42 | || empty($object_lang0->guid)) |
|---|
| | 43 | { |
|---|
| | 44 | // Sanity check failed |
|---|
| | 45 | $errno = mgd_errno(); |
|---|
| | 46 | mgd_set_default_lang($current_default_language); |
|---|
| | 47 | mgd_set_lang($current_language); |
|---|
| | 48 | mgd_set_errno($errno); |
|---|
| | 49 | unset($object_class, $object_lang0, $current_language, $current_default_language, $errno); |
|---|
| | 50 | return false; |
|---|
| | 51 | } |
|---|
| | 52 | else |
|---|
| | 53 | { |
|---|
| | 54 | $stat = midgard_replicator::serialize($object_lang0); |
|---|
| | 55 | } |
|---|
| | 56 | $errno = mgd_errno(); |
|---|
| | 57 | mgd_set_default_lang($current_default_language); |
|---|
| | 58 | mgd_set_lang($current_language); |
|---|
| | 59 | mgd_set_errno($errno); |
|---|
| | 60 | unset($object_class, $object_lang0, $current_language, $current_default_language, $errno); |
|---|
| | 61 | return $stat; |
|---|