Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 /**
  * 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();
 }