public static function setdbLanguageTag() { if (self::$vmlang) { return self::$vmlang; } $langs = (array) self::get('active_languages', array()); self::$langCount = count($langs); $siteLang = vRequest::getString('vmlang', false); $params = JComponentHelper::getParams('com_languages'); $defaultLang = $params->get('site', 'en-GB'); //use default joomla if (self::$jDefLang = self::get('vmDefLang', false)) { self::$jDefLang = strtolower(strtr(self::$jDefLang, '-', '_')); } else { self::$jDefLang = strtolower(strtr($defaultLang, '-', '_')); } if (JFactory::getApplication()->isSite()) { if (!$siteLang) { jimport('joomla.language.helper'); $siteLang = JFactory::getLanguage()->getTag(); } } else { if (!$siteLang) { $siteLang = $defaultLang; } } self::$vmLangSelected = $siteLang; if (!in_array($siteLang, $langs)) { if (count($langs) === 0) { $siteLang = $defaultLang; } else { $siteLang = $langs[0]; } } self::$vmlangTag = $siteLang; if (count($langs) > 1) { $lfbs = self::get('vm_lfbs'); vmdebug('my lfbs ' . $lfbs); if (!empty($lfbs)) { $pairs = explode(';', $lfbs); if ($pairs and count($pairs) > 0) { $fbsAssoc = array(); foreach ($pairs as $pair) { $kv = explode('~', $pair); if ($kv and count($kv) === 2) { $fbsAssoc[$kv[0]] = $kv[1]; } } if (isset($fbsAssoc[$siteLang])) { $defaultLang = $fbsAssoc[$siteLang]; } self::set('fbsAssoc', $fbsAssoc); } } // this code is uses logic derived from language filter plugin in j3 and should work on most 2.5 versions as well if (class_exists('JLanguageHelper') && method_exists('JLanguageHelper', 'getLanguages')) { $languages = JLanguageHelper::getLanguages('lang_code'); $ltag = JFactory::getLanguage()->getTag(); self::$vmlangSef = $languages[$ltag]->sef; } } self::$vmlang = strtolower(strtr($siteLang, '-', '_')); self::$defaultLang = strtolower(strtr($defaultLang, '-', '_')); vmdebug('$siteLang: ' . $siteLang . ' self::$vmlangSef: ' . self::$vmlangSef . ' self::$_jpConfig->lang ' . self::$vmlang . ' DefLang ' . self::$defaultLang); //@deprecated just fallback defined('VMLANG') or define('VMLANG', self::$vmlang); return self::$vmlang; }
/** * Paste the table in json format * */ public function paste() { // TODO Test user ? $json = array(); $json['fields'] = 'error'; $json['msg'] = 'Invalid Token'; $json['structure'] = 'empty'; if (!vRequest::vmCheckToken(-1)) { echo json_encode($json); jexit(); } $lang = vRequest::getvar('lg'); $langs = tsmConfig::get('active_languages', array()); $language = JFactory::getLanguage(); if (!in_array($lang, $langs)) { $json['msg'] = 'Invalid language ! ' . $lang; $json['langs'] = $langs; echo json_encode($json); jexit(); } $lang = strtolower($lang); // Remove tag if defaut or // if ($language->getDefault() == $lang ) $dblang =''; $dblang = strtr($lang, '-', '_'); tsmConfig::$vmlang = $dblang; $id = vRequest::getInt('id', 0); $viewKey = vRequest::getCmd('editView'); // TODO temp trick for vendor if ($viewKey == 'vendor') { $id = 1; } $tables = array('category' => 'categories', 'product' => 'products', 'manufacturer' => 'manufacturers', 'manufacturercategories' => 'manufacturercategories', 'vendor' => 'vendors', 'paymentmethod' => 'paymentmethods', 'shipmentmethod' => 'shipmentmethods'); if (!array_key_exists($viewKey, $tables)) { $json['msg'] = "Invalid view " . $viewKey; echo json_encode($json); jExit(); } $tableName = '#__tsmart_' . $tables[$viewKey] . '_' . $dblang; $m = tmsModel::getModel('coupon'); $table = $m->getTable($tables[$viewKey]); //Todo create method to load lang fields only $table->load($id); $vs = $table->loadFieldValues(); $lf = $table->getTranslatableFields(); $json['fields'] = array(); foreach ($lf as $v) { if (isset($vs[$v])) { $json['fields'][$v] = $vs[$v]; } } //if ($json['fields'] = $db->loadAssoc()) { if ($table->getLoaded()) { $json['structure'] = 'filled'; $json['msg'] = tsmText::_('com_tsmart_SELECTED_LANG') . ':' . $lang; } else { $db = JFactory::getDBO(); $json['structure'] = 'empty'; $db->setQuery('SHOW COLUMNS FROM ' . $tableName); $tableDescribe = $db->loadAssocList(); array_shift($tableDescribe); $fields = array(); foreach ($tableDescribe as $key => $val) { $fields[$val['Field']] = $val['Field']; } $json['fields'] = $fields; $json['msg'] = tsmText::sprintf('com_tsmart_LANG_IS_EMPTY', $lang, tsmText::_('com_tsmart_' . strtoupper($viewKey))); } echo vmJsApi::safe_json_encode($json); jExit(); }