Changeset 26373


Ignore:
Timestamp:
06/16/10 12:38:26 (7 years ago)
Author:
jval
Message:

Fix r26367/26371: Pass correct content to sync() when it's needed and have only current language related code in sync() so moved lang0 deletion code to syncs(), refs #1626

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ragnaroek/midcom/midcom.core/midcom/services/multilang.php

    r26372 r26373  
    428428                }
    429429            }
    430 
    431             if (   $lang0 !== true
    432                 && !$GLOBALS['midcom_config']['multilang_lang0_langs']
    433                 && !isset($langs['']))
    434             {
    435                 if (   $lang_exists
    436                     && $lang0_exists
    437                     && $object_in_lang0 = self::get_object_in_lang($object, '', true)
    438                     && self::are_objects_equal($object, $object_in_lang0))
    439                 {
    440                     self::is_real(false);
    441                     self::set_default_lang_to_lang();
    442 
    443                     midgard_connection::set_lang('');
    444                     $object_in_lang0->delete();
    445                     midgard_connection::set_lang($real_lang);
    446 
    447                     self::set_default_lang_back();
    448                     self::is_real(true);
    449 
    450                     $lang0_exists = false;
    451                 }
    452             }
    453430        }
    454431
     
    537514                    }
    538515
     516                    $object_in_lang = $object;
     517
    539518                    $langs = array($language->code);
    540519
     
    546525                    else if ($GLOBALS['midcom_config']['multilang_lang0_langs'] == array(''))
    547526                    {
    548                         array_unshift($langs, '');
     527                        if ($object_in_lang = self::get_object_in_lang($object, $language->code, true))
     528                        {
     529                            array_unshift($langs, '');
     530                        }
     531                        else
     532                        {
     533                            $object_in_lang = $object;
     534                        }
    549535                    }
    550536
    551537                    midgard_connection::set_lang($language->code);
    552                     self::sync($object, self::langs($langs), $domain, $is_update, 'disabled');
     538                    self::sync($object_in_lang, self::langs($langs), $domain, $is_update, 'disabled');
    553539                    midgard_connection::set_lang($real_lang);
     540
     541                    if (   !$GLOBALS['midcom_config']['multilang_lang0_langs']
     542                        && $language->code == ''
     543                        && $object_in_lang0 = self::get_object_in_lang($object, '', true))
     544                    {
     545                        foreach ($object_langs as $lang)
     546                        {
     547                            if (   $object_in_lang = self::get_object_in_lang($object, $lang, true)
     548                                && self::are_objects_equal($object_in_lang, $object_in_lang0))
     549                            {
     550                                $delete = true;
     551                                break;
     552                            }
     553                        }
     554                    }
    554555
    555556                    if ($delete)
Note: See TracChangeset for help on using the changeset viewer.