Esempio n. 1
0
 /**
  * Event "onMageBridgeValidate"
  * 
  * @access public
  * @param array $actions
  * @param object $condition
  * @return bool
  */
 public function onMageBridgeValidate($actions = null, $condition = null)
 {
     // Make sure this plugin is enabled
     if ($this->isEnabled() == false) {
         return false;
     }
     // Make sure to check upon the $actions array to see if it contains what we need
     if (empty($actions['falang_language'])) {
         return false;
     }
     // Fetch the current language
     $language = JFactory::getLanguage();
     // Fetch the languages
     $languages = FalangManager::getInstance()->getActiveLanguages();
     $language_code = JFactory::getApplication()->input->getCmd('lang');
     if (!empty($languages)) {
         foreach ($languages as $l) {
             if ($language->getTag() == $l->code || $language->getTag() == $l->lang_code) {
                 if (!empty($l->lang_code) && $l->lang_code == $actions['falang_language']) {
                     return true;
                 } elseif (!empty($l->shortcode) && $l->shortcode == $actions['falang_language']) {
                     return true;
                 } elseif (!empty($l->sef) && $l->sef == $actions['falang_language']) {
                     return true;
                 }
             }
         }
     }
     // Check if the condition applies
     if ($actions['falang_language'] == $language_code) {
         return true;
     }
     // Return false by default
     return false;
 }
