Changeset 26262


Ignore:
Timestamp:
06/01/10 19:25:51 (7 years ago)
Author:
jval
Message:

New methods set_lang_to_object_lang() and set_lang_back() which are useful with the lang0 workflow, refs #1626

File:
1 edited

Legend:

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

    r26260 r26262  
    390390    }
    391391
     392    function set_lang_to_object_lang($object)
     393    {
     394        if (!self::is_real()) return;
     395
     396        if (is_a($object, 'midcom_core_dbaobject'))
     397        {
     398            $object = $object->__object;
     399        }
     400
     401        if (!midgard_object_class::is_multilang(get_class($object)))
     402        {
     403            return;
     404        }
     405
     406        $lang = '';
     407        if (!empty($object->lang))
     408        {
     409            try
     410            {
     411                $language = new midgard_language($object->lang);
     412                $lang = $language->code;
     413            }
     414            catch (Exception $e)
     415            {
     416                // Nothing to do. If DB is missing the language, use lang0 then.
     417            }
     418        }
     419
     420        self::set_lang_back(self::get_lang());
     421        return midgard_connection::set_lang($lang);
     422    }
     423
    392424    function set_default_lang_to_lang()
    393425    {
     
    396428        self::set_default_lang_back(self::get_default_lang());
    397429        return midgard_connection::set_default_lang(self::get_lang());
     430    }
     431
     432    function set_lang_back($new_lang = null)
     433    {
     434        if (!self::is_real()) return;
     435
     436        static $lang;
     437
     438        if (is_string($new_lang))
     439        {
     440            $lang = $new_lang;
     441        }
     442        else if (isset($lang))
     443        {
     444            return midgard_connection::set_lang($lang);
     445        }
    398446    }
    399447
Note: See TracChangeset for help on using the changeset viewer.