%PDF- %PDF-
Direktori : /home/lightco1/luminero.com.au/administrator/components/com_virtuemart/controllers/ |
Current File : /home/lightco1/luminero.com.au/administrator/components/com_virtuemart/controllers/translate.php |
<?php /** * * Translate controller * * @package VirtueMart * @subpackage Translate * @author Patrick Kohl * @link https://virtuemart.net * @copyright Copyright (c) 2004 - 2011 VirtueMart Team. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL 2, see COPYRIGHT.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * @version $Id: translate.php */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die('Restricted access'); if(!class_exists('VmController'))require(VMPATH_ADMIN.DS.'helpers'.DS.'vmcontroller.php'); /** * Translate Controller * * @package VirtueMart * @subpackage Translate * @author Patrick Kohl */ class VirtuemartControllerTranslate extends VmController { var $check = null; var $fields = null; function __construct() { parent::__construct(); } /* stAn - if this function was in the model, it could be public as well */ private function getData($id, $lang, $viewKey, $dblang, $json) { $tables = array ('category' =>'categories','product' =>'products','manufacturer' =>'manufacturers','manufacturercategories' =>'manufacturercategories','vendor' =>'vendors', 'paymentmethod' =>'paymentmethods', 'shipmentmethod' =>'shipmentmethods'); $tableName = '#__virtuemart_'.$tables[$viewKey].'_'.$dblang; $m = VmModel::getModel('coupon'); $table = $m->getTable($tables[$viewKey]); if (empty($table)) { $json['fields'] = 'error' ; $json['msg'] = 'Table not found '.$viewKey; return $json; } //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'] = vmText::_('COM_VIRTUEMART_SELECTED_LANG').':'.$lang; $json['byfallback'] = $table->_loadedWithLangFallback; } 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'] = vmText::sprintf('COM_VIRTUEMART_LANG_IS_EMPTY',$lang ,vmText::_('COM_VIRTUEMART_'.strtoupper( $viewKey)) ) ; } return $json; } /** * Paste the table in json format * */ public function paste() { // TODO Test user ? $json= array(); if (!vRequest::vmCheckToken(-1)) { $json['fields'] = 'error' ; $json['msg'] = 'Invalid Token'; $json['structure'] = 'empty' ; echo json_encode($json) ; jexit( ); } $lang = vRequest::getVar('lg'); $langs = VmConfig::get('active_languages',array(VmConfig::$jDefLang)) ; if (!in_array($lang, $langs) ) { $json['msg'] = 'Invalid language ! '.$lang; $json['langs'] = $langs ; echo json_encode($json) ; jexit( ); } vmLanguage::setLanguageByTag($lang); /*$lang = strtolower( $lang); $dblang= strtr($lang,'-','_'); VmConfig::$vmlang = $dblang;*/ //$id = vRequest::getInt('id',0); $id = vRequest::getVar('id',0); if (is_array($id)) { if (count($id) == 1) { $id = (int)reset($id); } else { foreach ($id as $k=>$v) { $id[$k] = (int)$v; if (empty($id[$k])) unset($id[$k]); } } } else { $id = (int)$id; } $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(); } if (!is_array($id)) { $json = $this->getData($id, $lang, $viewKey, VmConfig::$vmlang, $json); } else { $json['multiple'] = array(); foreach ($id as $myid) { $tomerge = array(); $tomerge = $this->getData($myid, $lang, $viewKey, VmConfig::$vmlang,$tomerge); $tomerge['requested_id'] = $myid; $json['lang'] = VmConfig::$vmlang; $json['multiple'][] = $tomerge; } } echo vmJsApi::safe_json_encode($json); jExit(); } } //pure php no tag