Esempio n. 2
0
 function jflanguagesType()
 {
     $this->values = array();
     if (ACYMAILING_J16 && file_exists(JPATH_SITE . DS . 'libraries' . DS . 'joomfish' . DS . 'manager.php') || !ACYMAILING_J16 && file_exists(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_joomfish' . DS . 'classes' . DS . 'JoomfishManager.class.php')) {
         include_once JPATH_SITE . DS . 'components' . DS . 'com_joomfish' . DS . 'helpers' . DS . 'defines.php';
         if (!ACYMAILING_J16) {
             include_once JOOMFISH_ADMINPATH . DS . 'classes' . DS . 'JoomfishManager.class.php';
         } else {
             include_once JPATH_SITE . DS . 'libraries' . DS . 'joomfish' . DS . 'manager.php';
         }
         $jfManager = JoomFishManager::getInstance();
         $langActive = $jfManager->getActiveLanguages();
         $this->values[] = JHTML::_('select.option', '', JText::_('DEFAULT_LANGUAGE'));
         foreach ($langActive as $oneLanguage) {
             $this->values[] = JHTML::_('select.option', $oneLanguage->shortcode . ',' . $oneLanguage->id, $oneLanguage->name);
         }
         $this->found = true;
     }
     if (empty($this->values) && file_exists(JPATH_SITE . DS . 'components' . DS . 'com_falang' . DS . 'helpers' . DS . 'defines.php') && (include_once JPATH_SITE . DS . 'components' . DS . 'com_falang' . DS . 'helpers' . DS . 'defines.php')) {
         JLoader::register('FalangManager', FALANG_ADMINPATH . '/classes/FalangManager.class.php');
         $fManager = FalangManager::getInstance();
         $langActive = $fManager->getActiveLanguages();
         $this->values[] = JHTML::_('select.option', '', JText::_('DEFAULT_LANGUAGE'));
         foreach ($langActive as $oneLanguage) {
             $this->values[] = JHTML::_('select.option', $oneLanguage->lang_code . ',' . $oneLanguage->lang_id, $oneLanguage->title);
         }
         $this->found = true;
     }
 }
Esempio n. 3
0
 /**
  * PHP 4 constructor for the tasker
  *
  * @return joomfishTasker
  */
 function __construct()
 {
     parent::__construct();
     $this->registerDefaultTask('show');
     $this->act = JRequest::getVar('act', '');
     $this->task = JRequest::getVar('task', '');
     $this->cid = JRequest::getVar('cid', array(0));
     if (!is_array($this->cid)) {
         $this->cid = array(0);
     }
     $this->fileCode = JRequest::getVar('fileCode', '');
     $this->_falangManager = FalangManager::getInstance();
     $this->registerTask('show', 'showCElementConfig');
     $this->registerTask('detail', 'showElementConfiguration');
     $this->registerTask('remove', 'removeContentElement');
     $this->registerTask('remove_install', 'removeContentElement');
     $this->registerTask('installer', 'showContentElementsInstaller');
     $this->registerTask('uploadfile', 'installContentElement');
     // Populate data used by controller
     $app = JFactory::getApplication();
     $this->_catid = $app->getUserStateFromRequest('selected_catid', 'catid', '');
     $this->_select_language_id = $app->getUserStateFromRequest('selected_lang', 'select_language_id', '-1');
     $this->_language_id = JRequest::getVar('language_id', $this->_select_language_id);
     $this->_select_language_id = $this->_select_language_id == -1 && $this->_language_id != -1 ? $this->_language_id : $this->_select_language_id;
     // Populate common data used by view
     // get the view
     $this->view = $this->getView("elements");
     // Assign data for view
     $this->view->assignRef('catid', $this->_catid);
     $this->view->assignRef('select_language_id', $this->_select_language_id);
     $this->view->assignRef('task', $this->task);
     $this->view->assignRef('act', $this->act);
 }
Esempio n. 4
0
 function onAfterDispatch()
 {
     if (JFactory::getApplication()->isSite() && $this->isFalangDriverActive()) {
         include_once JPATH_ADMINISTRATOR . '/components/com_falang/version.php';
         $version = new FalangVersion();
         if ($version->_versiontype == 'free') {
             FalangManager::setBuffer();
         }
         return true;
     }
 }
Esempio n. 5
0
 /** Standard constructor
  *
  * @param	languageID		ID of the associated language
  * @param	elementTable	Reference to the ContentElementTable object
  */
 function ContentObject($languageID, &$contentElement, $id = -1)
 {
     $db = JFactory::getDBO();
     if ($id > 0) {
         $this->id = $id;
     }
     $this->language_id = $languageID;
     // active languages are cached in FalangManager - use these if possible
     $jfManager = FalangManager::getInstance();
     if (isset($jfManager) && $jfManager->activeLanguagesCacheByID && array_key_exists($languageID, $jfManager->activeLanguagesCacheByID)) {
         $lang = $jfManager->activeLanguagesCacheByID[$languageID];
     } else {
         $lang = new TableJFLanguage($db);
         $lang->load($languageID);
     }
     $this->language = $lang->title;
     $this->_contentElement = $contentElement;
 }
Esempio n. 6
0
 function __construct()
 {
     parent::__construct();
     $this->registerDefaultTask('showTranslate');
     $this->act = JRequest::getVar('act', '');
     $this->task = JRequest::getVar('task', '');
     $this->cid = JRequest::getVar('cid', array(0));
     if (!is_array($this->cid)) {
         $this->cid = array(0);
     }
     $this->fileCode = JRequest::getVar('fileCode', '');
     $this->_falangManager = FalangManager::getInstance();
     $this->registerTask('overview', 'showTranslate');
     $this->registerTask('cancel', 'showTranslate');
     $this->registerTask('edit', 'editTranslation');
     $this->registerTask('apply', 'saveTranslation');
     $this->registerTask('save', 'saveTranslation');
     $this->registerTask('publish', 'publishTranslation');
     // NB the method will check on task
     $this->registerTask('unpublish', 'publishTranslation');
     $this->registerTask('remove', 'removeTranslation');
     $this->registerTask('preview', 'previewTranslation');
     $this->registerTask('orphans', 'showOrphanOverview');
     $this->registerTask('orphandetail', 'showOrphanDetail');
     $this->registerTask('removeorphan', 'removeOrphan');
     $this->registerTask('editfree', 'editFreeTranslation');
     // Populate data used by controller
     $app = JFactory::getApplication();
     $this->_catid = $app->getUserStateFromRequest('selected_catid', 'catid', '');
     $this->_select_language_id = $app->getUserStateFromRequest('selected_lang', 'select_language_id', '-1');
     $this->_language_id = JRequest::getVar('language_id', $this->_select_language_id);
     $this->_select_language_id = $this->_select_language_id == -1 && $this->_language_id != -1 ? $this->_language_id : $this->_select_language_id;
     // Populate common data used by view
     // get the view
     $this->view = $this->getView("translate");
     $model = $this->getModel('translate');
     $this->view->setModel($model, true);
     // Assign data for view
     $this->view->assignRef('catid', $this->_catid);
     $this->view->assignRef('select_language_id', $this->_select_language_id);
     $this->view->assignRef('task', $this->task);
     $this->view->assignRef('act', $this->act);
 }
 /**
  * Sets up ContentElement Cache - mainly used for data to determine primary key id for tablenames ( and for
  * future use to allow tables to be dropped from translation even if contentelements are installed )
  */
 static function _setupContentElementCache()
 {
     $db = JFactory::getDBO();
     // Make usre table exists otherwise create it.
     $db->setQuery("CREATE TABLE IF NOT EXISTS `#__falang_tableinfo` ( `id` int(11) NOT NULL auto_increment, `joomlatablename` varchar(100) NOT NULL default '',  `tablepkID`  varchar(100) NOT NULL default '', PRIMARY KEY (`id`)) ENGINE=MyISAM");
     $db->query();
     // clear out existing data
     $db->setQuery("DELETE FROM `#__falang_tableinfo`");
     $db->query();
     $falangManager = FalangManager::getInstance();
     $contentElements = $falangManager->getContentElements(true);
     $sql = "INSERT INTO `#__falang_tableinfo` (joomlatablename,tablepkID) VALUES ";
     $firstTime = true;
     foreach ($contentElements as $key => $jfElement) {
         $tablename = $jfElement->getTableName();
         $refId = $jfElement->getReferenceID();
         $sql .= $firstTime ? "" : ",";
         $sql .= " ('" . $tablename . "', '" . $refId . "')";
         $firstTime = false;
     }
     $db->setQuery($sql);
     $db->query();
 }
Esempio n. 8
0
 function getLangLongCode($lang_code = null)
 {
     static $codes;
     // Get current language code
     if (is_null($lang_code)) {
         $lang = JFactory::getLanguage();
         return $lang->getTag();
     }
     if (is_null($codes)) {
         $codes = array();
         if (Mijosef::get('utility')->JoomfishInstalled() || Mijosef::get('utility')->FalangInstalled()) {
             if (Mijosef::get('utility')->JoomfishInstalled()) {
                 $jfm = JoomfishManager::getInstance();
             } else {
                 $jfm = FalangManager::getInstance();
             }
             $langs =& $jfm->getLanguages(false);
             if (!empty($langs)) {
                 foreach ($langs as $lang) {
                     $codes[$lang->shortcode] = $lang->code;
                 }
             }
         } else {
             // Only one language
             $lang =& JFactory::getLanguage();
             $tag = $lang->getTag();
             $parts = explode('-', $tag);
             $iso = $parts[0];
             $codes[$iso] = $tag;
         }
     }
     if (isset($codes[$lang_code])) {
         return $codes[$lang_code];
     }
     return null;
 }
Esempio n. 9
0
                            ?>
</a>
                            <?php 
                        }
                        ?>
					<?php 
                    }
                }
                ?>
				</td>
		    </tr>
	      	<?php 
            } else {
                // Special Params handling
                // if translated value is blank then we always copy across the original value
                $falangManager = FalangManager::getInstance();
                if ($falangManager->getCfg('copyparams', 1) && $translationContent->value == "") {
                    $translationContent->value = $field->originalValue;
                }
                ?>
		    <tr class="<?php 
                echo "row{$k}";
                ?>
">
		      <td colspan="3">
                      <input type="hidden" name="origValue_<?php 
                echo $field->Name;
                ?>
" value='<?php 
                echo md5($field->originalValue);
                ?>
Esempio n. 10
0
 /**
  * Deletes the selected translations (only the translations of course)
  * @return string	message
  */
 function _removeTranslation($catid, $cid)
 {
     $message = '';
     $db = JFactory::getDBO();
     foreach ($cid as $cid_row) {
         list($translationid, $contentid, $language_id) = explode('|', $cid_row);
         $jfManager = FalangManager::getInstance();
         $contentElement = $jfManager->getContentElement($catid);
         $contentTable = $contentElement->getTableName();
         $contentid = intval($contentid);
         $translationid = intval($translationid);
         // safety check -- complete overkill but better to be safe than sorry
         // get the translation details
         JLoader::import('models.FalangContent', FALANG_ADMINPATH);
         $translation = new FalangContent($db);
         $translation->load($translationid);
         if (!isset($translation) || $translation->id == 0) {
             $this->setState('message', JText::sprintf('NO_SUCH_TRANSLATION', $translationid));
             continue;
         }
         // make sure translation matches the one we wanted
         if ($contentid != $translation->reference_id) {
             $this->setState('message', JText::_('Something dodgy going on here'));
             continue;
         }
         $sql = "DELETE from #__falang_content WHERE reference_table='{$catid}' and language_id={$language_id} and reference_id={$contentid}";
         $db->setQuery($sql);
         $db->query();
         if ($db->getErrorNum() != 0) {
             $this->setError(JText::_('Something dodgy going on here'));
             JError::raiseWarning(400, JTEXT::_('No valid table information: ') . $db->getErrorMsg());
             continue;
         } else {
             $this->setState('message', JText::_('Translation successfully deleted'));
         }
     }
     return $message;
 }
Esempio n. 11
0
 /**
  * This method copies originals content items to one selected language
  *
  * @param unknown_type $original2languageInfo
  * @param unknown_type $phase
  * @param unknown_type $statecheck_i
  * @param unknown_type $message
  * @return array	Information result array
  */
 function copyOriginalToLanguage($original2languageInfo, &$phase, &$state_catid, $language_id, $overwrite, &$message)
 {
     $db = JFactory::getDBO();
     $jfManager = FalangManager::getInstance();
     $sql = '';
     switch ($phase) {
         case 1:
             $original2languageInfo = array();
             $sql = "select distinct CONCAT('" . $db->getPrefix() . "',reference_table) from #__falang_content";
             $db->setQuery($sql);
             $tablesWithTranslations = $db->loadResultArray();
             $sql = "SHOW TABLES";
             $db->setQuery($sql);
             $tables = $db->loadResultArray();
             $allContentElements = $jfManager->getContentElements();
             foreach ($allContentElements as $catid => $ce) {
                 $ceInfo = array();
                 $ceInfo['name'] = $ce->Name;
                 $ceInfo['catid'] = $catid;
                 $ceInfo['total'] = '??';
                 $ceInfo['existing'] = '??';
                 $ceInfo['processed'] = '0';
                 $ceInfo['copied'] = '0';
                 $ceInfo['copy'] = false;
                 $contentTable = $ce->getTable();
                 $tablename = $db->getPrefix() . $contentTable->Name;
                 if (in_array($tablename, $tables)) {
                     // get total count of table entries
                     $sql = 'SELECT COUNT(*) FROM ' . $tablename . ' AS c';
                     if ($contentTable->Filter != '') {
                         $sql .= ' WHERE ' . $contentTable->Filter;
                     }
                     $db->setQuery($sql);
                     $ceInfo['total'] = $db->loadResult();
                 }
                 $original2languageInfo[$catid] = $ceInfo;
             }
             $phase = 1;
             // stays with 1 as the second phase needs the bottom to be clicked
             $message = JText::_('COPY2LANGUAGE_INFO');
             break;
         case 2:
             if ($state_catid != '') {
                 // removing all content information which are not to be copied!
                 $celements = explode(',', $state_catid);
                 if (count($celements) < count($original2languageInfo)) {
                     $shortList = array();
                     foreach ($celements as $element) {
                         $shortList[$element] = $original2languageInfo[$element];
                     }
                     $original2languageInfo = $shortList;
                 }
             }
             $phase = 3;
         case 3:
             if ($state_catid != '') {
                 $celements = explode(',', $state_catid);
                 // copy the information per content element file, starting with the first in the list
                 $catid = array_shift($celements);
                 $catidCompleted = false;
                 // coyping the information from the selected content element
                 if ($catid != '' && $language_id != 0) {
                     // get's the config settings on how to store original files
                     $storeOriginalText = $jfManager->getCfg('storageOfOriginal') == 'md5' ? false : true;
                     // make sure we are only transfering data within parts (max 100 items at a time)
                     $ceInfo =& $original2languageInfo[$catid];
                     if (intval($ceInfo['processed']) < intval($ceInfo['total'])) {
                         $contentElement = $jfManager->getContentElement($catid);
                         $db->setQuery($contentElement->createContentSQL($language_id, null, $ceInfo['processed'], 10, array()));
                         $rows = $db->loadObjectList();
                         if ($db->getErrorNum()) {
                             JError::raiseError(500, JTEXT::_('Invalid Content SQL : ') . $db->getErrorMsg());
                             return false;
                         } else {
                             for ($i = 0; $i < count($rows); $i++) {
                                 $contentObject = new ContentObject($language_id, $contentElement);
                                 $contentObject->readFromRow($rows[$i]);
                                 if ($overwrite || $contentObject->translation_id == 0) {
                                     $contentObject->copyContentToTranslation($rows[$i], $rows[$i]);
                                     $contentObject->store();
                                     $ceInfo['copied'] += 1;
                                 }
                                 $rows[$i] = $contentObject;
                             }
                             $ceInfo['processed'] += $i;
                             if ($ceInfo['processed'] >= $ceInfo['total']) {
                                 $catidCompleted = true;
                             }
                         }
                     }
                 }
                 if ($catidCompleted) {
                     if (count($celements) > 0) {
                         $state_catid = implode(',', $celements);
                     } else {
                         $state_catid = '';
                     }
                 }
             }
             $message = JText::_('COPY2LANGUAGE_PROCESS');
             if ($state_catid == '') {
                 $phase = 4;
                 // Successfully finished phase 3
                 $message = JText::_('COPY2LANGUAGE_COMPLETED');
             }
             break;
     }
     return $original2languageInfo;
 }
Esempio n. 12
0
	public static function getList(&$params)
	{
		$lang = JFactory::getLanguage();
		$languages	= JLanguageHelper::getLanguages();
		$app		= JFactory::getApplication();

        //use to remove default language code in url
        $lang_codes 	= JLanguageHelper::getLanguages('lang_code');
        $default_lang = JComponentHelper::getParams('com_languages')->get('site', 'en-GB');
        $default_sef 	= $lang_codes[$default_lang]->sef;

        $sefToolsEnabled = modFaLangHelper::sefToolEnabled();


        $menu = $app->getMenu();
        $active = $menu->getActive();
        $uri = JURI::getInstance();


        // Get menu home items
        $homes = array();

        foreach ($menu->getMenu() as $item)
        {
            if ($item->home)
            {
                $homes[$item->language] = $item;
            }
        }


        if (FALANG_J30) {
            //since 3.2
            if (version_compare(JVERSION, '3.2', 'ge')) {
                $assoc =  JLanguageAssociations::isEnabled();
            } else {
                $assoc = isset($app->item_associations) ? (boolean) $app->item_associations : false;
            }
        } else {
            $assoc = (boolean) $app->get('menu_associations', true);
        }


		if ($assoc) {
			if ($active) {
				$associations = MenusHelper::getAssociations($active->id);
			}
		}
   		foreach($languages as $i => &$language) {
			// Do not display language without frontend UI
			if (!JLanguage::exists($language->lang_code)) {
				unset($languages[$i]);
			}
            if (FALANG_J30) {
                $language_filter = JLanguageMultilang::isEnabled();
            } else {
                $language_filter = $app->getLanguageFilter();
            }



            //set language active before language filter use for sh404 notice
            $language->active =  $language->lang_code == $lang->getTag();

            //since v1.4 change in 1.5 , ex rsform preview don't have active
            if (isset($active)){
                $language->display = ($active->language == '*' || $language->active)?true:false;
            } else {
                $language->display = true;
            }


            if ($language_filter) {
                if (isset($associations[$language->lang_code]) && $menu->getItem($associations[$language->lang_code])) {
                    $language->display = true;
                    $itemid = $associations[$language->lang_code];
                    if ($app->getCfg('sef')=='1') {
                        $language->link = JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid);
                    }
                    else {
                        $language->link = 'index.php?lang='.$language->sef.'&Itemid='.$itemid;
                    }
                }
                else {
                    //sef case
                    if ($app->getCfg('sef')=='1') {

                        //sefToolsEnabled
                        if ($sefToolsEnabled) {
                            $itemid = isset($homes[$language->lang_code]) ? $homes[$language->lang_code]->id : $homes['*']->id;
                            $language->link = JRoute::_('index.php?lang='.$language->sef.'&Itemid='.$itemid);
                            continue;
                        }


                         //$uri->setVar('lang',$language->sef);
                         $router = JApplication::getRouter();
                         $tmpuri = clone($uri);

                         $router->parse($tmpuri);

                         $vars = $router->getVars();
                         //workaround to fix index language
                         $vars['lang'] = $language->sef;

                        //case of category article
                        if (!empty($vars['view']) && $vars['view'] == 'article' && !empty($vars['option']) && $vars['option'] == 'com_content') {

                            if (FALANG_J30){
                                JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_content/models', 'ContentModel');
                                $model = JModelLegacy::getInstance('Article', 'ContentModel', array('ignore_request'=>true));
                                $appParams = JFactory::getApplication()->getParams();
                            } else {
                                JModel::addIncludePath(JPATH_SITE.'/components/com_content/models', 'ContentModel');
                                $model =& JModel::getInstance('Article', 'ContentModel', array('ignore_request'=>true));
                                $appParams = JFactory::getApplication()->getParams();
                            }


                            $model->setState('params', $appParams);

                            //in sef some link have this url
                            //index.php/component/content/article?id=39
                            //id is not in vars but in $tmpuri
                            if (empty($vars['id'])) {
                                $tmpid = $tmpuri->getVar('id');
                                if (!empty($tmpid)) {
                                    $vars['id'] = $tmpuri->getVar('id');
                                } else {
                                    continue;
                                }
                            }

                            $item = $model->getItem($vars['id']);

                            //get alias of content item without the id , so i don't have the translation
                            $db = JFactory::getDbo();
                            $query = $db->getQuery(true);
                            $query->select('alias')->from('#__content')->where('id = ' . (int) $item->id);
                            $db->setQuery($query);
                            $alias = $db->loadResult();

                            $vars['id'] = $item->id.':'.$alias;
                            $vars['catid'] =$item->catid.':'.$item->category_alias;
                        }

                        //new version 1.5
                        //case for k2 item alias write twice
                        if (isset($vars['option']) && $vars['option'] == 'com_k2'){
                            if ($vars['task'] == $vars['id']){
                                unset($vars['id']);
                            }
                        }
                        $url = 'index.php?'.JURI::buildQuery($vars);
                        $language->link = JRoute::_($url);

                        //TODO check performance 3 queries by languages -1
                        /**
                         * Replace the slug from the language switch with correctly translated slug.
                         * $language->lang_code language de la boucle (icone lien)
                         * $lang->getTag() => language en cours sur le site
                         * $default_lang langue par default du site
                         */
                        if($lang->getTag() != $language->lang_code && !empty($vars['Itemid']))
                        {
                            $fManager = FalangManager::getInstance();
                            $id_lang = $fManager->getLanguageID($language->lang_code);
                            $db = JFactory::getDbo();
                            // get translated path if exist
                            $query = $db->getQuery(true);
                            $query->select('fc.value')
                                ->from('#__falang_content fc')
                                ->where('fc.reference_id = '.(int)$vars['Itemid'])
                                ->where('fc.language_id = '.(int) $id_lang )
                                ->where('fc.reference_field = \'path\'')
                                ->where('fc.reference_table = \'menu\'');
                            $db->setQuery($query);
                            $translatedPath = $db->loadResult();

                            // $translatedPath not exist if not translated or site default language
                            // don't pass id to the query , so no translation given by falang
                            $query = $db->getQuery(true);
                            $query->select('m.path')
                                ->from('#__menu m')
                                ->where('m.id = '.(int)$vars['Itemid']);
                            $db->setQuery($query);
                            $originalPath = $db->loadResult();

                            $pathInUse = null;
                            //si on est sur une page traduite on doit récupérer la traduction du path en cours
                            if ($default_lang != $lang->getTag() ) {
                                $id_lang = $fManager->getLanguageID($lang->getTag());
                                // get translated path if exist
                                $query = $db->getQuery(true);
                                $query->select('fc.value')
                                    ->from('#__falang_content fc')
                                    ->where('fc.reference_id = '.(int)$vars['Itemid'])
                                    ->where('fc.language_id = '.(int) $id_lang )
                                    ->where('fc.reference_field = \'path\'')
                                    ->where('fc.reference_table = \'menu\'');
                                $db->setQuery($query);
                                $pathInUse = $db->loadResult();

                            }

                            if (!isset($translatedPath)) {
                                $translatedPath = $originalPath;
                            }

                            // not exist if not translated or site default language
                            if (!isset($pathInUse)) {
                                $pathInUse = $originalPath ;
                            }

                            //make replacement in the url

                            //si language de boucle et language site
                            if($language->lang_code == $default_lang) {
                                if (isset($pathInUse) && isset($originalPath)){
                                    $language->link = str_replace($pathInUse, $originalPath, $language->link);
                                }
                            } else {
                                if (isset($pathInUse) && isset($translatedPath)){
                                    $language->link = str_replace($pathInUse, $translatedPath, $language->link);
                                }
                            }

                        }
                    }
                    //default case
             else {
                        //we can't remove default language in the link
                        $uri->setVar('lang',$language->sef);
                        $language->link = 'index.php?'.$uri->getQuery();
                    }
                }
            }
            else {
                $language->link = 'index.php';
            }

		}
		return $languages;
	}
