public function translateInstance()
    {

        $instance = $this->getCurrentInstance();

        $formContainer = new tao_actions_form_Translate($this->getCurrentClass(), $instance);
        $myForm = $formContainer->getForm();

        if ($this->hasRequestParameter('target_lang')) {

            $targetLang = $this->getRequestParameter('target_lang');

            if(in_array($targetLang, tao_helpers_I18n::getAvailableLangsByUsage($this->getResource(tao_models_classes_LanguageService::INSTANCE_LANGUAGE_USAGE_DATA)))){
                $langElt = $myForm->getElement('translate_lang');
                $langElt->setValue($targetLang);
                $langElt->setAttribute('readonly', 'true');

                $trData = $this->getClassService()->getTranslatedProperties($instance, $targetLang);
                foreach($trData as $key => $value){
                    $element = $myForm->getElement(tao_helpers_Uri::encode($key));
                    if(!is_null($element)){
                        $element->setValue($value);
                    }
                }
            }
        }

        if($myForm->isSubmited()){
            if($myForm->isValid()){

                $values = $myForm->getValues();
                if(isset($values['translate_lang'])){
                    $datalang = $this->getSession()->getDataLanguage();
                    $lang = $values['translate_lang'];

                    $translated = 0;
                    foreach($values as $key => $value){
                        if(preg_match("/^http/", $key)){
                            $value = trim($value);
                            $property = $this->getProperty($key);
                            if(empty($value)){
                                if($datalang != $lang && $lang != ''){
                                    $instance->removePropertyValueByLg($property, $lang);
                                }
                            }
                            else if($instance->editPropertyValueByLg($property, $value, $lang)){
                                $translated++;
                            }
                        }
                    }
                    if($translated > 0){
                        $this->setData('message', __('Translation saved'));
                    }
                }
            }
        }

        $this->setData('myForm', $myForm->render());
        $this->setData('formTitle', __('Translate'));
        $this->setView('form.tpl', 'tao');
    }
public function translateInstance()
    {

        $instance = $this->getCurrentInstance();

        $formContainer = new tao_actions_form_Translate($this->getCurrentClass(), $instance);
        $myForm = $formContainer->getForm();

        if ($this->hasRequestParameter('target_lang')) {

            $targetLang = $this->getRequestParameter('target_lang');

            if(in_array($targetLang, tao_helpers_I18n::getAvailableLangsByUsage($this->getResource(tao_models_classes_LanguageService::INSTANCE_LANGUAGE_USAGE_DATA)))){
                $langElt = $myForm->getElement('translate_lang');
                $langElt->setValue($targetLang);
                $langElt->setAttribute('readonly', 'true');

                $trData = $this->getClassService()->getTranslatedProperties($instance, $targetLang);
                foreach($trData as $key => $value){
                    $element = $myForm->getElement(tao_helpers_Uri::encode($key));
                    if(!is_null($element)){
                        $element->setValue($value);
                    }
                }
            }
        }

        if($myForm->isSubmited()){
            if($myForm->isValid()){

                $values = $myForm->getValues();
                if(isset($values['translate_lang'])){
                    $datalang = $this->getSession()->getDataLanguage();
                    $lang = $values['translate_lang'];

                    $translated = 0;
                    foreach($values as $key => $value){
                        if(preg_match("/^http/", $key)){
                            $value = trim($value);
                            $property = $this->getProperty($key);
                            if(empty($value)){
                                if($datalang != $lang && $lang != ''){
                                    $instance->removePropertyValueByLg($property, $lang);
                                }
                            }
                            else if($instance->editPropertyValueByLg($property, $value, $lang)){
                                $translated++;
                            }
                        }
                    }
                    if($translated > 0){
                        $this->setData('message', __('Translation saved'));
                    }
                }
            }
        }

        $this->setData('myForm', $myForm->render());
        $this->setData('formTitle', __('Translate'));
        $this->setView('form.tpl', 'tao');
    }
public function translateInstance ( ) { $ instance = $ this -> getCurrentInstance ( ) ; $ formContainer = new tao_actions_form_Translate ( $ this -> getCurrentClass ( ) , $ instance ) ; $ myForm = $ formContainer -> getForm ( ) ; if ( $ this -> hasRequestParameter ( 'target_lang' ) ) { $ targetLang = $ this -> getRequestParameter ( 'target_lang' ) ; if ( in_array ( $ targetLang , tao_helpers_I18n :: getAvailableLangsByUsage ( $ this -> getResource ( tao_models_classes_LanguageService :: INSTANCE_LANGUAGE_USAGE_DATA ) ) ) ) { $ langElt = $ myForm -> getElement ( 'translate_lang' ) ; $ langElt -> setValue ( $ targetLang ) ; $ langElt -> setAttribute ( 'readonly' , 'true' ) ; $ trData = $ this -> getClassService ( ) -> getTranslatedProperties ( $ instance , $ targetLang ) ; foreach ( $ trData as $ key => $ value ) { $ element = $ myForm -> getElement ( tao_helpers_Uri :: encode ( $ key ) ) ; if ( ! is_null ( $ element ) ) { $ element -> setValue ( $ value ) ; } } } } if ( $ myForm -> isSubmited ( ) ) { if ( $ myForm -> isValid ( ) ) { $ values = $ myForm -> getValues ( ) ; if ( isset ( $ values [ 'translate_lang' ] ) ) { $ datalang = $ this -> getSession ( ) -> getDataLanguage ( ) ; $ lang = $ values [ 'translate_lang' ] ; $ translated = 0 ; foreach ( $ values as $ key => $ value ) { if ( preg_match ( "/^http/" , $ key ) ) { $ value = trim ( $ value ) ; $ property = $ this -> getProperty ( $ key ) ; if ( empty ( $ value ) ) { if ( $ datalang != $ lang && $ lang != '' ) { $ instance -> removePropertyValueByLg ( $ property , $ lang ) ; } } else if ( $ instance -> editPropertyValueByLg ( $ property , $ value , $ lang ) ) { $ translated ++ ; } } } if ( $ translated > 0 ) { $ this -> setData ( 'message' , __ ( 'Translation saved' ) ) ; } } } } $ this -> setData ( 'myForm' , $ myForm -> render ( ) ) ; $ this -> setData ( 'formTitle' , __ ( 'Translate' ) ) ; $ this -> setView ( 'form.tpl' , 'tao' ) ; }
Render the  form to translate a Resource instance
@return void
@requiresRight id WRITE
Render the form to translate a Resource instance