Esempio n. 13
0
 /**
  * Version information of the component
  *
  */
 public function version()
 {
     return FalangManager::getVersion();
 }
Esempio n. 14
0
 /**
  * Overwritten insert function to enable storage of material created in non-default language.
  * Note that this creates a translation which is identical to the original - when we update
  * the original in the default language we then keep the translation (although it will appread out of date!).
  *
  * @param	string	table name
  * @param	object	instance with information to store
  * @param	string	primary key name of table
  * @param	boolean	debug info printed or not
  * @param	boolean	passthru without storing information in a translation table
  */
 function updateObject($table, &$object, $keyName, $updateNulls = true, $passthru = false)
 {
     $params = JComponentHelper::getParams('com_falang');
     //1.4.5 if fronEdition is set to off , keep previous system
     if ($params->get('frontEndEdition', 0) == 0) {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
     $pfunc = $this->_profile();
     $falangManager = FalangManager::getInstance();
     $current_lang = JFactory::getLanguage()->getTag();
     //default site language
     $default_lang = JComponentHelper::getParams('com_languages')->get('site');
     //we update if content language is set to all language or if content language is current_langauge
     // check if marked langage of content is the detaul language:
     if ($table == '#__content' && isset($object->id) && $object->id > 0) {
         $test = JTable::getInstance("Content");
         $test->load($object->id);
         if ($test->language == '*') {
             if ($current_lang == $default_lang) {
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         if ($test->language == $current_lang) {
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     }
     if (isset($falangManager) && $table != "#__falang_content") {
         $tableName = preg_replace('/^#__/', '', $table);
         $contentElement = $falangManager->getContentElement($tableName);
         if (isset($contentElement) && $contentElement->getFrontEdit() == 1) {
             include_once JPATH_ADMINISTRATOR . "/components/com_falang/models/ContentObject.php";
             $actContentObject = new ContentObject($falangManager->getLanguageID($current_lang), $contentElement);
             $objectLanguague = isset($object->language) ? $object->language : null;
             //the object language must be a language tag
             $languageIsoList = array("*");
             foreach ($falangManager->getLanguagesIndexedByCode(false) as $language) {
                 $languageIsoList[] = $language->lang_code;
             }
             $validLanguage = in_array($objectLanguague, $languageIsoList);
             // 1 - si object * => objet joomla si langue cournate et langue en cours sont pareil
             // 2 - si object a une langue , alors object joolma si la langue de l'object = language en cours
             $joomlaObject = false;
             if ($objectLanguague == "*") {
                 if ($current_lang == $default_lang) {
                     $joomlaObject = true;
                 }
             }
             if ($objectLanguague == $current_lang) {
                 $joomlaObject = true;
             }
             //hikashop woraround //
             $lkeyName = method_exists($object, 'getKeyName') ? $object->getKeyName() : null;
             if (!empty($lkeyName) && $validLanguage && isset($objectLanguague) && !$joomlaObject) {
                 $actContentObject->loadFromContentID($object->id);
                 $actContentObject->updateMLContent($object);
                 if (isset($object->state)) {
                     $actContentObject->published = $object->state == 1 ? true : false;
                 } else {
                     if (isset($object->published)) {
                         $actContentObject->published = $object->published == 1 ? true : false;
                     }
                 }
                 $actContentObject->setPublished($actContentObject->published);
                 $actContentObject->store();
                 return true;
             } else {
                 //hikashop workaround this update hit.
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         } else {
             //content element not exist
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     } else {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
 }
 function enabled(&$plugin)
 {
     $cosi = 'file';
     $cosi = implode($cosi(JPATH_ROOT . '/administrator/components/com_falang/falang.xml'));
     $cosi = md5($cosi);
     if (FalangManager::GetFalangGlobalMeta() == $cosi) {
         return true;
     } else {
         $plugin = $plugin;
     }
     $doc =& JFactory::getDocument();
     $cacheBuf =& $doc->getBuffer('component');
     $cacheBuf2 = '<div><a title="Faboba : Cr&eacute;ation de composant' . 'Joomla" style="font-size: 8px;; visibility: visible;' . 'display:inline;" href="http://www.faboba' . '.com" target="_blank">FaLang tra' . 'nslation syste' . 'm by Faboba</a></div>';
     if ($doc->_type == 'html') {
         $doc->setBuffer($cacheBuf . $cacheBuf2, 'component');
     }
     return true;
 }
Esempio n. 16
0
}
// Access check.
if (!JFactory::getUser()->authorise('core.manage', 'com_falang')) {
    return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
}
jimport('joomla.filesystem.path');
// disable Zend php4 compatability mode - this causes problem with passing translations by reference
// see http://forum.joomla.org/index.php/topic,80065.msg451560.html#msg451560 for details of problem
// See http://uk.php.net/ini.core for description of the flag
@ini_set("zend.ze1_compatibility_mode", "Off");
/** required standard extentions **/
require_once JPATH_SITE . DS . 'components' . DS . 'com_falang' . DS . 'helpers' . DS . 'defines.php';
JLoader::register('FalangManager', FALANG_ADMINPATH . DS . 'classes' . DS . 'FalangManager.class.php');
JLoader::register('FalangExtensionHelper', FALANG_ADMINPATH . DS . 'helpers' . DS . 'extensionHelper.php');
JLoader::register('FalangVersion', FALANG_ADMINPATH . DS . 'version.php');
$falangManager = FalangManager::getInstance(dirname(__FILE__));
$cmd = JRequest::getCmd('task', 'cpanel.show');
if (strpos($cmd, '.') != false) {
    // We have a defined controller/task pair -- lets split them out
    list($controllerName, $task) = explode('.', $cmd);
    // Define the controller name and path
    $controllerName = strtolower($controllerName);
    $controllerPath = FALANG_ADMINPATH . DS . 'controllers' . DS . $controllerName . '.php';
    // If the controller file path exists, include it ... else lets die with a 500 error
    if (file_exists($controllerPath)) {
        require_once $controllerPath;
    } else {
        JError::raiseError(500, 'Invalid Controller');
    }
} else {
    // Base controller, just set the task
Esempio n. 17
0
 public function checkCondition($condition = null)
 {
     // Fetch the current language
     $language = JFactory::getLanguage();
     // Fetch the languages
     $languages = FalangManager::getInstance()->getActiveLanguages();
     if (!empty($languages)) {
         foreach ($languages as $l) {
             if ($language->getTag() == $l->code) {
                 if (!empty($l->shortcode)) {
                     $language_code = $l->shortcode;
                     break;
                 } else {
                     if (!empty($l->sef)) {
                         $language_code = $l->sef;
                         break;
                     }
                 }
             }
         }
     } else {
         $language_code = JRequest::getCmd('lang');
     }
     if ($condition == $language_code) {
         return true;
     }
     return false;
 }
Esempio n. 18
0
 /**
  * Testing if old installation is found and upgraded?
  * This method is rebuild and checks now for old JoomFish installations not MambelFish anymore!
  * @return int		0 := component not installed, 1 := installed but not upgraded, 2 := installed and upgraded
  */
 private function _testOldInstall()
 {
     $db = JFactory::getDBO();
     $oldInstall = 0;
     $db->setQuery("SHOW TABLES LIKE '%jf_%'");
     $db->query();
     $rows = $db->loadResultArray();
     foreach ($rows as $row) {
         if (preg_match('/mbf_content/i', $row)) {
             $oldInstall = 1;
             break;
         }
     }
     $jfManager = FalangManager::getInstance();
     if ($oldInstall == 1 && $jfManager->getCfg('mbfupgradeDone')) {
         $oldInstall = 2;
     }
     return $oldInstall;
 }
Esempio n. 19
0
 /**
  * This method tests for the content elements and their original/translation status
  * It will return an array listing all content element names including information about how may originals
  *
  * @param array 	$originalStatus	array with original state values if exist
  * @param int		$phase	which phase of the status check
  * @param string	$statecheck_i	running row number starting with -1!
  * @param string	$message	system message
  * @param array		$languages	array of availabe languages
  * @return array	with resulting rows
  */
 function testOriginalStatus($originalStatus, &$phase, &$statecheck_i, &$message, $languages)
 {
     $db = JFactory::getDBO();
     $jfManager = FalangManager::getInstance();
     $tranFilters = array();
     $filterHTML = array();
     $sql = '';
     switch ($phase) {
         case 1:
             $originalStatus = array();
             $sql = "select distinct CONCAT('" . $db->getPrefix() . "',reference_table) from #__falang_content";
             $db->setQuery($sql);
             $tablesWithTranslations = $db->loadResultArray();
             $sql = "SHOW TABLES";
             $db->setQuery($sql);
             $tables = $db->loadResultArray();
             $allContentElements = $jfManager->getContentElements();
             foreach ($allContentElements as $catid => $ce) {
                 $ceInfo = array();
                 $ceInfo['name'] = $ce->Name;
                 $ceInfo['catid'] = $catid;
                 $ceInfo['total'] = '??';
                 $ceInfo['missing_table'] = false;
                 $ceInfo['message'] = '';
                 $tablename = $db->getPrefix() . $ce->referenceInformation["tablename"];
                 if (in_array($tablename, $tables)) {
                     // get total count of table entries
                     $db->setQuery('SELECT COUNT(*) FROM ' . $tablename);
                     $ceInfo['total'] = $db->loadResult();
                     if (in_array($tablename, $tablesWithTranslations)) {
                         // get orphans
                         $db->setQuery($ce->createOrphanSQL(-1, null, -1, -1, $tranFilters));
                         $rows = $db->loadObjectList();
                         if ($db->getErrorNum()) {
                             $this->_message = $db->stderr();
                             return false;
                         }
                         $ceInfo['orphans'] = count($rows);
                         // get number of valid translations
                         $ceInfo['valid'] = 0;
                         // get number of outdated translations
                         $ceInfo['outdated'] = $ceInfo['total'] - $ceInfo['orphans'] - $ceInfo['valid'];
                     } else {
                         $ceInfo['orphans'] = '0';
                     }
                 } elseif (!in_array($tablename, $tables)) {
                     $ceInfo['missing_table'] = true;
                     $ceInfo['message'] = JText::sprintf(TABLE_DOES_NOT_EXIST, $tablename);
                 }
                 $originalStatus[] = $ceInfo;
             }
             $message = JText::sprintf('ORIGINAL_PHASE1_CHECK', '');
             $phase++;
             $statecheck_i = 0;
             break;
         case 2:
             if (is_array($originalStatus) && count($originalStatus) > 0) {
                 if ($statecheck_i >= 0 && $statecheck_i < count($originalStatus)) {
                     $stateRow = $originalStatus[$statecheck_i];
                     foreach ($languages as $lang) {
                         $sql = "SELECT * FROM #__falang_content as jfc" . "\n  WHERE jfc.language_id=" . $lang->id . "\n    AND jfc.reference_table='" . $stateRow['catid'] . "'" . "\n    AND jfc.published=1" . "\n\t GROUP BY reference_id";
                         $db->setQuery($sql);
                         $rows = $db->loadRowList();
                         $key = 'langentry_' . $lang->getLanguageCode();
                         $stateRow[$key] = count($rows);
                     }
                 }
                 if ($statecheck_i < count($originalStatus) - 1) {
                     $statecheck_i++;
                     $message = JText::sprintf('ORIGINAL_PHASE1_CHECK', ' (' . $originalStatus[$statecheck_i]['name'] . ')');
                 } else {
                     $message = JText::_('ORIGINAL_PHASE2_CHECK');
                     $phase = 3;
                     // exit
                 }
             } else {
                 $phase = 3;
                 // exit
                 $message = JText::_('ORIGINAL_PHASE2_CHECK');
             }
             break;
     }
     return $originalStatus;
 }
Esempio n. 20
0
 function enabled(&$plugin)
 {
     $cosi = 'file';
     $cosi = implode($cosi(JPATH_ROOT . '/administrator/components/com_falang/falang.xml'));
     $cosi = md5($cosi);
     if (FalangManager::GetFalangGlobalMeta() == $cosi) {
         return true;
     } else {
         $plugin = $plugin;
     }
     $doc =& JFactory::getDocument();
     $cacheBuf =& $doc->getBuffer('component');
     $cacheBuf2 = '';
     if ($doc->_type == 'html') {
         $doc->setBuffer($cacheBuf . $cacheBuf2, 'component');
     }
     return true;
 }
Esempio n. 21
0
 /**
  *	Loads the language by it's iso name
  *	@param string $iso iso name of the language
  *	@return any result from the database operation
  */
 function createByISO($iso, $active = true)
 {
     $db = JFactory::getDBO();
     if ($iso === null) {
         return false;
     }
     $lang = new TableJFLanguage($db);
     $jfm = FalangManager::getInstance();
     $langdata = $jfm->getLanguageByCode($iso, $active);
     if (!$lang->bind($langdata)) {
         $lang = null;
     }
     return $lang;
 }
Esempio n. 22
0
 /**
  * Constructor 
  */
 function __construct()
 {
     $this->_falangManager = FalangManager::getInstance();
 }
Esempio n. 23
0
 /**
  * 
  */
 function checkstatus()
 {
     $type = JRequest::getString('type', '');
     $phase = JRequest::getInt('phase', 1);
     $statecheck_i = JRequest::getInt('statecheck_i', -1);
     $htmlResult = JText::_('MANAGEMENT_INTRO');
     $link = '';
     // get the view
     $this->_view = $this->getView("statistics");
     $this->_model = $this->getModel('statistics');
     switch ($type) {
         case 'translation_status':
             $message = '';
             $session = JFactory::getSession();
             $translationStatus = $session->get('translationState', array());
             $translationStatus = $this->_model->testTranslationStatus($translationStatus, $phase, $statecheck_i, $message);
             $session->set('translationState', $translationStatus);
             $htmlResult = $this->_view->renderTranslationStatusTable($translationStatus, $message);
             if ($phase <= 3) {
                 $link = 'index.php?option=com_falang&task=statistics.check&type=translation_status&phase=' . $phase;
                 if ($statecheck_i > -1) {
                     $link .= '&statecheck_i=' . $statecheck_i;
                 }
             } else {
                 $session->set('translationState', null);
             }
             break;
         case 'original_status':
             $message = '';
             $session = JFactory::getSession();
             $originalStatus = $session->get('originalStatus', array());
             $langCodes = array();
             $jfManager = FalangManager::getInstance();
             $languages = $jfManager->getLanguages(false);
             foreach ($languages as $lang) {
                 $langCodes[] = $lang->getLanguageCode();
             }
             $originalStatus = $this->_model->testOriginalStatus($originalStatus, $phase, $statecheck_i, $message, $languages);
             $session->set('originalStatus', $originalStatus);
             $htmlResult = $this->_view->renderOriginalStatusTable($originalStatus, $message, $langCodes);
             if ($phase <= 2) {
                 $link = 'index.php?option=com_falang&task=statistics.check&type=original_status&phase=' . $phase;
                 if ($statecheck_i > -1) {
                     $link .= '&statecheck_i=' . $statecheck_i;
                 }
             } else {
                 $session->set('originalStatus', null);
             }
             break;
     }
     // Set the layout
     $this->_view->setLayout('result');
     $this->_view->assignRef('htmlResult', $htmlResult);
     $this->_view->assignRef('reload', $link);
     $this->_view->display();
 }
Esempio n. 24
0
    /**
     * render content state information
     */
    function renderContentState()
    {
        $falangManager = FalangManager::getInstance();
        $output = '';
        $alertContent = false;
        if (array_key_exists('unpublished', $this->contentInfo) && is_array($this->contentInfo['unpublished'])) {
            $alertContent = true;
        }
        ob_start();
        ?>
		<table class="adminlist">
			<tr>
				<th><?php 
        echo JText::_("UNPUBLISHED CONTENT ELEMENTS");
        ?>
</th>
				<th style="text-align: center;"><?php 
        echo JText::_("Language");
        ?>
</th>
				<th style="text-align: center;"><?php 
        echo JText::_("Publish");
        ?>
</th>
			</tr>
			<?php 
        $k = 0;
        if ($alertContent) {
            $curReftable = '';
            foreach ($this->contentInfo['unpublished'] as $ceInfo) {
                $contentElement = $falangManager->getContentElement($ceInfo['catid']);
                // Trap for content elements that may have been removed
                if (is_null($contentElement)) {
                    $name = "<span style='font-style:italic'>" . JText::sprintf("CONTENT_ELEMENT_MISSING", $ceInfo["reference_table"]) . "</span>";
                } else {
                    $name = $contentElement->Name;
                }
                if ($ceInfo["reference_table"] != $curReftable) {
                    $curReftable = $ceInfo["reference_table"];
                    $k = 0;
                    ?>
			<tr><td colspan="3"><strong><?php 
                    echo $name;
                    ?>
</strong></td></tr>
						<?php 
                }
                JLoader::import('models.ContentObject', FALANG_ADMINPATH);
                $contentObject = new ContentObject($ceInfo['language_id'], $contentElement);
                $contentObject->loadFromContentID($ceInfo['reference_id']);
                $link = 'index.php?option=com_falang&amp;task=translate.edit&amp;&amp;catid=' . $ceInfo['catid'] . '&cid[]=0|' . $ceInfo['reference_id'] . '|' . $ceInfo['language_id'];
                $hrefEdit = "<a href='" . $link . "'>" . $contentObject->title . "</a>";
                $link = 'index.php?option=com_falang&amp;task=translate.publish&amp;catid=' . $ceInfo['catid'] . '&cid[]=0|' . $ceInfo['reference_id'] . '|' . $ceInfo['language_id'];
                $hrefPublish = '<a href="' . $link . '"><img src="images/publish_x.png" width="12" height="12" border="0" alt="" /></a>';
                ?>
			<tr class="row<?php 
                echo $k;
                ?>
">
				<td align="left"><?php 
                echo $hrefEdit;
                ?>
</td>
				<td style="text-align: center;"><?php 
                echo $ceInfo['language'];
                ?>
</td>
					<td style="text-align: center;"><?php 
                echo $hrefPublish;
                ?>
</td>
			</tr>
					<?php 
                $k = 1 - $k;
            }
        } else {
            ?>
			<tr class="row0">
				<td colspan="3"><?php 
            echo JText::_("No unpublished translations found");
            ?>
</td>
			</tr>
					<?php 
        }
        ?>
		</table>
		<?php 
        $output .= ob_get_clean();
        return $output;
    }
Esempio n. 25
0
 /**
  * Adds the translation toolbar button to the toolbar based on the
  * given parameters.
  *
  */
 public function addToolbar()
 {
     //check if we are in backend
     $app = JFactory::getApplication();
     if (!$app->isAdmin()) {
         return;
     }
     $doc = JFactory::getDocument();
     $falangManager = FalangManager::getInstance();
     $input = JFactory::getApplication()->input;
     $option = $input->get('option', false, 'cmd');
     $view = $input->get('view', false, 'cmd');
     $task = $input->get('task', false, 'cmd');
     $layout = $input->get('layout', 'default', 'string');
     if (!$option || !$view && !$task || !$layout) {
         return;
     }
     $mapping = $this->loadComponent();
     if (!isset($mapping)) {
         return;
     }
     //GET KEY FROM CONTENT ELEMENT
     $id = $input->get($mapping[2], 0, 'int');
     if (empty($id)) {
         return;
     }
     //Load ToolBar
     $bar = JToolBar::getInstance('toolbar');
     //Load Language
     $languages = $this->getLanguages();
     // @deprecated used for Joomla 2.5
     //TODO use library ?
     $bar->addButtonPath(JPATH_PLUGINS . '/system/falangquickjump/toolbar/button/');
     $buttontype = 'itrPopup';
     $width = '95%';
     $height = '99%';
     //Add Stylesheet for button icons
     JHTML::_('stylesheet', 'administrator/components/com_falang/assets/css/falang.css', array(), false);
     //Add button by language
     foreach ($languages as $language) {
         //get Falang Object info
         $contentElement = $falangManager->getContentElement($mapping[1]);
         JLoader::import('models.ContentObject', FALANG_ADMINPATH);
         $actContentObject = new ContentObject($language->lang_id, $contentElement);
         $actContentObject->loadFromContentID($id);
         $class = "quickmodal ";
         //-1 not exist, 0 old , 1 uptodate
         switch ($actContentObject->state) {
             case 1:
                 $class .= "uptodate";
                 break;
             case 0:
                 $class .= "old";
                 break;
             case -1:
                 $class .= "notexist";
                 break;
             default:
                 $class .= "notexist";
                 break;
         }
         $publish = isset($actContentObject->published) && $actContentObject->published == 1 ? " icon-publish" : " icon-unpublish";
         //free and paid mmust be on 1 line
         /* >>> [FREE] >>> */
         $url = 'index.php?option=com_falang&task=translate.editfree&tmpl=component&direct=1';
         /* <<< [FREE] <<< */
         $bar->appendButton($buttontype, 'falang-quicktranslate-' . $language->lang_id, $language->title, $url, $width, $height, null, null, null, null, $language->image, $class, $publish);
     }
 }
Esempio n. 26
0
 /**
  * Overwritten insert function to enable storage of material created in non-default language.
  * Note that this creates a translation which is identical to the original - when we update
  * the original in the default language we then keep the translation (although it will appread out of date!).
  *
  * @param	string	table name
  * @param	object	instance with information to store
  * @param	string	primary key name of table
  * @param	boolean	debug info printed or not
  * @param	boolean	passthru without storing information in a translation table
  */
 function updateObject($table, &$object, $keyName, $updateNulls = true, $passthru = false)
 {
     $params = JComponentHelper::getParams('com_falang');
     $pfunc = $this->_profile();
     $falangManager = FalangManager::getInstance();
     $current_lang = JFactory::getLanguage()->getTag();
     //default site language
     $default_lang = JComponentHelper::getParams('com_languages')->get('site');
     //we update if content language is set to all language or if content language is current_langauge
     // check if marked langage of content is the detaul language:
     if ($table == '#__content' && isset($object->id) && $object->id > 0) {
         $test = JTable::getInstance("Content");
         $test->load($object->id);
         if ($test->language == '*') {
             if ($current_lang == $default_lang) {
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         if ($test->language == $current_lang) {
             return parent::updateObject($table, $object, $keyName, $updateNulls);
         }
     }
     if (isset($falangManager) && $table != "#__falang_content") {
         $tableName = preg_replace('/^#__/', '', $table);
         $contentElement = $falangManager->getContentElement($tableName);
         if (isset($contentElement)) {
             include_once JPATH_ADMINISTRATOR . "/components/com_falang/models/ContentObject.php";
             $actContentObject = new ContentObject($falangManager->getLanguageID($current_lang), $contentElement);
             //hikashop woraround //
             $lkeyName = method_exists($object, 'getKeyName') ? $object->getKeyName() : null;
             if (!empty($lkeyName)) {
                 $actContentObject->loadFromContentID($object->id);
                 $actContentObject->updateMLContent($object);
                 if (isset($object->state)) {
                     $actContentObject->published = $object->state == 1 ? true : false;
                 } else {
                     if (isset($object->published)) {
                         $actContentObject->published = $object->published == 1 ? true : false;
                     }
                 }
                 //if ( $falangManager->getCfg("frontEndPublish")){
                 if ($params->get('frontEndEdition', 0) == 1) {
                     $user = JFactory::getUser();
                     $access = new stdClass();
                     //$access->canPublish =  $user->authorize('com_content', 'publish', 'content', 'all');
                     //if ($access->canPublish) $actContentObject->setPublished($actContentObject->published);
                     $actContentObject->setPublished($actContentObject->published);
                 }
                 //if allow front-end translation
                 if ($params->get('frontEndEdition', 0) == 1) {
                     $actContentObject->store();
                 } else {
                     $application = JFactory::getApplication();
                     $application->enqueueMessage(JText::_('PLG_SYSTEM_FALANGDRIVER_FRONT_UPDATE_NOT_AUTHORIZED'), 'notice');
                     return false;
                 }
             } else {
                 //hikashop workaround this update hit.
                 return parent::updateObject($table, $object, $keyName, $updateNulls);
             }
         }
         //content element not exist
         $pfunc = $this->_profile($pfunc);
         //return parent::updateObject( $table, $object, $keyName, $updateNulls );
         return true;
     } else {
         return parent::updateObject($table, $object, $keyName, $updateNulls);
     }
 }