change line endings for easy patching

This commit is contained in:
Daniel Seifert 2020-05-25 10:35:12 +02:00
parent aa6071a9f8
commit 75cc87b3f6
Signed by: DanielS
GPG Key ID: 8A7C4C6ED1915C6F
23 changed files with 2379 additions and 2379 deletions

BIN
.gitattributes vendored Normal file

Binary file not shown.

View File

@ -1,15 +1,15 @@
# D³ Übersetzungsassistent für OXID eShop # D³ Übersetzungsassistent für OXID eShop
flexible Textbausteinverwaltung direkt im Adminbereich des Shops flexible Textbausteinverwaltung direkt im Adminbereich des Shops
## Systemanforderungen: ## Systemanforderungen:
- installierter OXID eShop - installierter OXID eShop
- PHP-Version, für die Installationspakete verfügbar sind - PHP-Version, für die Installationspakete verfügbar sind
- Installation via Composer - Installation via Composer
- ionCubeLoader - ionCubeLoader
- D3 Modul Connector - D3 Modul Connector
Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes. Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes.
## Installation: ## Installation:
Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets. Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets.

View File

@ -1,43 +1,43 @@
{ {
"name": "d3/multilang", "name": "d3/multilang",
"description": "Text item handler module for OXID eShop.", "description": "Text item handler module for OXID eShop.",
"type": "oxideshop-module", "type": "oxideshop-module",
"keywords": [ "keywords": [
"oxid", "oxid",
"modules", "modules",
"eShop", "eShop",
"d3", "d3",
"test items" "test items"
], ],
"authors": [ "authors": [
{ {
"name": "D3 Data Development (Inh. Thomas Dartsch)", "name": "D3 Data Development (Inh. Thomas Dartsch)",
"email": "info@shopmodule.com", "email": "info@shopmodule.com",
"homepage": "http://www.d3data.de", "homepage": "http://www.d3data.de",
"role": "Owner" "role": "Owner"
} }
], ],
"support": { "support": {
"email": "support@shopmodule.com" "email": "support@shopmodule.com"
}, },
"homepage": "https://www.oxidmodule.com/", "homepage": "https://www.oxidmodule.com/",
"license": [ "license": [
"proprietary" "proprietary"
], ],
"extra": { "extra": {
"oxideshop": { "oxideshop": {
"source-directory": "/src", "source-directory": "/src",
"target-directory": "d3/multilang" "target-directory": "d3/multilang"
} }
}, },
"require": { "require": {
"php": "7.1 - 7.2", "ext-ionCube-Loader": "*", "php": "7.1 - 7.2", "ext-ionCube-Loader": "*",
"oxid-esales/oxideshop-metapackage-ce": "~6.0.2 || ~6.1.0", "oxid-esales/oxideshop-metapackage-ce": "~6.0.2 || ~6.1.0",
"d3/modcfg": "^5.1.1.400" "d3/modcfg": "^5.1.1.400"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"D3\\Multilang\\": "../../../source/modules/d3/multilang" "D3\\Multilang\\": "../../../source/modules/d3/multilang"
} }
} }
} }

View File

@ -1,6 +1,6 @@
Diese Modulversion stellt folgende Funktionen zur Verfügung: Diese Modulversion stellt folgende Funktionen zur Verfügung:
- datenbankbasierte Textbausteinverwaltung - datenbankbasierte Textbausteinverwaltung
- Pflege komfortabel über Adminbereich des Shops - Pflege komfortabel über Adminbereich des Shops
- Export in CSV- und Oxid-Format - Export in CSV- und Oxid-Format
- Einbindung über Modul-Erweiterung - Einbindung über Modul-Erweiterung

View File

@ -1,33 +1,33 @@
<?php <?php
namespace D3\Multilang\Application\Controller\Admin; namespace D3\Multilang\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_; use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_cfg_multilang extends d3_cfg_mod_ class d3_cfg_multilang extends d3_cfg_mod_
{ {
/** /**
* @return string * @return string
*/ */
public function render() public function render()
{ {
$this->addTplParam('sListClass', d3_cfg_multilang_list::class); $this->addTplParam('sListClass', d3_cfg_multilang_list::class);
$this->addTplParam('sMainClass', d3_cfg_multilang_imex::class); $this->addTplParam('sMainClass', d3_cfg_multilang_imex::class);
return parent::render(); return parent::render();
} }
} }

View File

@ -1,226 +1,226 @@
<?php <?php
namespace D3\Multilang\Application\Controller\Admin; namespace D3\Multilang\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main; use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod; use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception; use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Maintenance\d3clrtmp; use D3\ModCfg\Application\Model\Maintenance\d3clrtmp;
use D3\Multilang\Application\Model\d3_translations; use D3\Multilang\Application\Model\d3_translations;
use Doctrine\DBAL\DBALException; use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Registry;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_cfg_multilang_imex extends d3_cfg_mod_main class d3_cfg_multilang_imex extends d3_cfg_mod_main
{ {
protected $_sThisTemplate = 'd3_cfg_multilang_imex.tpl'; protected $_sThisTemplate = 'd3_cfg_multilang_imex.tpl';
protected $_sExportDir = 'export'; protected $_sExportDir = 'export';
protected $_sModId = 'd3_multilang'; protected $_sModId = 'd3_multilang';
protected $_sExportType = ''; protected $_sExportType = '';
protected $_sImportType = ''; protected $_sImportType = '';
protected $_sMimeType = ''; protected $_sMimeType = '';
protected $_aImportStatusMessage = array(); protected $_aImportStatusMessage = array();
protected $_sMenuItemTitle = 'd3mxmultilang'; protected $_sMenuItemTitle = 'd3mxmultilang';
protected $_sMenuSubItemTitle = 'd3tbclmultilang_imex'; protected $_sMenuSubItemTitle = 'd3tbclmultilang_imex';
public $aMessages = array(); public $aMessages = array();
/** /**
* @return string * @return string
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
*/ */
public function render() public function render()
{ {
$this->setImportStatusMessages(); $this->setImportStatusMessages();
$this->addTplParam('readonly', !$this->d3getSet()->isActive()); $this->addTplParam('readonly', !$this->d3getSet()->isActive());
$oLang = Registry::getLang(); $oLang = Registry::getLang();
$aLangList = Registry::getRequest()->getRequestEscapedParameter('lang'); $aLangList = Registry::getRequest()->getRequestEscapedParameter('lang');
if (isset($aLangList) && is_array($aLangList) && isset($aLangList['oxid'])) { if (isset($aLangList) && is_array($aLangList) && isset($aLangList['oxid'])) {
$iLangNr = $aLangList['oxid']; $iLangNr = $aLangList['oxid'];
} else { } else {
$iLangNr = 0; $iLangNr = 0;
} }
$this->_aViewData['aImportLanguages'] = $oLang->getLanguageArray($iLangNr); $this->_aViewData['aImportLanguages'] = $oLang->getLanguageArray($iLangNr);
return parent::render(); return parent::render();
} }
/** /**
* @param $sMessage * @param $sMessage
*/ */
public function addStatusMessage($sMessage) public function addStatusMessage($sMessage)
{ {
$this->aMessages[] = $sMessage; $this->aMessages[] = $sMessage;
} }
/** /**
* @return array * @return array
*/ */
public function getStatusMessages() public function getStatusMessages()
{ {
return $this->aMessages; return $this->aMessages;
} }
/** /**
* @param $sIdent * @param $sIdent
* *
* @return mixed * @return mixed
*/ */
public function getRequParam($sIdent) public function getRequParam($sIdent)
{ {
return Registry::getRequest()->getRequestEscapedParameter($sIdent); return Registry::getRequest()->getRequestEscapedParameter($sIdent);
} }
public function setImportStatusMessages() public function setImportStatusMessages()
{ {
$this->_aImportStatusMessage = array( $this->_aImportStatusMessage = array(
'csv' => array( 'csv' => array(
0 => 'D3_MULTILANG_NOT_SUCC', 0 => 'D3_MULTILANG_NOT_SUCC',
1 => 'D3_MULTILANG_SUCC_CSV', 1 => 'D3_MULTILANG_SUCC_CSV',
), ),
'xls' => array( 'xls' => array(
0 => 'D3_MULTILANG_NOT_SUCC', 0 => 'D3_MULTILANG_NOT_SUCC',
1 => 'D3_MULTILANG_SUCC_XLS', 1 => 'D3_MULTILANG_SUCC_XLS',
), ),
'oxid' => array( 'oxid' => array(
0 => 'D3_MULTILANG_NOT_SUCC', 0 => 'D3_MULTILANG_NOT_SUCC',
1 => 'D3_MULTILANG_SUCC_OXID', 1 => 'D3_MULTILANG_SUCC_OXID',
), ),
); );
} }
/** /**
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
*/ */
public function export() public function export()
{ {
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$this->_sExportType = Registry::getRequest()->getRequestEscapedParameter('exporttype'); $this->_sExportType = Registry::getRequest()->getRequestEscapedParameter('exporttype');
if ($this->getExportType() == 'csv') { if ($this->getExportType() == 'csv') {
$oTranslation->exportCSV(); $oTranslation->exportCSV();
} elseif ($this->getExportType() == 'oxid') { } elseif ($this->getExportType() == 'oxid') {
$oTranslation->exportOxid(); $oTranslation->exportOxid();
} }
} }
/** /**
* @return string * @return string
*/ */
public function getExportType() public function getExportType()
{ {
return $this->_sExportType; return $this->_sExportType;
} }
/** /**
* @throws DBALException * @throws DBALException
*/ */
public function import() public function import()
{ {
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$oTranslation->setController($this); $oTranslation->setController($this);
header("Content-Type: text/html; charset=UTF-8"); header("Content-Type: text/html; charset=UTF-8");
$this->_sImportType = Registry::getRequest()->getRequestEscapedParameter('type'); $this->_sImportType = Registry::getRequest()->getRequestEscapedParameter('type');
try { try {
if ($this->getImportType() == 'csv') { if ($this->getImportType() == 'csv') {
$this->_sMimeType = $_FILES['file']['type']['csv']; $this->_sMimeType = $_FILES['file']['type']['csv'];
$iImport = $oTranslation->importCSV(); $iImport = $oTranslation->importCSV();
$this->addTplParam('clrTmp', $iImport); $this->addTplParam('clrTmp', $iImport);
} elseif ($this->getImportType() == 'oxid') { } elseif ($this->getImportType() == 'oxid') {
$this->_sMimeType = $_FILES['file']['type']['oxid']; $this->_sMimeType = $_FILES['file']['type']['oxid'];
$iImport = $oTranslation->importOxid(); $iImport = $oTranslation->importOxid();
$this->addTplParam('clrTmp', $iImport); $this->addTplParam('clrTmp', $iImport);
} elseif ($this->getImportType() == 'installed') { } elseif ($this->getImportType() == 'installed') {
$iImport = $oTranslation->importInstalled(); $iImport = $oTranslation->importInstalled();
$this->addTplParam('clrTmp', $iImport); $this->addTplParam('clrTmp', $iImport);
} }
} catch (StandardException $e) { } catch (StandardException $e) {
Registry::getUtilsView()->addErrorToDisplay($e->getMessage()); Registry::getUtilsView()->addErrorToDisplay($e->getMessage());
} }
} }
/** /**
* @return string * @return string
*/ */
public function getImportType() public function getImportType()
{ {
return $this->_sImportType; return $this->_sImportType;
} }
/** /**
* @return null|string * @return null|string
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function getMimeType() public function getMimeType()
{ {
if ($this->_sMimeType && $this->d3getSet()->getValue('blMultilang_OutputMimeType')) { if ($this->_sMimeType && $this->d3getSet()->getValue('blMultilang_OutputMimeType')) {
return $this->_sMimeType; return $this->_sMimeType;
} }
return null; return null;
} }
/** /**
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
* @throws StandardException * @throws StandardException
*/ */
public function clearLangCache() public function clearLangCache()
{ {
/** @var d3clrtmp $oClrTmp */ /** @var d3clrtmp $oClrTmp */
$oClrTmp = oxNew(d3clrtmp::class); $oClrTmp = oxNew(d3clrtmp::class);
if ($oClrTmp->clearLangCache()) { if ($oClrTmp->clearLangCache()) {
$this->addStatusMessage(Registry::getLang()->translateString('D3_CFG_CLRTMP_SUCCESS')); $this->addStatusMessage(Registry::getLang()->translateString('D3_CFG_CLRTMP_SUCCESS'));
} }
} }
/** /**
* @return d3_cfg_mod * @return d3_cfg_mod
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function d3getSet() public function d3getSet()
{ {
return d3_cfg_mod::get($this->_sModId); return d3_cfg_mod::get($this->_sModId);
} }
} }

View File

@ -1,31 +1,31 @@
<?php <?php
namespace D3\Multilang\Application\Controller\Admin; namespace D3\Multilang\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_licence; use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_licence;
use D3\ModCfg\Application\Model\Log\d3log; use D3\ModCfg\Application\Model\Log\d3log;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_cfg_multilang_licence extends d3_cfg_mod_licence class d3_cfg_multilang_licence extends d3_cfg_mod_licence
{ {
protected $_sModId = 'd3_multilang'; protected $_sModId = 'd3_multilang';
protected $_hasNewsletterForm = false; protected $_hasNewsletterForm = false;
protected $_sLogType = d3log::ERROR; protected $_sLogType = d3log::ERROR;
protected $_sMenuItemTitle = 'd3mxmultilang'; protected $_sMenuItemTitle = 'd3mxmultilang';
protected $_sMenuSubItemTitle = 'd3tbcllib_support'; protected $_sMenuSubItemTitle = 'd3tbcllib_support';
} }

View File

@ -1,39 +1,39 @@
<?php <?php
namespace D3\Multilang\Application\Controller\Admin; namespace D3\Multilang\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list; use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_cfg_multilang_list extends d3_cfg_mod_list class d3_cfg_multilang_list extends d3_cfg_mod_list
{ {
protected $_blD3ShowLangSwitch = false; protected $_blD3ShowLangSwitch = false;
protected $_sMenuItemTitle = 'd3mxmultilang'; protected $_sMenuItemTitle = 'd3mxmultilang';
protected $_sMenuSubItemTitle = 'd3mxmultilang_settings'; protected $_sMenuSubItemTitle = 'd3mxmultilang_settings';
/** /**
* @return null * @return null
*/ */
public function render() public function render()
{ {
$sRet = parent::render(); $sRet = parent::render();
$this->addTplParam("default_edit", "d3_cfg_multilang_imex"); $this->addTplParam("default_edit", "d3_cfg_multilang_imex");
return $sRet; return $sRet;
} }
} }

View File

@ -1,217 +1,217 @@
<?php <?php
namespace D3\Multilang\Application\Controller\Admin; namespace D3\Multilang\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main; use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\d3pagenavigation; use D3\ModCfg\Application\Model\d3pagenavigation;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception; use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Maintenance\d3clrtmp; use D3\ModCfg\Application\Model\Maintenance\d3clrtmp;
use D3\Multilang\Application\Model\d3_translations; use D3\Multilang\Application\Model\d3_translations;
use Doctrine\DBAL\DBALException; use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Core\DatabaseProvider; use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\UtilsView; use OxidEsales\Eshop\Core\UtilsView;
use stdClass; use stdClass;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_cfg_multilang_main extends d3_cfg_mod_main class d3_cfg_multilang_main extends d3_cfg_mod_main
{ {
protected $_sThisTemplate = 'd3_cfg_multilang_main.tpl'; protected $_sThisTemplate = 'd3_cfg_multilang_main.tpl';
protected $_iListSize = 0; protected $_iListSize = 0;
protected $_iCurrListPos = 0; protected $_iCurrListPos = 0;
/** @var d3pagenavigation $_oPageNavigation */ /** @var d3pagenavigation $_oPageNavigation */
protected $_oPageNavigation; protected $_oPageNavigation;
protected $_sModId = 'd3_multilang'; protected $_sModId = 'd3_multilang';
public $iAdminListSize = 20; public $iAdminListSize = 20;
public $sSearchText; public $sSearchText;
public $sSearchType; public $sSearchType;
public $sItemType; public $sItemType;
public $iLangsel_left; public $iLangsel_left;
public $iLangsel_right; public $iLangsel_right;
public $aLangSel = array(); public $aLangSel = array();
protected $_sMenuItemTitle = 'd3mxmultilang'; protected $_sMenuItemTitle = 'd3mxmultilang';
protected $_sMenuSubItemTitle = 'd3tbclmultilang_translations'; protected $_sMenuSubItemTitle = 'd3tbclmultilang_translations';
/** /**
* @return string * @return string
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
*/ */
public function render() public function render()
{ {
$sRet = parent::render(); $sRet = parent::render();
$this->addTplParam('readonly', !$this->d3getSet()->isActive()); $this->addTplParam('readonly', !$this->d3getSet()->isActive());
DatabaseProvider::getDb()->Execute("SET NAMES 'utf8'"); DatabaseProvider::getDb()->Execute("SET NAMES 'utf8'");
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$this->iAdminListSize = 20; $this->iAdminListSize = 20;
$iLangOk = 0; $iLangOk = 0;
$this->sSearchText = Registry::getRequest()->getRequestEscapedParameter('sSearchText'); $this->sSearchText = Registry::getRequest()->getRequestEscapedParameter('sSearchText');
$this->sSearchType = Registry::getRequest()->getRequestEscapedParameter('sSearchType'); $this->sSearchType = Registry::getRequest()->getRequestEscapedParameter('sSearchType');
$this->sItemType = Registry::getRequest()->getRequestEscapedParameter('itemtype'); $this->sItemType = Registry::getRequest()->getRequestEscapedParameter('itemtype');
$this->addTplParam('sItemtype', $this->sItemType); $this->addTplParam('sItemtype', $this->sItemType);
if ($this->sSearchText) { if ($this->sSearchText) {
$this->addTplParam('sSearchText', $this->sSearchText); $this->addTplParam('sSearchText', $this->sSearchText);
$this->addTplParam('sSearchType', $this->sSearchType); $this->addTplParam('sSearchType', $this->sSearchType);
$this->addTplParam('whereparam', "&amp;sSearchText=" . $this->sSearchText); $this->addTplParam('whereparam', "&amp;sSearchText=" . $this->sSearchText);
} }
if (Registry::getSession()->getVariable('langsel_left') !== false if (Registry::getSession()->getVariable('langsel_left') !== false
&& Registry::getSession()->getVariable('langsel_left') != '' && Registry::getSession()->getVariable('langsel_left') != ''
) { ) {
$this->iLangsel_left = Registry::getSession()->getVariable('langsel_left'); $this->iLangsel_left = Registry::getSession()->getVariable('langsel_left');
$this->addTplParam('langsel_left', $this->iLangsel_left); $this->addTplParam('langsel_left', $this->iLangsel_left);
$iLangOk++; $iLangOk++;
} elseif ($this->iLangsel_left !== false && $this->iLangsel_left != '') { } elseif ($this->iLangsel_left !== false && $this->iLangsel_left != '') {
$this->addTplParam('langsel_left', $this->iLangsel_left); $this->addTplParam('langsel_left', $this->iLangsel_left);
$iLangOk++; $iLangOk++;
} else { } else {
$this->addTplParam('langsel_left', 'none'); $this->addTplParam('langsel_left', 'none');
} }
if (Registry::getSession()->getVariable('langsel_right') !== false if (Registry::getSession()->getVariable('langsel_right') !== false
&& Registry::getSession()->getVariable('langsel_right') != '' && Registry::getSession()->getVariable('langsel_right') != ''
) { ) {
$this->iLangsel_right = Registry::getSession()->getVariable('langsel_right'); $this->iLangsel_right = Registry::getSession()->getVariable('langsel_right');
$this->addTplParam('langsel_right', $this->iLangsel_right); $this->addTplParam('langsel_right', $this->iLangsel_right);
$iLangOk++; $iLangOk++;
} elseif ($this->iLangsel_right !== false && $this->iLangsel_right != '') { } elseif ($this->iLangsel_right !== false && $this->iLangsel_right != '') {
$this->addTplParam('langsel_right', $this->iLangsel_right); $this->addTplParam('langsel_right', $this->iLangsel_right);
$iLangOk++; $iLangOk++;
} else { } else {
$this->addTplParam('langsel_right', 'none'); $this->addTplParam('langsel_right', 'none');
} }
// ToDo: Suche mit in Anzahl aufnehmen // ToDo: Suche mit in Anzahl aufnehmen
$oTranslation->setSearchFilter( $oTranslation->setSearchFilter(
$this->iLangsel_left, $this->iLangsel_left,
$this->iLangsel_right, $this->iLangsel_right,
$this->sSearchText, $this->sSearchText,
$this->sSearchType, $this->sSearchType,
$this->sItemType $this->sItemType
); );
$this->_iListSize = $oTranslation->getItemCount(); $this->_iListSize = $oTranslation->getItemCount();
/** @var d3pagenavigation _oPageNavigation */ /** @var d3pagenavigation _oPageNavigation */
$this->_oPageNavigation = oxNew(d3pagenavigation::class, $this->_iListSize, $this->iAdminListSize); $this->_oPageNavigation = oxNew(d3pagenavigation::class, $this->_iListSize, $this->iAdminListSize);
$this->_oPageNavigation->addUrlParam('sSearchText', $this->sSearchText); $this->_oPageNavigation->addUrlParam('sSearchText', $this->sSearchText);
$this->_oPageNavigation->addUrlParam('sSearchType', $this->sSearchType); $this->_oPageNavigation->addUrlParam('sSearchType', $this->sSearchType);
$this->_oPageNavigation->generate(); $this->_oPageNavigation->generate();
$this->_iCurrListPos = $this->_oPageNavigation->getCurrentItem(); $this->_iCurrListPos = $this->_oPageNavigation->getCurrentItem();
$this->addTplParam('d3pagenavi', $this->_oPageNavigation); $this->addTplParam('d3pagenavi', $this->_oPageNavigation);
$this->addTplParam('iPage', $this->_oPageNavigation->getCurrentPage()); $this->addTplParam('iPage', $this->_oPageNavigation->getCurrentPage());
$this->addTplParam('aLanguages', Registry::getLang()->getlanguageArray()); $this->addTplParam('aLanguages', Registry::getLang()->getlanguageArray());
if ($iLangOk == 2) { if ($iLangOk == 2) {
$aTranslList = $oTranslation->getTranslationArray( $aTranslList = $oTranslation->getTranslationArray(
false, false,
true, true,
true, true,
$this->_iCurrListPos - 1, $this->_iCurrListPos - 1,
$this->iAdminListSize $this->iAdminListSize
); );
$aTranslations = array(); $aTranslations = array();
if (is_array($aTranslList[$this->iLangsel_left]) && count($aTranslList[$this->iLangsel_left])) { if (is_array($aTranslList[$this->iLangsel_left]) && count($aTranslList[$this->iLangsel_left])) {
foreach ($aTranslList[$this->iLangsel_left] as $sIdent => $sTranslation) { foreach ($aTranslList[$this->iLangsel_left] as $sIdent => $sTranslation) {
$oTranslation = new stdClass; $oTranslation = new stdClass;
$oTranslation->key = $aTranslList['OXID'][$sIdent]; $oTranslation->key = $aTranslList['OXID'][$sIdent];
$oTranslation->left = htmlentities($sTranslation, ENT_COMPAT, 'UTF-8'); $oTranslation->left = htmlentities($sTranslation, ENT_COMPAT, 'UTF-8');
$oTranslation->right = htmlentities($aTranslList[$this->iLangsel_right][$sIdent], ENT_COMPAT, 'UTF-8'); $oTranslation->right = htmlentities($aTranslList[$this->iLangsel_right][$sIdent], ENT_COMPAT, 'UTF-8');
$oTranslation->original_left = $aTranslList['orig_'.$this->iLangsel_left][$sIdent]; $oTranslation->original_left = $aTranslList['orig_'.$this->iLangsel_left][$sIdent];
$oTranslation->original_right = $aTranslList['orig_'.$this->iLangsel_right][$sIdent]; $oTranslation->original_right = $aTranslList['orig_'.$this->iLangsel_right][$sIdent];
$aTranslations[$sIdent] = $oTranslation; $aTranslations[$sIdent] = $oTranslation;
} }
} }
$this->addTplParam('aTranslations', $aTranslations); $this->addTplParam('aTranslations', $aTranslations);
} }
$this->addTplParam('listsize', $this->_iListSize); $this->addTplParam('listsize', $this->_iListSize);
return $sRet; return $sRet;
} }
public function languageselect() public function languageselect()
{ {
$this->aLangSel = Registry::getRequest()->getRequestEscapedParameter('langsel'); $this->aLangSel = Registry::getRequest()->getRequestEscapedParameter('langsel');
if ($this->aLangSel['left'] !== false && $this->aLangSel['left'] != '') { if ($this->aLangSel['left'] !== false && $this->aLangSel['left'] != '') {
Registry::getSession()->setVariable('langsel_left', $this->aLangSel['left']); Registry::getSession()->setVariable('langsel_left', $this->aLangSel['left']);
} }
if ($this->aLangSel['right'] !== false && $this->aLangSel['right'] != '') { if ($this->aLangSel['right'] !== false && $this->aLangSel['right'] != '') {
Registry::getSession()->setVariable('langsel_right', $this->aLangSel['right']); Registry::getSession()->setVariable('langsel_right', $this->aLangSel['right']);
} }
} }
public function save() public function save()
{ {
$this->addTplParam('msg', 'success'); $this->addTplParam('msg', 'success');
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$oTranslation->saveItemList(); $oTranslation->saveItemList();
} }
/** /**
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
*/ */
public function clearLangCache() public function clearLangCache()
{ {
/** @var d3clrtmp $oClrTmp */ /** @var d3clrtmp $oClrTmp */
$oClrTmp = oxNew(d3clrtmp::class); $oClrTmp = oxNew(d3clrtmp::class);
if ($oClrTmp->clearLangCache()) { if ($oClrTmp->clearLangCache()) {
Registry::get(UtilsView::class)->addErrorToDisplay('D3_CFG_CLRTMP_SUCCESS'); Registry::get(UtilsView::class)->addErrorToDisplay('D3_CFG_CLRTMP_SUCCESS');
} }
} }
/** /**
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
*/ */
public function deleteentry() public function deleteentry()
{ {
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$sIdent = Registry::getRequest()->getRequestEscapedParameter('deloxid'); $sIdent = Registry::getRequest()->getRequestEscapedParameter('deloxid');
$oTranslation->delete($sIdent); $oTranslation->delete($sIdent);
} }
} }

View File

@ -1,11 +1,11 @@
[{$smarty.block.parent}] [{$smarty.block.parent}]
<tr> <tr>
<td class="edittext" valign="top"> <td class="edittext" valign="top">
<label for="importmultilang">[{oxmultilang ident="D3_MULTILANG_CLEARTMP_IMPORT"}]</label> <label for="importmultilang">[{oxmultilang ident="D3_MULTILANG_CLEARTMP_IMPORT"}]</label>
</td> </td>
<td class="edittext" style="vertical-align: top;"> <td class="edittext" style="vertical-align: top;">
<input type="hidden" name="importmultilang" value="0"> <input type="hidden" name="importmultilang" value="0">
<input onClick="deselect_combineditem();" type="checkbox" id="importmultilang" value="1" class="edittext" name="importmultilang" [{if $importMultilang}]checked[{/if}][{$readonly}] [{if $blDevMode}]disabled [{/if}]> <input onClick="deselect_combineditem();" type="checkbox" id="importmultilang" value="1" class="edittext" name="importmultilang" [{if $importMultilang}]checked[{/if}][{$readonly}] [{if $blDevMode}]disabled [{/if}]>
</td> </td>
</tr> </tr>

View File

@ -1,2 +1,2 @@
[{$smarty.block.parent}] [{$smarty.block.parent}]
document.getElementById('importmultilang').checked = false; document.getElementById('importmultilang').checked = false;

View File

@ -1,94 +1,94 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
$sLangName = 'Deutsch'; $sLangName = 'Deutsch';
// ------------------------------- // -------------------------------
// RESOURCE IDENTITFIER = STRING // RESOURCE IDENTITFIER = STRING
// ------------------------------- // -------------------------------
$aLang = array( $aLang = array(
'charset' => 'UTF-8', 'charset' => 'UTF-8',
'd3mxmultilang' => '<i class=\'fa fa-comments\'></i> Übersetzungsassistent', 'd3mxmultilang' => '<i class=\'fa fa-comments\'></i> Übersetzungsassistent',
'd3mxmultilang_settings' => 'Einstellungen', 'd3mxmultilang_settings' => 'Einstellungen',
'd3tbclmultilang_translations' => 'Übersetzungen', 'd3tbclmultilang_translations' => 'Übersetzungen',
'd3tbclmultilang_imex' => 'Import / Export', 'd3tbclmultilang_imex' => 'Import / Export',
'D3_MULTILANG_TRANSL' => 'Übersetzungsassistent', 'D3_MULTILANG_TRANSL' => 'Übersetzungsassistent',
'D3_MULTILANG_METADATA_TITLE' => 'D³ Übersetzungsassistent', 'D3_MULTILANG_METADATA_TITLE' => 'D³ Übersetzungsassistent',
'D3_MULTILANG_METADATA_DESC' => 'Verwalten Sie die Textbausteine des Shop bequem im Adminbereich', 'D3_MULTILANG_METADATA_DESC' => 'Verwalten Sie die Textbausteine des Shop bequem im Adminbereich',
'D3_MULTILANG_SEARCH' => 'Suche', 'D3_MULTILANG_SEARCH' => 'Suche',
'D3_MULTILANG_SEARCH_FURTHER' => 'weitere Suchoptionen', 'D3_MULTILANG_SEARCH_FURTHER' => 'weitere Suchoptionen',
'D3_MULTILANG_CHOOSELANGFIRST' => 'Bitte wählen Sie zuerst die beiden Sprachen.', 'D3_MULTILANG_CHOOSELANGFIRST' => 'Bitte wählen Sie zuerst die beiden Sprachen.',
'D3_MULTILANG_SEARCHDESC' => 'Suche in den gewählten Sprachen<br>und den Idents:', 'D3_MULTILANG_SEARCHDESC' => 'Suche in den gewählten Sprachen<br>und den Idents:',
'D3_MULTILANG_SEARCHSTART' => 'Suche starten', 'D3_MULTILANG_SEARCHSTART' => 'Suche starten',
'D3_MULTILANG_SEARCHEMPTYSTART' => 'suche leere Einträge', 'D3_MULTILANG_SEARCHEMPTYSTART' => 'suche leere Einträge',
'D3_MULTILANG_SEARCHIDENTICALSTART' => 'suche identische Einträge', 'D3_MULTILANG_SEARCHIDENTICALSTART' => 'suche identische Einträge',
'D3_MULTILANG_SEARCHORIGINALSTART' => 'suche originale Einträge', 'D3_MULTILANG_SEARCHORIGINALSTART' => 'suche originale Einträge',
'D3_MULTILANG_SEARCHALL' => 'alle Einträge anzeigen', 'D3_MULTILANG_SEARCHALL' => 'alle Einträge anzeigen',
'D3_MULTILANG_SEARCHFRONTEND' => 'nur Frontend-Einträge', 'D3_MULTILANG_SEARCHFRONTEND' => 'nur Frontend-Einträge',
'D3_MULTILANG_SEARCHBACKEND' => 'nur Backend-Einträge', 'D3_MULTILANG_SEARCHBACKEND' => 'nur Backend-Einträge',
'D3_MULTILANG_LANGSELECT' => 'Sprachwahl', 'D3_MULTILANG_LANGSELECT' => 'Sprachwahl',
'D3_MULTILANG_SELECTLANGUAGE' => 'Sprache wählen', 'D3_MULTILANG_SELECTLANGUAGE' => 'Sprache wählen',
'D3_MULTILANG_NEWITEM' => 'Neueinträge', 'D3_MULTILANG_NEWITEM' => 'Neueinträge',
'D3_MULTILANG_SAVE' => 'Speichern', 'D3_MULTILANG_SAVE' => 'Speichern',
'D3_MULTILANG_EXPORT' => 'Export', 'D3_MULTILANG_EXPORT' => 'Export',
'D3_MULTILANG_FILETYPECSV' => 'CSV-Datei', 'D3_MULTILANG_FILETYPECSV' => 'CSV-Datei',
'D3_MULTILANG_FILETYPEOXID' => 'Oxid eShop Format', 'D3_MULTILANG_FILETYPEOXID' => 'Oxid eShop Format',
'D3_MULTILANG_FILETYPEINSTALLED' => 'installierte Sprachbausteindateien', 'D3_MULTILANG_FILETYPEINSTALLED' => 'installierte Sprachbausteindateien',
'D3_MULTILANG_STARTEXPORT' => 'Export starten', 'D3_MULTILANG_STARTEXPORT' => 'Export starten',
'D3_MULTILANG_IMPORT' => 'Import', 'D3_MULTILANG_IMPORT' => 'Import',
'D3_MULTILANG_IMPORTSTARTCSV' => 'CSV-Datei importieren', 'D3_MULTILANG_IMPORTSTARTCSV' => 'CSV-Datei importieren',
'D3_MULTILANG_IMPORTSTARTOXID' => 'Oxid-Datei importieren', 'D3_MULTILANG_IMPORTSTARTOXID' => 'Oxid-Datei importieren',
'D3_MULTILANG_IMPORTSTARTINSTALLED' => 'installierte Dateien importieren', 'D3_MULTILANG_IMPORTSTARTINSTALLED' => 'installierte Dateien importieren',
'D3_MULTILANG_IMPORTOXIDLANG' => 'einfügen in Sprache', 'D3_MULTILANG_IMPORTOXIDLANG' => 'einfügen in Sprache',
'D3_MULTILANG_IMPORTOVERWRITE' => 'Alteinträge überschreiben', 'D3_MULTILANG_IMPORTOVERWRITE' => 'Alteinträge überschreiben',
'D3_MULTILANG_SETORIGINAL' => 'Importe sind Originaleinträge', 'D3_MULTILANG_SETORIGINAL' => 'Importe sind Originaleinträge',
'D3_MULTILANG_IGNOREMIME' => 'Dateiformatprüfung ignorieren', 'D3_MULTILANG_IGNOREMIME' => 'Dateiformatprüfung ignorieren',
'D3_MULTILANG_IGNOREMIME_DESC' => 'Um Importfehler zu vermeiden, wird das Format der Importdatei überprüft. In manchen Fällen kann es vorkommen, dass das Format passt, jedoch nicht geprüft werden kann. Stellen Sie dann sicher, dass Ihre Importdatei passend ist und aktivieren Sie diese Option.', 'D3_MULTILANG_IGNOREMIME_DESC' => 'Um Importfehler zu vermeiden, wird das Format der Importdatei überprüft. In manchen Fällen kann es vorkommen, dass das Format passt, jedoch nicht geprüft werden kann. Stellen Sie dann sicher, dass Ihre Importdatei passend ist und aktivieren Sie diese Option.',
'D3_MULTILANG_ISADMIN' => 'Importe sind Einträge des Adminbereichs', 'D3_MULTILANG_ISADMIN' => 'Importe sind Einträge des Adminbereichs',
'D3_MULTILANG_SUCC_CSV' => '%d Einträge aus CSV-Datei importiert. Bitte leeren Sie das TMP-Verzeichnis.', 'D3_MULTILANG_SUCC_CSV' => '%d Einträge aus CSV-Datei importiert. Bitte leeren Sie das TMP-Verzeichnis.',
'D3_MULTILANG_ERR_CSV_MIME' => '%d Einträge aus CSV-Datei importiert. Dateiformat kann nicht geprüft werden.', 'D3_MULTILANG_ERR_CSV_MIME' => '%d Einträge aus CSV-Datei importiert. Dateiformat kann nicht geprüft werden.',
'D3_MULTILANG_SUCC_OXID' => '%d Einträge aus Oxid-Datei importiert. Bitte leeren Sie das TMP-Verzeichnis.', 'D3_MULTILANG_SUCC_OXID' => '%d Einträge aus Oxid-Datei importiert. Bitte leeren Sie das TMP-Verzeichnis.',
'D3_MULTILANG_ERR_OXID_MIME' => '%d Einträge aus Oxid-Datei importiert. Dateiformat kann nicht geprüft werden.', 'D3_MULTILANG_ERR_OXID_MIME' => '%d Einträge aus Oxid-Datei importiert. Dateiformat kann nicht geprüft werden.',
'D3_MULTILANG_SUCC_INSTALLED' => '%d Einträge aus installierten Dateien importiert. Bitte leeren Sie das TMP-Verzeichnis.', 'D3_MULTILANG_SUCC_INSTALLED' => '%d Einträge aus installierten Dateien importiert. Bitte leeren Sie das TMP-Verzeichnis.',
'D3_MULTILANG_SUCCEXP' => 'exportiert nach: %s', 'D3_MULTILANG_SUCCEXP' => 'exportiert nach: %s',
'D3_MULTILANG_DEMOEXP' => 'Im Demomodus des Moduls steht der Export leider nicht zur Verfügung.', 'D3_MULTILANG_DEMOEXP' => 'Im Demomodus des Moduls steht der Export leider nicht zur Verfügung.',
'D3_MULTILANG_MODCFG_SAVEMISS' => 'fehlende Sprachbausteine werden automatisch angelegt', 'D3_MULTILANG_MODCFG_SAVEMISS' => 'fehlende Sprachbausteine werden automatisch angelegt',
'D3_MULTILANG_MODCFG_TRIMWHITESPACES' => 'entferne Leerzeichen am Anfang und Ende der Sprachbausteine', 'D3_MULTILANG_MODCFG_TRIMWHITESPACES' => 'entferne Leerzeichen am Anfang und Ende der Sprachbausteine',
'D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS' => 'Mapping-Einträge als eigenständige Sprachbausteine importieren', 'D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS' => 'Mapping-Einträge als eigenständige Sprachbausteine importieren',
'D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS_DESC' => 'Die bisherigen weitergeleiteten Spracheinträge werden als eigenständige Übersetzungen in die Datenbank aufgenommen. Diese können nun (unabhängig von Ihrem Elterneintrag) geändert werden. Ohne diese Option werden diese Mapping-Einträge ignoriert.', 'D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS_DESC' => 'Die bisherigen weitergeleiteten Spracheinträge werden als eigenständige Übersetzungen in die Datenbank aufgenommen. Diese können nun (unabhängig von Ihrem Elterneintrag) geändert werden. Ohne diese Option werden diese Mapping-Einträge ignoriert.',
'D3_MULTILANG_MODCFG_MIME' => 'Import: erkannten Dateityp ausgeben (debug)', 'D3_MULTILANG_MODCFG_MIME' => 'Import: erkannten Dateityp ausgeben (debug)',
'D3_MULTILANG_MODCFG_SEPARATOR' => 'zu verwendender CSV-Feldtrenner', 'D3_MULTILANG_MODCFG_SEPARATOR' => 'zu verwendender CSV-Feldtrenner',
'D3_MULTILANG_MODCFG_ENCLOSER' => 'zu verwendendes Textbegrenzungszeichen', 'D3_MULTILANG_MODCFG_ENCLOSER' => 'zu verwendendes Textbegrenzungszeichen',
'D3_MULTILANG_SETTINGS' => 'Grundeinstellungen', 'D3_MULTILANG_SETTINGS' => 'Grundeinstellungen',
'D3_MULTILANG_CLEARLANGCACHE' => 'Zum Aktivieren der neuen Sprachvariablen ist ist das Leeren des Sprach-Caches nötig. Soll dies jetzt durchgeführt werden?', 'D3_MULTILANG_CLEARLANGCACHE' => 'Zum Aktivieren der neuen Sprachvariablen ist ist das Leeren des Sprach-Caches nötig. Soll dies jetzt durchgeführt werden?',
'D3_MULTILANG_NEWFIELDERROR' => 'Die markierten Einträge konnten nicht eingefügt werden, da der Ident schon verwendet wird.', 'D3_MULTILANG_NEWFIELDERROR' => 'Die markierten Einträge konnten nicht eingefügt werden, da der Ident schon verwendet wird.',
'D3_MULTILANG_SUCC_COUNT' => ' Einträge - ', 'D3_MULTILANG_SUCC_COUNT' => ' Einträge - ',
'D3_MULTILANG_XLS_CREATOR' => 'D³ Übersetzungsassistent Modul für Oxid eShop', 'D3_MULTILANG_XLS_CREATOR' => 'D³ Übersetzungsassistent Modul für Oxid eShop',
'D3_MULTILANG_XLS_TITLE' => 'Übersetzungen', 'D3_MULTILANG_XLS_TITLE' => 'Übersetzungen',
'D3_MULTILANG_XLS_LOCALEERR' => 'Kann Spracheinstellungen "%s" nicht setzen - Einstellung ist "en_us"', 'D3_MULTILANG_XLS_LOCALEERR' => 'Kann Spracheinstellungen "%s" nicht setzen - Einstellung ist "en_us"',
'D3_MULTILANG_XLS_LANG' => 'Sprache', 'D3_MULTILANG_XLS_LANG' => 'Sprache',
'D3_MULTILANG_CLEARTMP_IMPORT' => '<img src="../modules/d3/modcfg/public/d3logo.php" alt="D³" title="D³ Data Development"> <b>Übersetzungsassistent</b>: Sprachbausteine vorher importieren', 'D3_MULTILANG_CLEARTMP_IMPORT' => '<img src="../modules/d3/modcfg/public/d3logo.php" alt="D³" title="D³ Data Development"> <b>Übersetzungsassistent</b>: Sprachbausteine vorher importieren',
'D3_MULTILANG_INSTALL_EXECIMPORT' => 'Vor der Verwendung des Moduls ist es erforderlich, die verwendeten Sprachbausteine zu importieren. Lassen Sie dies im Installationsprozess automatisch durchführen oder starten Sie den Import vor der Modulaktivierung im Adminbereich Ihres Shops.', 'D3_MULTILANG_INSTALL_EXECIMPORT' => 'Vor der Verwendung des Moduls ist es erforderlich, die verwendeten Sprachbausteine zu importieren. Lassen Sie dies im Installationsprozess automatisch durchführen oder starten Sie den Import vor der Modulaktivierung im Adminbereich Ihres Shops.',
'D3_MULTILANG_INSTALL_IMPORTSUCC' => '%i Sprachbausteine aus vorhandenen Dateien importiert', 'D3_MULTILANG_INSTALL_IMPORTSUCC' => '%i Sprachbausteine aus vorhandenen Dateien importiert',
'D3_MULTILANG_INSTALL_NOCSCOLLATION' => 'Die Datenbank stellt keine case-sensitive Kollation für das Feld %1$s der Tabelle %2$s bereit. Bitte stellen Sie eine passende Kollation bereit und passen das Datenbankfeld darauf hin an. Bis dahin können keine gleichnamigen Idents mit unterschiedlicher Groß- und Kleinschreibung verwendet werden.', 'D3_MULTILANG_INSTALL_NOCSCOLLATION' => 'Die Datenbank stellt keine case-sensitive Kollation für das Feld %1$s der Tabelle %2$s bereit. Bitte stellen Sie eine passende Kollation bereit und passen das Datenbankfeld darauf hin an. Bis dahin können keine gleichnamigen Idents mit unterschiedlicher Groß- und Kleinschreibung verwendet werden.',
'D3_MULTILANG_EXC_NOIMPORTFILE' => 'Es wurde keine Importdatei aufgeladen.' 'D3_MULTILANG_EXC_NOIMPORTFILE' => 'Es wurde keine Importdatei aufgeladen.'
); );

View File

@ -1,91 +1,91 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
$sLangName = 'Deutsch'; $sLangName = 'Deutsch';
// ------------------------------- // -------------------------------
// RESOURCE IDENTITFIER = STRING // RESOURCE IDENTITFIER = STRING
// ------------------------------- // -------------------------------
$aLang = array( $aLang = array(
'charset' => 'UTF-8', 'charset' => 'UTF-8',
'd3mxmultilang' => '<i class=\'fa fa-comments\'></i> Translation Wizzard', 'd3mxmultilang' => '<i class=\'fa fa-comments\'></i> Translation Wizzard',
'd3mxmultilang_settings' => 'Settings', 'd3mxmultilang_settings' => 'Settings',
'd3tbclmultilang_translations' => 'Translations', 'd3tbclmultilang_translations' => 'Translations',
'd3tbclmultilang_imex' => 'Import / Export', 'd3tbclmultilang_imex' => 'Import / Export',
'D3_MULTILANG_TRANSL' => 'Translation Wizzard', 'D3_MULTILANG_TRANSL' => 'Translation Wizzard',
'D3_MULTILANG_METADATA_TITLE' => 'D³ Translation Wizzard', 'D3_MULTILANG_METADATA_TITLE' => 'D³ Translation Wizzard',
'D3_MULTILANG_METADATA_DESC' => 'Manage all shop multilang items comfortable in admin panel.', 'D3_MULTILANG_METADATA_DESC' => 'Manage all shop multilang items comfortable in admin panel.',
'D3_MULTILANG_SEARCH' => 'search', 'D3_MULTILANG_SEARCH' => 'search',
'D3_MULTILANG_CHOOSELANGFIRST' => 'Please choose both languages first.', 'D3_MULTILANG_CHOOSELANGFIRST' => 'Please choose both languages first.',
'D3_MULTILANG_SEARCHDESC' => 'Search in selected languages<br>and in idents:', 'D3_MULTILANG_SEARCHDESC' => 'Search in selected languages<br>and in idents:',
'D3_MULTILANG_SEARCHSTART' => 'start search', 'D3_MULTILANG_SEARCHSTART' => 'start search',
'D3_MULTILANG_SEARCHEMPTYSTART' => 'search empty items', 'D3_MULTILANG_SEARCHEMPTYSTART' => 'search empty items',
'D3_MULTILANG_SEARCHIDENTICALSTART' => 'search identical items', 'D3_MULTILANG_SEARCHIDENTICALSTART' => 'search identical items',
'D3_MULTILANG_SEARCHALL' => 'show all items', 'D3_MULTILANG_SEARCHALL' => 'show all items',
'D3_MULTILANG_SEARCHFRONTEND' => 'show frontend items only', 'D3_MULTILANG_SEARCHFRONTEND' => 'show frontend items only',
'D3_MULTILANG_SEARCHBACKEND' => 'show backend items only', 'D3_MULTILANG_SEARCHBACKEND' => 'show backend items only',
'D3_MULTILANG_LANGSELECT' => 'language selection', 'D3_MULTILANG_LANGSELECT' => 'language selection',
'D3_MULTILANG_SELECTLANGUAGE' => 'choose language', 'D3_MULTILANG_SELECTLANGUAGE' => 'choose language',
'D3_MULTILANG_NEWITEM' => 'new items', 'D3_MULTILANG_NEWITEM' => 'new items',
'D3_MULTILANG_SAVE' => 'save', 'D3_MULTILANG_SAVE' => 'save',
'D3_MULTILANG_EXPORT' => 'export', 'D3_MULTILANG_EXPORT' => 'export',
'D3_MULTILANG_FILETYPECSV' => 'CSV file', 'D3_MULTILANG_FILETYPECSV' => 'CSV file',
'D3_MULTILANG_FILETYPEOXID' => 'Oxid eShop Format', 'D3_MULTILANG_FILETYPEOXID' => 'Oxid eShop Format',
'D3_MULTILANG_FILETYPEINSTALLED' => 'installed language item files', 'D3_MULTILANG_FILETYPEINSTALLED' => 'installed language item files',
'D3_MULTILANG_STARTEXPORT' => 'start export', 'D3_MULTILANG_STARTEXPORT' => 'start export',
'D3_MULTILANG_IMPORT' => 'import', 'D3_MULTILANG_IMPORT' => 'import',
'D3_MULTILANG_IMPORTSTARTCSV' => 'import CSV file', 'D3_MULTILANG_IMPORTSTARTCSV' => 'import CSV file',
'D3_MULTILANG_IMPORTSTARTOXID' => 'import Oxid file', 'D3_MULTILANG_IMPORTSTARTOXID' => 'import Oxid file',
'D3_MULTILANG_IMPORTSTARTINSTALLED' => 'import installed language item files', 'D3_MULTILANG_IMPORTSTARTINSTALLED' => 'import installed language item files',
'D3_MULTILANG_IMPORTOXIDLANG' => 'insert in language', 'D3_MULTILANG_IMPORTOXIDLANG' => 'insert in language',
'D3_MULTILANG_IMPORTOVERWRITE' => 'overwrite existing items', 'D3_MULTILANG_IMPORTOVERWRITE' => 'overwrite existing items',
'D3_MULTILANG_SETORIGINAL' => 'imported items are originals', 'D3_MULTILANG_SETORIGINAL' => 'imported items are originals',
'D3_MULTILANG_IGNOREMIME' => 'ignore file format', 'D3_MULTILANG_IGNOREMIME' => 'ignore file format',
'D3_MULTILANG_IGNOREMIME_DESC' => 'To avoid import errors, the format of the import file is checked. In some cases, the format may fit, but it can not be verified. Then make sure that your import file is suitable and activate this option.', 'D3_MULTILANG_IGNOREMIME_DESC' => 'To avoid import errors, the format of the import file is checked. In some cases, the format may fit, but it can not be verified. Then make sure that your import file is suitable and activate this option.',
'D3_MULTILANG_ISADMIN' => 'imported items are admin panel translations', 'D3_MULTILANG_ISADMIN' => 'imported items are admin panel translations',
'D3_MULTILANG_SUCC_CSV' => '%d items from CSV file imported. Please clear the TMP folder.', 'D3_MULTILANG_SUCC_CSV' => '%d items from CSV file imported. Please clear the TMP folder.',
'D3_MULTILANG_ERR_CSV_MIME' => '%d items from CSV file imported. Can\'t check file format.', 'D3_MULTILANG_ERR_CSV_MIME' => '%d items from CSV file imported. Can\'t check file format.',
'D3_MULTILANG_SUCC_OXID' => '%d items from OXID file imported. Please clear the TMP folder.', 'D3_MULTILANG_SUCC_OXID' => '%d items from OXID file imported. Please clear the TMP folder.',
'D3_MULTILANG_ERR_OXID_MIME' => '%d items from OXID file imported. Can\'t check file format.', 'D3_MULTILANG_ERR_OXID_MIME' => '%d items from OXID file imported. Can\'t check file format.',
'D3_MULTILANG_SUCC_INSTALLED' => '%d items from installed language files imported. Please clear the TMP folder.', 'D3_MULTILANG_SUCC_INSTALLED' => '%d items from installed language files imported. Please clear the TMP folder.',
'D3_MULTILANG_NOT_SUCC' => 'Wrong file format, import canceled. Please check the file.', 'D3_MULTILANG_NOT_SUCC' => 'Wrong file format, import canceled. Please check the file.',
'D3_MULTILANG_SUCCEXP' => 'exported to: %s', 'D3_MULTILANG_SUCCEXP' => 'exported to: %s',
'D3_MULTILANG_DEMOEXP' => 'In the demo mode of the module, the export is unfortunately not available.', 'D3_MULTILANG_DEMOEXP' => 'In the demo mode of the module, the export is unfortunately not available.',
'D3_MULTILANG_MODCFG_SAVEMISS' => 'missing language items were created automatically', 'D3_MULTILANG_MODCFG_SAVEMISS' => 'missing language items were created automatically',
'D3_MULTILANG_MODCFG_TRIMWHITESPACES' => 'remove whitespaces at the beginning and the end of translated text', 'D3_MULTILANG_MODCFG_TRIMWHITESPACES' => 'remove whitespaces at the beginning and the end of translated text',
'D3_MULTILANG_MODCFG_MIME' => 'Import: display found filetype (debug)', 'D3_MULTILANG_MODCFG_MIME' => 'Import: display found filetype (debug)',
'D3_MULTILANG_MODCFG_SEPARATOR' => 'CSV field separator', 'D3_MULTILANG_MODCFG_SEPARATOR' => 'CSV field separator',
'D3_MULTILANG_MODCFG_ENCLOSER' => 'text enclosure', 'D3_MULTILANG_MODCFG_ENCLOSER' => 'text enclosure',
'D3_MULTILANG_SETTINGS' => 'base settings', 'D3_MULTILANG_SETTINGS' => 'base settings',
'D3_MULTILANG_CLEARLANGCACHE' => "To activate your new language items it's required, to clear the language cache in TMP folder. Do you want do this now?", 'D3_MULTILANG_CLEARLANGCACHE' => "To activate your new language items it's required, to clear the language cache in TMP folder. Do you want do this now?",
'D3_MULTILANG_NEWFIELDERROR' => "The marked items can't inserted, because the ident still exists.", 'D3_MULTILANG_NEWFIELDERROR' => "The marked items can't inserted, because the ident still exists.",
'D3_MULTILANG_SUCC_COUNT' => ' items - ', 'D3_MULTILANG_SUCC_COUNT' => ' items - ',
'D3_MULTILANG_XLS_CREATOR' => 'D³ Translation Wizzard Module for Oxid eShop', 'D3_MULTILANG_XLS_CREATOR' => 'D³ Translation Wizzard Module for Oxid eShop',
'D3_MULTILANG_XLS_TITLE' => 'translations', 'D3_MULTILANG_XLS_TITLE' => 'translations',
'D3_MULTILANG_XLS_LOCALEERR' => 'Unable to set language setting "%s" - setting is "en_us"', 'D3_MULTILANG_XLS_LOCALEERR' => 'Unable to set language setting "%s" - setting is "en_us"',
'D3_MULTILANG_XLS_LANG' => 'language', 'D3_MULTILANG_XLS_LANG' => 'language',
'D3_MULTILANG_CLEARTMP_IMPORT' => '<img src="../modules/d3/modcfg/public/d3logo.php" alt="D³" title="D³ Data Development"> <b>Translation Wizzard</b>: import text items first', 'D3_MULTILANG_CLEARTMP_IMPORT' => '<img src="../modules/d3/modcfg/public/d3logo.php" alt="D³" title="D³ Data Development"> <b>Translation Wizzard</b>: import text items first',
'D3_MULTILANG_INSTALL_EXECIMPORT' => 'Before using the module, it is necessary to import the used test items. Have this done automatically in the installation process or start the import before activating the module in the admin area of your shop.', 'D3_MULTILANG_INSTALL_EXECIMPORT' => 'Before using the module, it is necessary to import the used test items. Have this done automatically in the installation process or start the import before activating the module in the admin area of your shop.',
'D3_MULTILANG_INSTALL_IMPORTSUCC' => '%i text items imported from existing files', 'D3_MULTILANG_INSTALL_IMPORTSUCC' => '%i text items imported from existing files',
'D3_MULTILANG_INSTALL_NOCSCOLLATION' => 'The database does not provide a case-sensitive collation for the %1$s field of the %2$s table. Please provide a suitable collation and adjust the database field accordingly. Until then, you can not use identically named identifiers with different capitalization.', 'D3_MULTILANG_INSTALL_NOCSCOLLATION' => 'The database does not provide a case-sensitive collation for the %1$s field of the %2$s table. Please provide a suitable collation and adjust the database field accordingly. Until then, you can not use identically named identifiers with different capitalization.',
'D3_MULTILANG_EXC_NOIMPORTFILE' => 'No import file was loaded.' 'D3_MULTILANG_EXC_NOIMPORTFILE' => 'No import file was loaded.'
); );

View File

@ -1,387 +1,387 @@
[{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}] [{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}]
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
[{if $updatelist == 1}] [{if $updatelist == 1}]
UpdateList('[{$oxid}]'); UpdateList('[{$oxid}]');
[{/if}] [{/if}]
function UpdateList( sID) function UpdateList( sID)
{ {
var oSearch = parent.list.document.getElementById("search"); var oSearch = parent.list.document.getElementById("search");
oSearch.oxid.value=sID; oSearch.oxid.value=sID;
oSearch.fnc.value=''; oSearch.fnc.value='';
oSearch.submit(); oSearch.submit();
} }
function EditThis( sID) function EditThis( sID)
{ {
var oTransfer = document.getElementById("transfer"); var oTransfer = document.getElementById("transfer");
oTransfer.oxid.value=sID; oTransfer.oxid.value=sID;
oTransfer.cl.value=''; oTransfer.cl.value='';
oTransfer.submit(); oTransfer.submit();
var oSearch = parent.list.document.getElementById("search"); var oSearch = parent.list.document.getElementById("search");
oSearch.actedit.value = 0; oSearch.actedit.value = 0;
oSearch.oxid.value=sID; oSearch.oxid.value=sID;
oSearch.submit(); oSearch.submit();
} }
function _groupExp(el) function _groupExp(el)
{ {
var _cur = el.parentNode; var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = ""; if (_cur.className == "exp") _cur.className = "";
else _cur.className = "exp"; else _cur.className = "exp";
} }
--> -->
</script> </script>
<style type="text/css"> <style type="text/css">
<!-- <!--
.ext_edittext { .ext_edittext {
padding: 2px; padding: 2px;
} }
fieldset{ fieldset{
border: 1px inset black; border: 1px inset black;
background-color: #F0F0F0; background-color: #F0F0F0;
} }
legend{ legend{
font-weight: bold; font-weight: bold;
} }
dl dt{ dl dt{
font-weight: normal; font-weight: normal;
width: 55%; width: 55%;
} }
div.options { div.options {
float: left; float: left;
width: 50%; width: 50%;
} }
--> -->
</style> </style>
[{if $oView->getStatusMessages()}] [{if $oView->getStatusMessages()}]
<div class="errorbox"> <div class="errorbox">
[{foreach from=$oView->getStatusMessages() item="sMessage"}] [{foreach from=$oView->getStatusMessages() item="sMessage"}]
<p>[{$sMessage}]</p> <p>[{$sMessage}]</p>
[{/foreach}] [{/foreach}]
</div> </div>
[{/if}] [{/if}]
[{if $readonly}] [{if $readonly}]
[{assign var="readonly" value="readonly disabled"}] [{assign var="readonly" value="readonly disabled"}]
[{else}] [{else}]
[{assign var="readonly" value=""}] [{assign var="readonly" value=""}]
[{/if}] [{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value=""> <input type="hidden" name="fnc" value="">
<input type="hidden" name="actshop" value="[{$shop->id}]"> <input type="hidden" name="actshop" value="[{$shop->id}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]"> <input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form> </form>
<table border="0" style="width: 98%;"> <table border="0" style="width: 98%;">
<tr> <tr>
<td style="vertical-align: top;" class="edittext"> <td style="vertical-align: top;" class="edittext">
[{block name="d3_cfg_multilang_imex__setform"}] [{block name="d3_cfg_multilang_imex__setform"}]
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save"> <input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
[{if $oView->getValueStatus() == 'error'}] [{if $oView->getValueStatus() == 'error'}]
<hr> <hr>
<span style="font-weight: bold;">[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</span> <span style="font-weight: bold;">[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</span>
<br> <br>
<br> <br>
<span class="d3modcfg_btn fixed icon status_attention"> <span class="d3modcfg_btn fixed icon status_attention">
<input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]"> <input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]">
<span></span> <span></span>
</span> </span>
<div style="float: none; clear: both;"></div> <div style="float: none; clear: both;"></div>
[{else}] [{else}]
[{block name="d3_cfg_multilang_imex__settings"}] [{block name="d3_cfg_multilang_imex__settings"}]
[{include file="d3_cfg_mod_active.tpl"}] [{include file="d3_cfg_mod_active.tpl"}]
<div class="groupExp"> <div class="groupExp">
<div class=""> <div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#"> <a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;"> <span style="font-weight: bold;">
[{oxmultilang ident="D3_MULTILANG_SETTINGS"}] [{oxmultilang ident="D3_MULTILANG_SETTINGS"}]
</span> </span>
</a> </a>
<dl> <dl>
<dt> <dt>
<label for="blMultilang_SaveMissingItems">[{oxmultilang ident="D3_MULTILANG_MODCFG_SAVEMISS"}]</label> <label for="blMultilang_SaveMissingItems">[{oxmultilang ident="D3_MULTILANG_MODCFG_SAVEMISS"}]</label>
</dt> </dt>
<dd> <dd>
<input type="hidden" name="value[d3_cfg_mod__blMultilang_SaveMissingItems]" value="0"> <input type="hidden" name="value[d3_cfg_mod__blMultilang_SaveMissingItems]" value="0">
<input id="blMultilang_SaveMissingItems" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_SaveMissingItems]" value='1' [{if $edit->getValue('blMultilang_SaveMissingItems') == 1}]checked[{/if}]> <input id="blMultilang_SaveMissingItems" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_SaveMissingItems]" value='1' [{if $edit->getValue('blMultilang_SaveMissingItems') == 1}]checked[{/if}]>
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt> <dt>
<label for="sMultilang_Separator">[{oxmultilang ident="D3_MULTILANG_MODCFG_SEPARATOR"}]</label> <label for="sMultilang_Separator">[{oxmultilang ident="D3_MULTILANG_MODCFG_SEPARATOR"}]</label>
</dt> </dt>
<dd> <dd>
<input id="sMultilang_Separator" class="edittext ext_edittext" size="3" maxlength="1" type="text" name="value[sMultilang_Separator]" value='[{if $edit->getValue('sMultilang_Separator')}][{$edit->getValue('sMultilang_Separator')}][{else}]|[{/if}]'> <input id="sMultilang_Separator" class="edittext ext_edittext" size="3" maxlength="1" type="text" name="value[sMultilang_Separator]" value='[{if $edit->getValue('sMultilang_Separator')}][{$edit->getValue('sMultilang_Separator')}][{else}]|[{/if}]'>
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt> <dt>
<label for="sMultilang_Encloser">[{oxmultilang ident="D3_MULTILANG_MODCFG_ENCLOSER"}]</label> <label for="sMultilang_Encloser">[{oxmultilang ident="D3_MULTILANG_MODCFG_ENCLOSER"}]</label>
</dt> </dt>
<dd> <dd>
<input id="sMultilang_Encloser" class="edittext ext_edittext" size="3" maxlength="1" type="text" name="value[sMultilang_Encloser]" value='[{if $edit->getValue('sMultilang_Encloser')}][{$edit->getValue('sMultilang_Encloser')}][{else}]"[{/if}]'> <input id="sMultilang_Encloser" class="edittext ext_edittext" size="3" maxlength="1" type="text" name="value[sMultilang_Encloser]" value='[{if $edit->getValue('sMultilang_Encloser')}][{$edit->getValue('sMultilang_Encloser')}][{else}]"[{/if}]'>
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt> <dt>
<label for="blMultilang_trimWhiteSpaces">[{oxmultilang ident="D3_MULTILANG_MODCFG_TRIMWHITESPACES"}]</label> <label for="blMultilang_trimWhiteSpaces">[{oxmultilang ident="D3_MULTILANG_MODCFG_TRIMWHITESPACES"}]</label>
</dt> </dt>
<dd> <dd>
<input type="hidden" name="value[d3_cfg_mod__blMultilang_trimWhiteSpaces]" value="0"> <input type="hidden" name="value[d3_cfg_mod__blMultilang_trimWhiteSpaces]" value="0">
<input id="blMultilang_trimWhiteSpaces" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_trimWhiteSpaces]" value='1' [{if $edit->getValue('blMultilang_trimWhiteSpaces') == 1}]checked[{/if}]> <input id="blMultilang_trimWhiteSpaces" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_trimWhiteSpaces]" value='1' [{if $edit->getValue('blMultilang_trimWhiteSpaces') == 1}]checked[{/if}]>
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt> <dt>
<label for="blMultilang_addMappedTranslations">[{oxmultilang ident="D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS"}]</label> <label for="blMultilang_addMappedTranslations">[{oxmultilang ident="D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS"}]</label>
</dt> </dt>
<dd> <dd>
<input type="hidden" name="value[d3_cfg_mod__blMultilang_addMappedTranslations]" value="0"> <input type="hidden" name="value[d3_cfg_mod__blMultilang_addMappedTranslations]" value="0">
<input id="blMultilang_addMappedTranslations" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_addMappedTranslations]" value='1' [{if $edit->getValue('blMultilang_addMappedTranslations') == 1}]checked[{/if}]> <input id="blMultilang_addMappedTranslations" class="edittext ext_edittext" type="checkbox" name="value[blMultilang_addMappedTranslations]" value='1' [{if $edit->getValue('blMultilang_addMappedTranslations') == 1}]checked[{/if}]>
[{oxinputhelp ident="D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS_DESC"}] [{oxinputhelp ident="D3_MULTILANG_MODCFG_ADDMAPPEDTRANSLATIONS_DESC"}]
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt> <dt>
<label for="blMultilang_OutputMimeType">[{oxmultilang ident="D3_MULTILANG_MODCFG_MIME"}]</label> <label for="blMultilang_OutputMimeType">[{oxmultilang ident="D3_MULTILANG_MODCFG_MIME"}]</label>
</dt> </dt>
<dd> <dd>
<input type="hidden" name="value[d3_cfg_mod__blMultilang_OutputMimeType]" value="0"> <input type="hidden" name="value[d3_cfg_mod__blMultilang_OutputMimeType]" value="0">
<input id="blMultilang_OutputMimeType" class="edittext ext_edittext" type="checkbox" name="value[d3_cfg_mod__blMultilang_OutputMimeType]" value='1' [{if $edit->getValue('blMultilang_OutputMimeType') == 1}]checked[{/if}]> <input id="blMultilang_OutputMimeType" class="edittext ext_edittext" type="checkbox" name="value[d3_cfg_mod__blMultilang_OutputMimeType]" value='1' [{if $edit->getValue('blMultilang_OutputMimeType') == 1}]checked[{/if}]>
</dd> </dd>
</dl> </dl>
</div> </div>
</div> </div>
[{/block}] [{/block}]
<span class="d3modcfg_btn icon d3color-green"> <span class="d3modcfg_btn icon d3color-green">
<button type="submit" name="save"> <button type="submit" name="save">
<i class="fa fa-check-circle fa-inverse"></i> <i class="fa fa-check-circle fa-inverse"></i>
[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}] [{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]
</button> </button>
</span> </span>
[{/if}] [{/if}]
</form> </form>
<div class="clear"></div><br> <div class="clear"></div><br>
[{/block}] [{/block}]
[{block name="d3_cfg_multilang_imex__mime"}] [{block name="d3_cfg_multilang_imex__mime"}]
[{if $oView->getMimeType()}] [{if $oView->getMimeType()}]
Mime-Type: [{$oView->getMimeType()}]<br><br> Mime-Type: [{$oView->getMimeType()}]<br><br>
[{/if}] [{/if}]
[{/block}] [{/block}]
[{block name="d3_cfg_multilang_imex__export"}] [{block name="d3_cfg_multilang_imex__export"}]
[{if $oView->getValueStatus() != 'error'}] [{if $oView->getValueStatus() != 'error'}]
<fieldset> <fieldset>
<legend>[{oxmultilang ident="D3_MULTILANG_EXPORT"}]</legend> <legend>[{oxmultilang ident="D3_MULTILANG_EXPORT"}]</legend>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<form name="export" id="export" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="export" id="export" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="export"> <input type="hidden" name="fnc" value="export">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
[{block name="d3_cfg_multilang_imex__exporttype"}] [{block name="d3_cfg_multilang_imex__exporttype"}]
<input type="radio" id="exportcsv" name="exporttype" value="csv" [{if $exporttype == 'csv' || !$exporttype}]checked[{/if}] [{$readonly}]> <label for="exportcsv">[{oxmultilang ident="D3_MULTILANG_FILETYPECSV"}]</label><br> <input type="radio" id="exportcsv" name="exporttype" value="csv" [{if $exporttype == 'csv' || !$exporttype}]checked[{/if}] [{$readonly}]> <label for="exportcsv">[{oxmultilang ident="D3_MULTILANG_FILETYPECSV"}]</label><br>
<input type="radio" id="exportoxid" name="exporttype" value="oxid" [{if $oView->getExportType() == 'oxid'}]checked[{/if}] [{$readonly}]> <label for="exportoxid">[{oxmultilang ident="D3_MULTILANG_FILETYPEOXID"}]</label><br> <input type="radio" id="exportoxid" name="exporttype" value="oxid" [{if $oView->getExportType() == 'oxid'}]checked[{/if}] [{$readonly}]> <label for="exportoxid">[{oxmultilang ident="D3_MULTILANG_FILETYPEOXID"}]</label><br>
[{/block}] [{/block}]
<br> <br>
<span class="d3modcfg_btn icon d3color-blue"> <span class="d3modcfg_btn icon d3color-blue">
<button type="submit" name="save" [{$readonly}]> <button type="submit" name="save" [{$readonly}]>
<i class="fa fa-download"></i> <i class="fa fa-download"></i>
[{oxmultilang ident="D3_MULTILANG_STARTEXPORT"}] [{oxmultilang ident="D3_MULTILANG_STARTEXPORT"}]
</button> </button>
</span> </span>
</form> </form>
</td> </td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
[{/if}] [{/if}]
[{/block}] [{/block}]
<br> <br>
[{block name="d3_cfg_multilang_imex__import"}] [{block name="d3_cfg_multilang_imex__import"}]
[{if $oView->getValueStatus() != 'error'}] [{if $oView->getValueStatus() != 'error'}]
<fieldset> <fieldset>
<legend>[{oxmultilang ident="D3_MULTILANG_IMPORT"}]</legend> <legend>[{oxmultilang ident="D3_MULTILANG_IMPORT"}]</legend>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<colgroup> <colgroup>
<col width="30%"> <col width="30%">
</colgroup> </colgroup>
[{block name="d3_cfg_multilang_imex__importinstalled"}] [{block name="d3_cfg_multilang_imex__importinstalled"}]
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPEINSTALLED"}]:</span> <span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPEINSTALLED"}]:</span>
</td> </td>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<form name="import" id="import" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="import" id="import" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="import"> <input type="hidden" name="fnc" value="import">
<input type="hidden" name="type" value="installed"> <input type="hidden" name="type" value="installed">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<span class="d3modcfg_btn icon d3color-blue"> <span class="d3modcfg_btn icon d3color-blue">
<button type="submit" name="save"> <button type="submit" name="save">
<i class="fa fa-upload"></i> <i class="fa fa-upload"></i>
[{oxmultilang ident="D3_MULTILANG_IMPORTSTARTINSTALLED"}] [{oxmultilang ident="D3_MULTILANG_IMPORTSTARTINSTALLED"}]
</button> </button>
</span> </span>
</form> </form>
</td> </td>
</tr> </tr>
[{/block}] [{/block}]
[{block name="d3_cfg_multilang_imex__importcsv"}] [{block name="d3_cfg_multilang_imex__importcsv"}]
<tr> <tr>
<td colspan="2"> <td colspan="2">
<hr> <hr>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPECSV"}]:</span> <span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPECSV"}]:</span>
</td> </td>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<form name="import" id="import" enctype="multipart/form-data" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="import" id="import" enctype="multipart/form-data" action="[{$oViewConf->getSelfLink()}]" method="post">
<div class="options"> <div class="options">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="import"> <input type="hidden" name="fnc" value="import">
<input type="hidden" name="type" value="csv"> <input type="hidden" name="type" value="csv">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<input class="editinput" name="file[csv]" type="file" [{$readonly}] accept="text/comma-separated-values"> <input class="editinput" name="file[csv]" type="file" [{$readonly}] accept="text/comma-separated-values">
<br> <br>
<span class="d3modcfg_btn icon d3color-blue"> <span class="d3modcfg_btn icon d3color-blue">
<button type="submit" name="save" [{$readonly}]> <button type="submit" name="save" [{$readonly}]>
<i class="fa fa-upload"></i> <i class="fa fa-upload"></i>
[{oxmultilang ident="D3_MULTILANG_IMPORTSTARTCSV"}] [{oxmultilang ident="D3_MULTILANG_IMPORTSTARTCSV"}]
</button> </button>
</span> </span>
</div> </div>
<div class="options"> <div class="options">
<input type="hidden" name="overwrite_csv" value="0"> <input type="hidden" name="overwrite_csv" value="0">
<input type="checkbox" id="overwrite_csv" name="overwrite_csv" value="1" [{if $oView->getRequParam('overwrite_csv') == "1"}]checked[{/if}] [{$readonly}]> <label for="overwrite_csv">[{oxmultilang ident="D3_MULTILANG_IMPORTOVERWRITE"}]</label><br> <input type="checkbox" id="overwrite_csv" name="overwrite_csv" value="1" [{if $oView->getRequParam('overwrite_csv') == "1"}]checked[{/if}] [{$readonly}]> <label for="overwrite_csv">[{oxmultilang ident="D3_MULTILANG_IMPORTOVERWRITE"}]</label><br>
<input type="hidden" name="original_csv" value="0"> <input type="hidden" name="original_csv" value="0">
<input type="checkbox" id="original_csv" name="original_csv" value="1" [{if $oView->getRequParam('original_csv') == "1"}]checked[{/if}] [{$readonly}]> <label for="original_csv">[{oxmultilang ident="D3_MULTILANG_SETORIGINAL"}]</label><br> <input type="checkbox" id="original_csv" name="original_csv" value="1" [{if $oView->getRequParam('original_csv') == "1"}]checked[{/if}] [{$readonly}]> <label for="original_csv">[{oxmultilang ident="D3_MULTILANG_SETORIGINAL"}]</label><br>
<input type="hidden" name="ignore_mime" value="0"> <input type="hidden" name="ignore_mime" value="0">
<input type="checkbox" id="ignore_mime" name="ignore_mime" value="1" [{if $oView->getRequParam('ignore_mime') == "1"}]checked[{/if}] [{$readonly}]> <label for="ignore_mime">[{oxmultilang ident="D3_MULTILANG_IGNOREMIME"}] [{oxinputhelp ident="D3_MULTILANG_IGNOREMIME_DESC"}]</label> <input type="checkbox" id="ignore_mime" name="ignore_mime" value="1" [{if $oView->getRequParam('ignore_mime') == "1"}]checked[{/if}] [{$readonly}]> <label for="ignore_mime">[{oxmultilang ident="D3_MULTILANG_IGNOREMIME"}] [{oxinputhelp ident="D3_MULTILANG_IGNOREMIME_DESC"}]</label>
</div> </div>
</form> </form>
</td> </td>
</tr> </tr>
[{/block}] [{/block}]
[{block name="d3_cfg_multilang_imex__importoxid"}] [{block name="d3_cfg_multilang_imex__importoxid"}]
<tr> <tr>
<td colspan="2"> <td colspan="2">
<hr> <hr>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPEOXID"}] (PHP):</span> <span style="font-weight: bold;">[{oxmultilang ident="D3_MULTILANG_FILETYPEOXID"}] (PHP):</span>
</td> </td>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<form name="import" id="import" enctype="multipart/form-data" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="import" id="import" enctype="multipart/form-data" action="[{$oViewConf->getSelfLink()}]" method="post">
<div class="options"> <div class="options">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="import"> <input type="hidden" name="fnc" value="import">
<input type="hidden" name="type" value="oxid"> <input type="hidden" name="type" value="oxid">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<input class="editinput" name="file[oxid]" type="file" [{$readonly}]> <input class="editinput" name="file[oxid]" type="file" [{$readonly}]>
<br> <br>
<label for="phpinlang">[{oxmultilang ident="D3_MULTILANG_IMPORTOXIDLANG"}]</label> <label for="phpinlang">[{oxmultilang ident="D3_MULTILANG_IMPORTOXIDLANG"}]</label>
<select name="lang[oxid]" size="1" id="phpinlang" [{$readonly}]> <select name="lang[oxid]" size="1" id="phpinlang" [{$readonly}]>
[{foreach from=$aImportLanguages item=lang}] [{foreach from=$aImportLanguages item=lang}]
<option value="[{$lang->id}]" [{if $lang->selected}]SELECTED[{/if}]>[{$lang->name}]</option> <option value="[{$lang->id}]" [{if $lang->selected}]SELECTED[{/if}]>[{$lang->name}]</option>
[{/foreach}] [{/foreach}]
</select> </select>
<br> <br>
<span class="d3modcfg_btn icon d3color-blue"> <span class="d3modcfg_btn icon d3color-blue">
<button type="submit" name="save" [{$readonly}]> <button type="submit" name="save" [{$readonly}]>
<i class="fa fa-upload"></i> <i class="fa fa-upload"></i>
[{oxmultilang ident="D3_MULTILANG_IMPORTSTARTOXID"}] [{oxmultilang ident="D3_MULTILANG_IMPORTSTARTOXID"}]
</button> </button>
</span> </span>
</div> </div>
<div class="options"> <div class="options">
<input type="hidden" name="overwrite_oxid" value="0"> <input type="hidden" name="overwrite_oxid" value="0">
<input type="checkbox" id="overwrite_oxid" name="overwrite_oxid" value="1" [{if $oView->getRequParam('overwrite_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="overwrite_oxid">[{oxmultilang ident="D3_MULTILANG_IMPORTOVERWRITE"}]</label><br> <input type="checkbox" id="overwrite_oxid" name="overwrite_oxid" value="1" [{if $oView->getRequParam('overwrite_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="overwrite_oxid">[{oxmultilang ident="D3_MULTILANG_IMPORTOVERWRITE"}]</label><br>
<input type="hidden" name="original_oxid" value="0"> <input type="hidden" name="original_oxid" value="0">
<input type="checkbox" id="original_oxid" name="original_oxid" value="1" [{if $oView->getRequParam('original_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="original_oxid">[{oxmultilang ident="D3_MULTILANG_SETORIGINAL"}]</label><br> <input type="checkbox" id="original_oxid" name="original_oxid" value="1" [{if $oView->getRequParam('original_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="original_oxid">[{oxmultilang ident="D3_MULTILANG_SETORIGINAL"}]</label><br>
<input type="hidden" name="admin_oxid" value="0"> <input type="hidden" name="admin_oxid" value="0">
<input type="checkbox" id="admin_oxid" name="admin_oxid" value="1" [{if $oView->getRequParam('admin_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="admin_oxid">[{oxmultilang ident="D3_MULTILANG_ISADMIN"}]</label><br> <input type="checkbox" id="admin_oxid" name="admin_oxid" value="1" [{if $oView->getRequParam('admin_oxid') == "1"}]checked[{/if}] [{$readonly}]> <label for="admin_oxid">[{oxmultilang ident="D3_MULTILANG_ISADMIN"}]</label><br>
<input type="hidden" name="ignore_mime" value="0"> <input type="hidden" name="ignore_mime" value="0">
<input type="checkbox" id="ignore_mime" name="ignore_mime" value="1" [{if $oView->getRequParam('ignore_mime') == "1"}]checked[{/if}] [{$readonly}]> <label for="ignore_mime">[{oxmultilang ident="D3_MULTILANG_IGNOREMIME"}] [{oxinputhelp ident="D3_MULTILANG_IGNOREMIME_DESC"}]</label> <input type="checkbox" id="ignore_mime" name="ignore_mime" value="1" [{if $oView->getRequParam('ignore_mime') == "1"}]checked[{/if}] [{$readonly}]> <label for="ignore_mime">[{oxmultilang ident="D3_MULTILANG_IGNOREMIME"}] [{oxinputhelp ident="D3_MULTILANG_IGNOREMIME_DESC"}]</label>
</div> </div>
</form> </form>
</td> </td>
</tr> </tr>
[{/block}] [{/block}]
</table> </table>
</fieldset> </fieldset>
[{/if}] [{/if}]
[{/block}] [{/block}]
</td> </td>
</tr> </tr>
</table> </table>
[{include file="d3_cfg_mod_inc.tpl"}] [{include file="d3_cfg_mod_inc.tpl"}]
[{block name="d3_cfg_multilang_imex__clrtmp"}] [{block name="d3_cfg_multilang_imex__clrtmp"}]
[{if $clrTmp}] [{if $clrTmp}]
<script type="text/javascript"> <script type="text/javascript">
if (confirm('[{oxmultilang ident="D3_MULTILANG_CLEARLANGCACHE"}]')) { if (confirm('[{oxmultilang ident="D3_MULTILANG_CLEARLANGCACHE"}]')) {
var oTransfer = parent.edit.document.getElementById("transfer"); var oTransfer = parent.edit.document.getElementById("transfer");
oTransfer.fnc.value='clearLangCache'; oTransfer.fnc.value='clearLangCache';
oTransfer.submit(); oTransfer.submit();
} }
</script> </script>
[{/if}] [{/if}]
[{/block}] [{/block}]

View File

@ -1,422 +1,422 @@
[{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}] [{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}]
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
function DeleteThis( sID) function DeleteThis( sID)
{ {
blCheck = confirm("[{oxmultilang ident="GENERAL_YOUWANTTODELETE"}]"); blCheck = confirm("[{oxmultilang ident="GENERAL_YOUWANTTODELETE"}]");
if( blCheck === true) if( blCheck === true)
{ {
var oTransfer = parent.edit.document.getElementById("transfer"); var oTransfer = parent.edit.document.getElementById("transfer");
oTransfer.deloxid.value=sID; oTransfer.deloxid.value=sID;
oTransfer.fnc.value='deleteentry'; oTransfer.fnc.value='deleteentry';
oTransfer.actedit.value=0; oTransfer.actedit.value=0;
oTransfer.submit(); oTransfer.submit();
} }
} }
function popUp(evt,currElem) function popUp(evt,currElem)
{ {
var popUpWin = document.getElementById(currElem); var popUpWin = document.getElementById(currElem);
var y = parseInt(evt.clientY) - 33 - parseInt((17.5*(popUpWin.innerHTML.split(/<br[ \/^>]*>/gi).length-1))); var y = parseInt(evt.clientY) - 33 - parseInt((17.5*(popUpWin.innerHTML.split(/<br[ \/^>]*>/gi).length-1)));
var x = parseInt(evt.clientX) - 50; var x = parseInt(evt.clientX) - 50;
if(document.all){ if(document.all){
if ( x > document.body.clientWidth - 150 ){ if ( x > document.body.clientWidth - 150 ){
x = parseInt(document.body.clientWidth) - 150; x = parseInt(document.body.clientWidth) - 150;
y = y - 15; y = y - 15;
} }
} }
else{ else{
if ( x > self.innerWidth - 170 ){ if ( x > self.innerWidth - 170 ){
x = parseInt(self.innerWidth) - 170; x = parseInt(self.innerWidth) - 170;
} }
} }
popUpWin.style.top = Math.max(2,y)+'px'; popUpWin.style.top = Math.max(2,y)+'px';
popUpWin.style.left= Math.max(2,x)+'px'; popUpWin.style.left= Math.max(2,x)+'px';
popUpWin.style.visibility = "visible"; popUpWin.style.visibility = "visible";
window.status = ""; window.status = "";
} }
function popDown(currElem) function popDown(currElem)
{ {
var popUpWin = document.getElementById(currElem); var popUpWin = document.getElementById(currElem);
popUpWin.style.visibility ="hidden" popUpWin.style.visibility ="hidden"
} }
function _groupExp(el) function _groupExp(el)
{ {
var _cur = el.parentNode; var _cur = el.parentNode;
if (_cur.className === "exp") _cur.className = ""; if (_cur.className === "exp") _cur.className = "";
else _cur.className = "exp"; else _cur.className = "exp";
} }
--> -->
</script> </script>
<style type="text/css"> <style type="text/css">
<!-- <!--
.ext_edittext { .ext_edittext {
padding: 2px; padding: 2px;
} }
fieldset{ fieldset{
border: 1px inset black; border: 1px inset black;
background-color: #F0F0F0; background-color: #F0F0F0;
} }
legend{ legend{
font-weight: bold; font-weight: bold;
} }
dl dt{ dl dt{
font-weight: normal; font-weight: normal;
width: 55%; width: 55%;
} }
.itemlist td { .itemlist td {
padding: 0 5px; padding: 0 5px;
} }
--> -->
</style> </style>
[{if $readonly}] [{if $readonly}]
[{assign var="readonly" value="readonly disabled"}] [{assign var="readonly" value="readonly disabled"}]
[{else}] [{else}]
[{assign var="readonly" value=""}] [{assign var="readonly" value=""}]
[{/if}] [{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="deloxid" value=""> <input type="hidden" name="deloxid" value="">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value=""> <input type="hidden" name="fnc" value="">
<input type="hidden" name="actedit" value=""> <input type="hidden" name="actedit" value="">
<input type="hidden" name="page" value="[{$iPage}]"> <input type="hidden" name="page" value="[{$iPage}]">
<input type="hidden" name="sSearchText" value="[{$sSearchText}]"> <input type="hidden" name="sSearchText" value="[{$sSearchText}]">
<input type="hidden" name="sSearchType" value="[{$sSearchType}]"> <input type="hidden" name="sSearchType" value="[{$sSearchType}]">
</form> </form>
<table border="0" width="98%"> <table border="0" width="98%">
[{if $langsel_right != 'none' && $langsel_left != 'none'}] [{if $langsel_right != 'none' && $langsel_left != 'none'}]
[{* Suche *}] [{* Suche *}]
<tr> <tr>
<td valign="top" class="edittext"> <td valign="top" class="edittext">
[{block name="d3_cfg_multilang_main__searchform"}] [{block name="d3_cfg_multilang_main__searchform"}]
<form name="searchform" id="searchform" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="searchform" id="searchform" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="languageselect"> <input type="hidden" name="fnc" value="languageselect">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="sSearchType" id="sSearchType" value="default"> <input type="hidden" name="sSearchType" id="sSearchType" value="default">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<fieldset> <fieldset>
<legend>[{oxmultilang ident="D3_MULTILANG_SEARCH"}]</legend> <legend>[{oxmultilang ident="D3_MULTILANG_SEARCH"}]</legend>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr> <tr>
[{block name="d3_cfg_multilang_main__searchformelements"}] [{block name="d3_cfg_multilang_main__searchformelements"}]
<td class="edittext ext_edittext" style="width: 200px;"> <td class="edittext ext_edittext" style="width: 200px;">
<label for="sSearchText">[{oxmultilang ident="D3_MULTILANG_SEARCHDESC"}]</label> <label for="sSearchText">[{oxmultilang ident="D3_MULTILANG_SEARCHDESC"}]</label>
</td> </td>
<td class="edittext ext_edittext" align="left" colspan="2"> <td class="edittext ext_edittext" align="left" colspan="2">
<input id="sSearchText" type="text" size="50" name="sSearchText" value="[{$sSearchText}]" class="edittext" style="margin-right: 5px; width: 250px; float: left;" [{$readonly}]> <input id="sSearchText" type="text" size="50" name="sSearchText" value="[{$sSearchText}]" class="edittext" style="margin-right: 5px; width: 250px; float: left;" [{$readonly}]>
<span class="d3modcfg_btn icon d3color-blue"> <span class="d3modcfg_btn icon d3color-blue">
<button type="submit" name="save" [{$readonly}]> <button type="submit" name="save" [{$readonly}]>
<i class="fa fa-search"></i> <i class="fa fa-search"></i>
[{oxmultilang ident="D3_MULTILANG_SEARCHSTART"}] [{oxmultilang ident="D3_MULTILANG_SEARCHSTART"}]
</button> </button>
</span> </span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2"> <td colspan="2">
<div class="groupExp"> <div class="groupExp">
<div class=""> <div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#"> <a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;"> <span style="font-weight: bold;">
[{oxmultilang ident="D3_MULTILANG_SEARCH_FURTHER"}] [{oxmultilang ident="D3_MULTILANG_SEARCH_FURTHER"}]
</span> </span>
</a> </a>
<dl> <dl>
<dt style="width: 1px;"> <dt style="width: 1px;">
</dt> </dt>
<dd> <dd>
<span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;"> <span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;">
<button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'emptyitems';"> <button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'emptyitems';">
<i class="fa fa-search"></i> <i class="fa fa-search"></i>
[{oxmultilang ident="D3_MULTILANG_SEARCHEMPTYSTART"}] [{oxmultilang ident="D3_MULTILANG_SEARCHEMPTYSTART"}]
</button> </button>
</span> </span>
<span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;"> <span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;">
<button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'identicalitems';"> <button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'identicalitems';">
<i class="fa fa-search"></i> <i class="fa fa-search"></i>
[{oxmultilang ident="D3_MULTILANG_SEARCHIDENTICALSTART"}] [{oxmultilang ident="D3_MULTILANG_SEARCHIDENTICALSTART"}]
</button> </button>
</span> </span>
<span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;"> <span class="d3modcfg_btn icon d3color-blue" style="float: left; margin-right: 5px;">
<button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'originalitems';"> <button type="submit" name="save" [{$readonly}] onclick="document.getElementById('sSearchType').value = 'originalitems';">
<i class="fa fa-search"></i> <i class="fa fa-search"></i>
[{oxmultilang ident="D3_MULTILANG_SEARCHORIGINALSTART"}] [{oxmultilang ident="D3_MULTILANG_SEARCHORIGINALSTART"}]
</button> </button>
</span> </span>
<select name="itemtype" size="1"> <select name="itemtype" size="1">
<option value="all">[{oxmultilang ident="D3_MULTILANG_SEARCHALL"}]</option> <option value="all">[{oxmultilang ident="D3_MULTILANG_SEARCHALL"}]</option>
<option value="frontend" [{if $sItemtype == 'frontend'}] selected[{/if}]>[{oxmultilang ident="D3_MULTILANG_SEARCHFRONTEND"}]</option> <option value="frontend" [{if $sItemtype == 'frontend'}] selected[{/if}]>[{oxmultilang ident="D3_MULTILANG_SEARCHFRONTEND"}]</option>
<option value="backend" [{if $sItemtype == 'backend'}] selected[{/if}]>[{oxmultilang ident="D3_MULTILANG_SEARCHBACKEND"}]</option> <option value="backend" [{if $sItemtype == 'backend'}] selected[{/if}]>[{oxmultilang ident="D3_MULTILANG_SEARCHBACKEND"}]</option>
</select> </select>
</dd> </dd>
</dl> </dl>
</div> </div>
</div> </div>
</td> </td>
[{/block}] [{/block}]
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
</form> </form>
[{/block}] [{/block}]
</td> </td>
</tr> </tr>
[{/if}] [{/if}]
[{* Sprachwahl *}] [{* Sprachwahl *}]
<tr> <tr>
<td valign="top" class="edittext"> <td valign="top" class="edittext">
[{block name="d3_cfg_multilang_main__langselection"}] [{block name="d3_cfg_multilang_main__langselection"}]
<form name="langsel" id="langsel" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="langsel" id="langsel" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="languageselect"> <input type="hidden" name="fnc" value="languageselect">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<fieldset> <fieldset>
<legend>[{oxmultilang ident="D3_MULTILANG_LANGSELECT"}]</legend> <legend>[{oxmultilang ident="D3_MULTILANG_LANGSELECT"}]</legend>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<colgroup> <colgroup>
<col width="200"> <col width="200">
<col> <col>
<col width="26"> <col width="26">
<col> <col>
<col width="26"> <col width="26">
<col width="26"> <col width="26">
</colgroup> </colgroup>
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
&nbsp; &nbsp;
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<SELECT class="editinput" name="langsel[left]" size="1" style="width:100%; background-color: #F0F0F0; font-weight: bold; border-width:0;" onchange="document.getElementById('langsel').submit();"> <SELECT class="editinput" name="langsel[left]" size="1" style="width:100%; background-color: #F0F0F0; font-weight: bold; border-width:0;" onchange="document.getElementById('langsel').submit();">
<option value="">[{oxmultilang ident="D3_MULTILANG_SELECTLANGUAGE"}]</OPTION> <option value="">[{oxmultilang ident="D3_MULTILANG_SELECTLANGUAGE"}]</OPTION>
<option value="">---------------------------</OPTION> <option value="">---------------------------</OPTION>
[{foreach from=$aLanguages item=lang key=key}] [{foreach from=$aLanguages item=lang key=key}]
<option value="[{$lang->id}]" [{if $langsel_left == $lang->id && $langsel_left != 'none'}]selected[{/if}]>[{$lang->name}]</option> <option value="[{$lang->id}]" [{if $langsel_left == $lang->id && $langsel_left != 'none'}]selected[{/if}]>[{$lang->name}]</option>
[{/foreach}] [{/foreach}]
</SELECT> </SELECT>
</td> </td>
<td class="edittext ext_edittext" align="left">&nbsp;</td> <td class="edittext ext_edittext" align="left">&nbsp;</td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<SELECT class="editinput" name="langsel[right]" size="1" style="width:100%; background-color: #F0F0F0; font-weight: bold; border-width:0;" onchange="document.getElementById('langsel').submit();"> <SELECT class="editinput" name="langsel[right]" size="1" style="width:100%; background-color: #F0F0F0; font-weight: bold; border-width:0;" onchange="document.getElementById('langsel').submit();">
<option value="">[{oxmultilang ident="D3_MULTILANG_SELECTLANGUAGE"}]</OPTION> <option value="">[{oxmultilang ident="D3_MULTILANG_SELECTLANGUAGE"}]</OPTION>
<option value="">---------------------------</OPTION> <option value="">---------------------------</OPTION>
[{foreach from=$aLanguages item=lang key=key}] [{foreach from=$aLanguages item=lang key=key}]
<option value="[{$lang->id}]" [{if $langsel_right == $lang->id && $langsel_right != 'none'}]selected[{/if}]>[{$lang->name}]</option> <option value="[{$lang->id}]" [{if $langsel_right == $lang->id && $langsel_right != 'none'}]selected[{/if}]>[{$lang->name}]</option>
[{/foreach}] [{/foreach}]
</SELECT> </SELECT>
</td> </td>
<td class="edittext ext_edittext" align="left">&nbsp;</td> <td class="edittext ext_edittext" align="left">&nbsp;</td>
<td class="edittext ext_edittext" align="left">&nbsp;</td> <td class="edittext ext_edittext" align="left">&nbsp;</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
</form> </form>
[{/block}] [{/block}]
</td> </td>
</tr> </tr>
</table> </table>
[{if $langsel_right != 'none' && $langsel_left != 'none'}] [{if $langsel_right != 'none' && $langsel_left != 'none'}]
[{* Neueinträge *}] [{* Neueinträge *}]
[{block name="d3_cfg_multilang_main__newitems"}] [{block name="d3_cfg_multilang_main__newitems"}]
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post"> <form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]"> <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save"> <input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]"> <input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="lstrt" value="[{$lstrt}]"> <input type="hidden" name="lstrt" value="[{$lstrt}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<input type="hidden" name="sSearchText" value="[{$sSearchText}]"> <input type="hidden" name="sSearchText" value="[{$sSearchText}]">
<input type="hidden" name="sSearchType" value="[{$sSearchType}]"> <input type="hidden" name="sSearchType" value="[{$sSearchType}]">
<input type="hidden" name="page" value="[{$iPage}]"> <input type="hidden" name="page" value="[{$iPage}]">
<table border="0" width="98%" class="itemlist"> <table border="0" width="98%" class="itemlist">
<tr> <tr>
<td class="edittext ext_edittext" valign="top" align="left"> <td class="edittext ext_edittext" valign="top" align="left">
<fieldset> <fieldset>
<legend>[{oxmultilang ident="D3_MULTILANG_NEWITEM"}]</legend> <legend>[{oxmultilang ident="D3_MULTILANG_NEWITEM"}]</legend>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<colgroup> <colgroup>
<col width="200"> <col width="200">
<col> <col>
<col width="26"> <col width="26">
<col> <col>
<col width="26"> <col width="26">
<col width="26"> <col width="26">
</colgroup> </colgroup>
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<input type="text" name="newValues1[key]" class="edittext" value="[{$newValues1.key}]" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]" [{$readonly}]> <input type="text" name="newValues1[key]" class="edittext" value="[{$newValues1.key}]" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="newValues1[[{$langsel_left}]]" value="[{$newValues1.$langsel_left}]" class="edittext" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]"[{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]> <input type="text" size="50" name="newValues1[[{$langsel_left}]]" value="[{$newValues1.$langsel_left}]" class="edittext" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]"[{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="checkbox" value="0" name="newValues1[original_[{$langsel_left}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]> <input type="checkbox" value="0" name="newValues1[original_[{$langsel_left}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="newValues1[[{$langsel_right}]]" value="[{$newValues1.$langsel_right}]" class="edittext" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]" [{$readonly}]> <input type="text" size="50" name="newValues1[[{$langsel_right}]]" value="[{$newValues1.$langsel_right}]" class="edittext" style="width: 100%;[{if $newValues1.error}] border: 2px solid red;[{/if}]" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="checkbox" value="0" name="newValues1[original_[{$langsel_right}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]> <input type="checkbox" value="0" name="newValues1[original_[{$langsel_right}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left">&nbsp;</td> <td class="edittext ext_edittext" align="left">&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<input type="text" name="newValues2[key]" class="edittext" value="[{$newValues2.key}]" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]" [{$readonly}]> <input type="text" name="newValues2[key]" class="edittext" value="[{$newValues2.key}]" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="newValues2[[{$langsel_left}]]" value="[{$newValues2.$langsel_left}]" class="edittext" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]"[{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]> <input type="text" size="50" name="newValues2[[{$langsel_left}]]" value="[{$newValues2.$langsel_left}]" class="edittext" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]"[{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="checkbox" value="0" name="newValues2[original_[{$langsel_left}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]> <input type="checkbox" value="0" name="newValues2[original_[{$langsel_left}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="newValues2[[{$langsel_right}]]" value="[{$newValues2.$langsel_right}]" class="edittext" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]" [{$readonly}]> <input type="text" size="50" name="newValues2[[{$langsel_right}]]" value="[{$newValues2.$langsel_right}]" class="edittext" style="width: 100%;[{if $newValues2.error}] border: 2px solid red;[{/if}]" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="checkbox" value="0" name="newValues2[original_[{$langsel_right}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]> <input type="checkbox" value="0" name="newValues2[original_[{$langsel_right}]]" class="edittext" style="width: 100%;" disabled title="Original Oxid" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left">&nbsp;</td> <td class="edittext ext_edittext" align="left">&nbsp;</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
</td> </td>
</tr> </tr>
[{* Alteinträge *}] [{* Alteinträge *}]
<tr> <tr>
<td class="edittext ext_edittext" valign="top" align="left"> <td class="edittext ext_edittext" valign="top" align="left">
<fieldset> <fieldset>
<table cellspacing="0" cellpadding="0" border="0" width="100%"> <table cellspacing="0" cellpadding="0" border="0" width="100%">
<colgroup> <colgroup>
<col width="200"> <col width="200">
<col> <col>
<col width="26"> <col width="26">
<col> <col>
<col width="26"> <col width="26">
<col width="26"> <col width="26">
</colgroup> </colgroup>
[{foreach from=$aTranslations item=translation}] [{foreach from=$aTranslations item=translation}]
<tr> <tr>
<td class="edittext ext_edittext"> <td class="edittext ext_edittext">
<input type="text" size="50" name="value[[{$translation->key}]][key]" class="edittext" style="width: 100%;" value="[{$translation->key}]" onkeyup="document.getElementById('org_[{$translation->key}]').checked=false;" [{$readonly}]> <input type="text" size="50" name="value[[{$translation->key}]][key]" class="edittext" style="width: 100%;" value="[{$translation->key}]" onkeyup="document.getElementById('org_[{$translation->key}]').checked=false;" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="value[[{$translation->key}]][[{$langsel_left}]]" class="edittext" style="width: 100%;" value="[{$translation->left}]" onkeyup="document.getElementById('org_[{$translation->key}]_[{$langsel_left}]').checked=false;" [{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]> <input type="text" size="50" name="value[[{$translation->key}]][[{$langsel_left}]]" class="edittext" style="width: 100%;" value="[{$translation->left}]" onkeyup="document.getElementById('org_[{$translation->key}]_[{$langsel_left}]').checked=false;" [{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="hidden" name="value[[{$translation->key}]][original_[{$langsel_left}]]" value="0"> <input type="hidden" name="value[[{$translation->key}]][original_[{$langsel_left}]]" value="0">
<input type="checkbox" id="org_[{$translation->key}]_[{$langsel_left}][{if $langsel_left == $langsel_right}]wp[{/if}]" name="value[[{$translation->key}]][original_[{$langsel_left}][{if $langsel_left == $langsel_right}]wp[{/if}]]" class="edittext" value="1" style="width: 100%;" [{if $translation->original_left}]checked[{/if}] title="Original Oxid" [{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]> <input type="checkbox" id="org_[{$translation->key}]_[{$langsel_left}][{if $langsel_left == $langsel_right}]wp[{/if}]" name="value[[{$translation->key}]][original_[{$langsel_left}][{if $langsel_left == $langsel_right}]wp[{/if}]]" class="edittext" value="1" style="width: 100%;" [{if $translation->original_left}]checked[{/if}] title="Original Oxid" [{if $langsel_left == $langsel_right}] disabled[{/if}] [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="text" size="50" name="value[[{$translation->key}]][[{$langsel_right}]]" class="edittext" style="width: 100%;" value="[{$translation->right}]" onkeyup="document.getElementById('org_[{$translation->key}]_[{$langsel_right}]').checked=false;" [{$readonly}]> <input type="text" size="50" name="value[[{$translation->key}]][[{$langsel_right}]]" class="edittext" style="width: 100%;" value="[{$translation->right}]" onkeyup="document.getElementById('org_[{$translation->key}]_[{$langsel_right}]').checked=false;" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<input type="hidden" name="value[[{$translation->key}]][original_[{$langsel_right}]]" value="0"> <input type="hidden" name="value[[{$translation->key}]][original_[{$langsel_right}]]" value="0">
<input type="checkbox" id="org_[{$translation->key}]_[{$langsel_right}]" name="value[[{$translation->key}]][original_[{$langsel_right}]]" class="edittext" value="1" style="width: 100%;" [{if $translation->original_right}]checked[{/if}] title="Original Oxid" [{$readonly}]> <input type="checkbox" id="org_[{$translation->key}]_[{$langsel_right}]" name="value[[{$translation->key}]][original_[{$langsel_right}]]" class="edittext" value="1" style="width: 100%;" [{if $translation->original_right}]checked[{/if}] title="Original Oxid" [{$readonly}]>
</td> </td>
<td class="edittext ext_edittext" align="left"> <td class="edittext ext_edittext" align="left">
<a id="del.2" class="delete" onmouseover="popUp(event,'item_delete');return true" onmouseout="popDown('item_delete')" title="" href="Javascript:DeleteThis('[{$translation->key}]');" [{$readonly}]> <a id="del.2" class="delete" onmouseover="popUp(event,'item_delete');return true" onmouseout="popDown('item_delete')" title="" href="Javascript:DeleteThis('[{$translation->key}]');" [{$readonly}]>
</td> </td>
</tr> </tr>
[{/foreach}] [{/foreach}]
</table> </table>
</fieldset> </fieldset>
</td> </td>
</tr> </tr>
[{* Speichern *}] [{* Speichern *}]
<tr> <tr>
<td class="edittext ext_edittext" valign="top" align="left"> <td class="edittext ext_edittext" valign="top" align="left">
<table width="100%"> <table width="100%">
<tr> <tr>
<td class="edittext ext_edittext" align="left"><br> <td class="edittext ext_edittext" align="left"><br>
<span class="d3modcfg_btn icon d3color-green"> <span class="d3modcfg_btn icon d3color-green">
<button type="submit" name="save" [{$readonly}]> <button type="submit" name="save" [{$readonly}]>
<i class="fa fa-check-circle fa-inverse"></i> <i class="fa fa-check-circle fa-inverse"></i>
[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}] [{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]
</button> </button>
</span> </span>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</form> </form>
[{/block}] [{/block}]
<table border="0" width="98%"> <table border="0" width="98%">
<tr> <tr>
<td class="edittext ext_edittext" valign="top" align="left"> <td class="edittext ext_edittext" valign="top" align="left">
[{include file="d3pagenavigation.tpl"}] [{include file="d3pagenavigation.tpl"}]
</td> </td>
</tr> </tr>
</table> </table>
[{else}] [{else}]
[{* vorher Sprachwahl *}] [{* vorher Sprachwahl *}]
<table border="0" width="98%"> <table border="0" width="98%">
<tr> <tr>
<td class="edittext ext_edittext" valign="top" align="left"> <td class="edittext ext_edittext" valign="top" align="left">
<table width="100%"> <table width="100%">
<tr> <tr>
<td class="edittext ext_edittext" align="left"><br> <td class="edittext ext_edittext" align="left"><br>
[{oxmultilang ident="D3_MULTILANG_CHOOSELANGFIRST"}] [{oxmultilang ident="D3_MULTILANG_CHOOSELANGFIRST"}]
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
[{/if}] [{/if}]
[{include file="d3_cfg_mod_inc.tpl"}] [{include file="d3_cfg_mod_inc.tpl"}]
[{block name="d3_cfg_multilang_main__clrtmp"}] [{block name="d3_cfg_multilang_main__clrtmp"}]
[{if $msg == 'success'}] [{if $msg == 'success'}]
<script type="text/javascript"> <script type="text/javascript">
if (confirm('[{oxmultilang ident="D3_MULTILANG_CLEARLANGCACHE"}]')) { if (confirm('[{oxmultilang ident="D3_MULTILANG_CLEARLANGCACHE"}]')) {
var oTransfer = parent.edit.document.getElementById("transfer"); var oTransfer = parent.edit.document.getElementById("transfer");
oTransfer.fnc.value='clearLangCache'; oTransfer.fnc.value='clearLangCache';
oTransfer.submit(); oTransfer.submit();
} }
</script> </script>
[{elseif $msg == 'newFieldError'}] [{elseif $msg == 'newFieldError'}]
<script type="text/javascript"> <script type="text/javascript">
alert('[{oxmultilang ident="D3_MULTILANG_NEWFIELDERROR"}]'); alert('[{oxmultilang ident="D3_MULTILANG_NEWFIELDERROR"}]');
</script> </script>
[{/if}] [{/if}]
[{/block}] [{/block}]

View File

@ -1,17 +1,17 @@
<?php <?php
$sLangName = "[{$sLangName}]"; $sLangName = "[{$sLangName}]";
// ------------------------------- // -------------------------------
// RESOURCE IDENTITFIER = STRING // RESOURCE IDENTITFIER = STRING
// ------------------------------- // -------------------------------
$aLang = array( $aLang = array(
//Navigation //Navigation
[{foreach from=$aTranslations item="translation" key="ident"}] [{foreach from=$aTranslations item="translation" key="ident"}]
[{strip}] [{strip}]
[{capture assign="sIdent"}][{$encloser}][{$ident}][{$encloser}][{/capture}] [{capture assign="sIdent"}][{$encloser}][{$ident}][{$encloser}][{/capture}]
[{$sIdent|str_pad:$maxIdentLength:' ':1}] => [{$encloser}][{$translation}][{$encloser}], [{$sIdent|str_pad:$maxIdentLength:' ':1}] => [{$encloser}][{$translation}][{$encloser}],
[{/strip}] [{/strip}]
[{/foreach}] [{/foreach}]
); );

View File

@ -1,37 +1,37 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* *
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* *
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
namespace D3\Multilang\Modules\Application\Controller\Admin namespace D3\Multilang\Modules\Application\Controller\Admin
{ {
class d3_navigation_multilang_parent extends \OxidEsales\Eshop\Application\Controller\Admin\NavigationController {} class d3_navigation_multilang_parent extends \OxidEsales\Eshop\Application\Controller\Admin\NavigationController {}
class d3_sysreq_main_multilang_parent extends \OxidEsales\Eshop\Application\Controller\Admin\SystemRequirementsMain {} class d3_sysreq_main_multilang_parent extends \OxidEsales\Eshop\Application\Controller\Admin\SystemRequirementsMain {}
class d3cleartmp_multilang_parent extends \D3\ModCfg\Application\Controller\Admin\Maintenance\d3cleartmp {} class d3cleartmp_multilang_parent extends \D3\ModCfg\Application\Controller\Admin\Maintenance\d3cleartmp {}
} }
namespace D3\Multilang\Modules\Application\Model\Maintenance namespace D3\Multilang\Modules\Application\Model\Maintenance
{ {
class d3clrtmp_multilang_parent extends \D3\ModCfg\Application\Model\Maintenance\d3clrtmp {} class d3clrtmp_multilang_parent extends \D3\ModCfg\Application\Model\Maintenance\d3clrtmp {}
} }
namespace D3\Multilang\Modules\Core namespace D3\Multilang\Modules\Core
{ {
class d3_oxlang_multilang_parent extends \OxidEsales\Eshop\Core\Language {} class d3_oxlang_multilang_parent extends \OxidEsales\Eshop\Core\Language {}
class d3_oxsysrequirements_multilang_parent extends \OxidEsales\Eshop\Core\SystemRequirements {} class d3_oxsysrequirements_multilang_parent extends \OxidEsales\Eshop\Core\SystemRequirements {}
} }

View File

@ -1,30 +1,30 @@
<?php <?php
namespace D3\Multilang\Modules\Application\Controller\Admin; namespace D3\Multilang\Modules\Application\Controller\Admin;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3_sysreq_main_multilang extends d3_sysreq_main_multilang_parent class d3_sysreq_main_multilang extends d3_sysreq_main_multilang_parent
{ {
public function render() public function render()
{ {
$sRet = parent::render(); $sRet = parent::render();
$aCollations = $this->_aViewData['aCollations']; $aCollations = $this->_aViewData['aCollations'];
unset($aCollations['d3_translations']); unset($aCollations['d3_translations']);
$this->_aViewData['aCollations'] = $aCollations; $this->_aViewData['aCollations'] = $aCollations;
return $sRet; return $sRet;
} }
} }

View File

@ -1,71 +1,71 @@
<?php <?php
namespace D3\Multilang\Modules\Application\Controller\Admin; namespace D3\Multilang\Modules\Application\Controller\Admin;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod; use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\Multilang\Application\Model\d3_translations; use D3\Multilang\Application\Model\d3_translations;
use Doctrine\DBAL\DBALException; use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\UtilsView; use OxidEsales\Eshop\Core\UtilsView;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3cleartmp_multilang extends d3cleartmp_multilang_parent class d3cleartmp_multilang extends d3cleartmp_multilang_parent
{ {
protected $_sMultiLangModId = 'd3_multilang'; protected $_sMultiLangModId = 'd3_multilang';
/** /**
* @return string * @return string
*/ */
protected function _d3GetMultiLangModId() protected function _d3GetMultiLangModId()
{ {
return $this->_sMultiLangModId; return $this->_sMultiLangModId;
} }
/** /**
* @return bool|d3_cfg_mod|false * @return bool|d3_cfg_mod|false
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function d3GetMultiLangSet() public function d3GetMultiLangSet()
{ {
return d3_cfg_mod::get($this->_d3GetMultiLangModId()); return d3_cfg_mod::get($this->_d3GetMultiLangModId());
} }
public function clearTmp() public function clearTmp()
{ {
$blReturn = false; $blReturn = false;
if ($this->d3GetMultiLangSet()->isActive()) { if ($this->d3GetMultiLangSet()->isActive()) {
if (!Registry::getRequest()->getRequestEscapedParameter('clearall')) { if (!Registry::getRequest()->getRequestEscapedParameter('clearall')) {
if (Registry::getRequest()->getRequestEscapedParameter('importmultilang')) { if (Registry::getRequest()->getRequestEscapedParameter('importmultilang')) {
$this->addTplParam('importMultilang', true); $this->addTplParam('importMultilang', true);
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$oTranslation->importInstalled(); $oTranslation->importInstalled();
} }
} }
if ($blReturn) { if ($blReturn) {
Registry::get(UtilsView::class)->addErrorToDisplay(new StandardException('D3_CFG_CLRTMP_SUCCESS')); Registry::get(UtilsView::class)->addErrorToDisplay(new StandardException('D3_CFG_CLRTMP_SUCCESS'));
} }
} }
parent::clearTmp(); parent::clearTmp();
} }
} }

View File

@ -1,46 +1,46 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* *
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* *
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
namespace D3\Multilang\Setup; namespace D3\Multilang\Setup;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Install\d3install; use D3\ModCfg\Application\Model\Install\d3install;
use Doctrine\DBAL\DBALException; use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Exception\SystemComponentException; use OxidEsales\Eshop\Core\Exception\SystemComponentException;
class Events class Events
{ {
/** /**
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws StandardException * @throws StandardException
* @throws SystemComponentException * @throws SystemComponentException
*/ */
public static function onActivate() public static function onActivate()
{ {
d3install::checkUpdateStart(); d3install::checkUpdateStart();
} }
public static function onDeactivate() public static function onDeactivate()
{ {
} }
} }

View File

@ -1,472 +1,472 @@
<?php <?php
namespace D3\Multilang\Setup; namespace D3\Multilang\Setup;
use D3\ModCfg\Application\Model\d3database; use D3\ModCfg\Application\Model\d3database;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception; use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException; use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Install\d3install_updatebase; use D3\ModCfg\Application\Model\Install\d3install_updatebase;
use D3\ModCfg\Application\Model\Installwizzard\d3installconfirmmessage; use D3\ModCfg\Application\Model\Installwizzard\d3installconfirmmessage;
use D3\ModCfg\Application\Model\Installwizzard\d3installdbcommon; use D3\ModCfg\Application\Model\Installwizzard\d3installdbcommon;
use D3\Multilang\Application\Model\d3_translations; use D3\Multilang\Application\Model\d3_translations;
use Doctrine\DBAL\DBALException; use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Application\Model\Shop; use OxidEsales\Eshop\Application\Model\Shop;
use OxidEsales\Eshop\Core\DatabaseProvider; use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\ConnectionException; use OxidEsales\Eshop\Core\Exception\ConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException; use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Registry;
use ReflectionException; use ReflectionException;
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* *
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* *
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3multilang_update extends d3install_updatebase class d3multilang_update extends d3install_updatebase
{ {
public $sModKey = 'd3_multilang'; public $sModKey = 'd3_multilang';
public $sModName = 'Übersetzungsassistent'; public $sModName = 'Übersetzungsassistent';
public $sModVersion = '4.0.0.1'; public $sModVersion = '4.0.0.1';
public $sModRevision = '4001'; public $sModRevision = '4001';
public $sBaseConf = 'b1av2==aGNOa0hIWDFTaGVGdUhSdysxSjB6SVowWUdyWFhWMGFXS2NpYktnKzlkN2ZnNG03MndET2RuW public $sBaseConf = 'b1av2==aGNOa0hIWDFTaGVGdUhSdysxSjB6SVowWUdyWFhWMGFXS2NpYktnKzlkN2ZnNG03MndET2RuW
nNPVnFudmFUU2d1WnNTV1hCNk5odUg5S1FXdnZIS3IvWTgvVnpOZVhmSzcyZW1JMHVJa0JJNkZEbjJCT nNPVnFudmFUU2d1WnNTV1hCNk5odUg5S1FXdnZIS3IvWTgvVnpOZVhmSzcyZW1JMHVJa0JJNkZEbjJCT
EY1RmEzaG5TUGNiSkRCTVVVK2kya2d5SDl4aTQ4R28waHlxUFBPVzhkQnM4Y0k3alZtYTVaTlFlYXVFV EY1RmEzaG5TUGNiSkRCTVVVK2kya2d5SDl4aTQ4R28waHlxUFBPVzhkQnM4Y0k3alZtYTVaTlFlYXVFV
0NxSGI5a2pnRTdzc2NFMEF2T3pSOW9zbG5EV01TLzU3UGEvZGRRcEZLeXNhNDMvQVV4YnVpN1c2czFad 0NxSGI5a2pnRTdzc2NFMEF2T3pSOW9zbG5EV01TLzU3UGEvZGRRcEZLeXNhNDMvQVV4YnVpN1c2czFad
VRmcHU5c3htT2lJRVhIVGxrK1RJOUczdEwzZjJNSnJGQ21iamhaR2w5QU9UemdKQUVxcU5CQWhCMnFyL VRmcHU5c3htT2lJRVhIVGxrK1RJOUczdEwzZjJNSnJGQ21iamhaR2w5QU9UemdKQUVxcU5CQWhCMnFyL
09ybjB5cWp0MTM5VUQ1K05rVmVGNkE5UUdQa3RKcXpyNkpEbWNuMGdCWDVZSG9nPT0='; 09ybjB5cWp0MTM5VUQ1K05rVmVGNkE5UUdQa3RKcXpyNkpEbWNuMGdCWDVZSG9nPT0=';
public $sRequirements = ''; public $sRequirements = '';
public $sBaseValue = 'TyUzQTglM0ElMjJzdGRDbGFzcyUyMiUzQTQlM0ElN0JzJTNBMjglM0ElMjJkM19jZmdfbW9kX19hTGljZW5zZUluZm9NYWlsJTIyJTNCYSUzQTIlM0ElN0JzJTNBNDglM0ElMjJVTktOT1dOQ09ORktFWV9fNDc5MzYzODcwMmI2NzcxNWYxZGZiZmM4MzI0NjY5MTQlMjIlM0JzJTNBMTklM0ElMjIyMDEzLTEwLTE3JTIwMDklM0EzOSUzQTUyJTIyJTNCcyUzQTQyJTNBJTIyTk9MSUNLRVlfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0xMC0xNyUyMDA5JTNBNDElM0EyNyUyMiUzQiU3RHMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX2JsTXVsdGlsYW5nX091dHB1dE1pbWVUeXBlJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTMyJTNBJTIyZDNfY2ZnX21vZF9fc011bHRpbGFuZ19TZXBhcmF0b3IlMjIlM0JzJTNBMSUzQSUyMiU3QyUyMiUzQnMlM0E0MCUzQSUyMmQzX2NmZ19tb2RfX2JsTXVsdGlsYW5nX1NhdmVNaXNzaW5nSXRlbXMlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0IlN0Q='; public $sBaseValue = 'TyUzQTglM0ElMjJzdGRDbGFzcyUyMiUzQTQlM0ElN0JzJTNBMjglM0ElMjJkM19jZmdfbW9kX19hTGljZW5zZUluZm9NYWlsJTIyJTNCYSUzQTIlM0ElN0JzJTNBNDglM0ElMjJVTktOT1dOQ09ORktFWV9fNDc5MzYzODcwMmI2NzcxNWYxZGZiZmM4MzI0NjY5MTQlMjIlM0JzJTNBMTklM0ElMjIyMDEzLTEwLTE3JTIwMDklM0EzOSUzQTUyJTIyJTNCcyUzQTQyJTNBJTIyTk9MSUNLRVlfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0xMC0xNyUyMDA5JTNBNDElM0EyNyUyMiUzQiU3RHMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX2JsTXVsdGlsYW5nX091dHB1dE1pbWVUeXBlJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTMyJTNBJTIyZDNfY2ZnX21vZF9fc011bHRpbGFuZ19TZXBhcmF0b3IlMjIlM0JzJTNBMSUzQSUyMiU3QyUyMiUzQnMlM0E0MCUzQSUyMmQzX2NmZ19tb2RfX2JsTXVsdGlsYW5nX1NhdmVNaXNzaW5nSXRlbXMlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0IlN0Q=';
protected $_aUpdateMethods = array( protected $_aUpdateMethods = array(
array('check' => 'checkModCfgItemExist', array('check' => 'checkModCfgItemExist',
'do' => 'updateModCfgItemExist'), 'do' => 'updateModCfgItemExist'),
array('check' => 'checkRenameFields', array('check' => 'checkRenameFields',
'do' => 'fixRenameFields'), 'do' => 'fixRenameFields'),
array('check' => 'checkDeleteFields', array('check' => 'checkDeleteFields',
'do' => 'fixDeleteFields'), 'do' => 'fixDeleteFields'),
array('check' => 'checkTranslationTableExist', array('check' => 'checkTranslationTableExist',
'do' => 'updateTranslationTableExist'), 'do' => 'updateTranslationTableExist'),
array('check' => 'checkFields', array('check' => 'checkFields',
'do' => 'fixFields'), 'do' => 'fixFields'),
array('check' => 'checkIdentCollation', array('check' => 'checkIdentCollation',
'do' => 'fixIdentCollation'), 'do' => 'fixIdentCollation'),
array('check' => 'checkIndizes', array('check' => 'checkIndizes',
'do' => 'fixIndizes'), 'do' => 'fixIndizes'),
array('check' => 'checkFieldsCollation', array('check' => 'checkFieldsCollation',
'do' => 'fixFieldsCollation'), 'do' => 'fixFieldsCollation'),
array('check' => 'checkMultiLangDbItemsNotExist', array('check' => 'checkMultiLangDbItemsNotExist',
'do' => 'importMultiLangItems'), 'do' => 'importMultiLangItems'),
array('check' => 'hasUnregisteredFiles', array('check' => 'hasUnregisteredFiles',
'do' => 'showUnregisteredFiles'), 'do' => 'showUnregisteredFiles'),
array('check' => 'checkModCfgSameRevision', array('check' => 'checkModCfgSameRevision',
'do' => 'updateModCfgSameRevision'), 'do' => 'updateModCfgSameRevision'),
); );
public $aFields = array( public $aFields = array(
'OXID' => array( 'OXID' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'OXID', 'sFieldName' => 'OXID',
'sType' => 'VARCHAR(100)', 'sType' => 'VARCHAR(100)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'OXTEXT' => array( 'OXTEXT' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'OXTEXT', 'sFieldName' => 'OXTEXT',
'sType' => 'TEXT', 'sType' => 'TEXT',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => true, 'blMultilang' => true,
'sForceCollation' => 'utf8_general_ci' 'sForceCollation' => 'utf8_general_ci'
), ),
'OXORIGINAL' => array( 'OXORIGINAL' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'OXORIGINAL', 'sFieldName' => 'OXORIGINAL',
'sType' => 'TINYINT(1)', 'sType' => 'TINYINT(1)',
'blNull' => false, 'blNull' => false,
'sDefault' => '0', 'sDefault' => '0',
'sComment' => 'item is modified', 'sComment' => 'item is modified',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => true, 'blMultilang' => true,
), ),
'OXSTRING' => array( 'OXSTRING' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'OXSTRING', 'sFieldName' => 'OXSTRING',
'sType' => 'TINYINT(1)', 'sType' => 'TINYINT(1)',
'blNull' => false, 'blNull' => false,
'sDefault' => '1', 'sDefault' => '1',
'sComment' => 'item ist string or serialized structure', 'sComment' => 'item ist string or serialized structure',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'OXADMIN' => array( 'OXADMIN' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'OXADMIN', 'sFieldName' => 'OXADMIN',
'sType' => 'TINYINT(1)', 'sType' => 'TINYINT(1)',
'blNull' => false, 'blNull' => false,
'sDefault' => '0', 'sDefault' => '0',
'sComment' => 'item is used in admin panel', 'sComment' => 'item is used in admin panel',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
); );
public $aIndizes = array( public $aIndizes = array(
'OXID' => array( 'OXID' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sType' => d3database::INDEX_TYPE_PRIMARY, 'sType' => d3database::INDEX_TYPE_PRIMARY,
'sName' => 'OXID', 'sName' => 'OXID',
'aFields' => array( 'aFields' => array(
'OXID' => 'OXID', 'OXID' => 'OXID',
'OXADMIN' => 'OXADMIN', 'OXADMIN' => 'OXADMIN',
), ),
), ),
); );
public $aRenameFields = array( public $aRenameFields = array(
'OXID' => array( 'OXID' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'mOldFieldNames' => array('oxident', 'OXIDENT'), // is case sensitive 'mOldFieldNames' => array('oxident', 'OXIDENT'), // is case sensitive
'sFieldName' => 'OXID', 'sFieldName' => 'OXID',
'blMultilang' => false, 'blMultilang' => false,
), ),
'OXTEXT_0' => array( 'OXTEXT_0' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'mOldFieldNames' => array('oxtext', 'oxtext_0'), // is case sensitive 'mOldFieldNames' => array('oxtext', 'oxtext_0'), // is case sensitive
'sFieldName' => 'OXTEXT', 'sFieldName' => 'OXTEXT',
'blMultilang' => false, 'blMultilang' => false,
), ),
'OXTEXT' => array( 'OXTEXT' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'mOldFieldNames' => array('oxtext'), // is case sensitive 'mOldFieldNames' => array('oxtext'), // is case sensitive
'sFieldName' => 'OXTEXT', 'sFieldName' => 'OXTEXT',
'blMultilang' => true, 'blMultilang' => true,
), ),
'OXORIGINAL' => array( 'OXORIGINAL' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'mOldFieldNames' => array('oxoriginal'), // is case sensitive 'mOldFieldNames' => array('oxoriginal'), // is case sensitive
'sFieldName' => 'OXORIGINAL', 'sFieldName' => 'OXORIGINAL',
'blMultilang' => false, 'blMultilang' => false,
), ),
); );
public $aDeleteFields = array( public $aDeleteFields = array(
'OXISSET' => array( 'OXISSET' => array(
'sTableName' => 'd3_translations', 'sTableName' => 'd3_translations',
'sFieldName' => 'oxisset', 'sFieldName' => 'oxisset',
'blMultilang' => false, 'blMultilang' => false,
), ),
); );
protected $_aRefreshMetaModuleIds = array('d3_multilang'); protected $_aRefreshMetaModuleIds = array('d3_multilang');
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function checkTranslationTableExist() public function checkTranslationTableExist()
{ {
return $this->_checkTableNotExist('d3_translations'); return $this->_checkTableNotExist('d3_translations');
} }
/** /**
* @return bool * @return bool
* @throws ConnectionException * @throws ConnectionException
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function updateTranslationTableExist() public function updateTranslationTableExist()
{ {
$blRet = false; $blRet = false;
if ($this->checkTranslationTableExist()) { if ($this->checkTranslationTableExist()) {
$this->setInitialExecMethod(__METHOD__); $this->setInitialExecMethod(__METHOD__);
$blRet = $this->_addTable2('d3_translations', $this->aFields, $this->aIndizes, 'D3 multilang', 'MyISAM'); $blRet = $this->_addTable2('d3_translations', $this->aFields, $this->aIndizes, 'D3 multilang', 'MyISAM');
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws d3ParameterNotFoundException * @throws d3ParameterNotFoundException
*/ */
public function checkIdentCollation() public function checkIdentCollation()
{ {
$sFieldCollation = $this->_getIdentCollation(); $sFieldCollation = $this->_getIdentCollation();
$sPattern = '@.*_cs|.*_bin@'; $sPattern = '@.*_cs|.*_bin@';
return false == preg_match($sPattern, $sFieldCollation); return false == preg_match($sPattern, $sFieldCollation);
} }
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws d3ParameterNotFoundException * @throws d3ParameterNotFoundException
*/ */
public function fixIdentCollation() public function fixIdentCollation()
{ {
$sFieldIdent = 'OXID'; $sFieldIdent = 'OXID';
$sFieldCollation = $this->_getIdentCollation(); $sFieldCollation = $this->_getIdentCollation();
$sGeneralPattern = '@(.*)_ci@'; $sGeneralPattern = '@(.*)_ci@';
preg_match($sGeneralPattern, $sFieldCollation, $aGeneralMatches); preg_match($sGeneralPattern, $sFieldCollation, $aGeneralMatches);
$sBinPattern = '@(.*)_general_ci@'; $sBinPattern = '@(.*)_general_ci@';
preg_match($sBinPattern, $sFieldCollation, $aBinMatches); preg_match($sBinPattern, $sFieldCollation, $aBinMatches);
$oDatabase = $this->_getDatabaseHandler(); $oDatabase = $this->_getDatabaseHandler();
$sAvailableCollationSelect = "SHOW COLLATION WHERE Collation IN( $sAvailableCollationSelect = "SHOW COLLATION WHERE Collation IN(
'".$aGeneralMatches[1]."_cs', 'utf8_general_cs', 'latin1_general_cs', '".$aGeneralMatches[1]."_cs', 'utf8_general_cs', 'latin1_general_cs',
'".$aBinMatches[1]."_bin', 'utf8_bin', 'latin1_bin' '".$aBinMatches[1]."_bin', 'utf8_bin', 'latin1_bin'
)"; )";
$aAvailableCollations = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC)->getAll($sAvailableCollationSelect); $aAvailableCollations = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC)->getAll($sAvailableCollationSelect);
usort($aAvailableCollations, array($this, 'sortCollations')); usort($aAvailableCollations, array($this, 'sortCollations'));
if (count($aAvailableCollations)) { if (count($aAvailableCollations)) {
$sSelect = 'ALTER TABLE `'.$this->aFields[$sFieldIdent]['sTableName'].'` CHANGE `'. $sSelect = 'ALTER TABLE `'.$this->aFields[$sFieldIdent]['sTableName'].'` CHANGE `'.
$this->aFields[$sFieldIdent]['sFieldName'].'` `'.$this->aFields[$sFieldIdent]['sFieldName'].'` '. $this->aFields[$sFieldIdent]['sFieldName'].'` `'.$this->aFields[$sFieldIdent]['sFieldName'].'` '.
$this->aFields[$sFieldIdent]['sType'].' CHARACTER SET '.$oDatabase->getBaseCharset(). $this->aFields[$sFieldIdent]['sType'].' CHARACTER SET '.$oDatabase->getBaseCharset().
' COLLATE '.$aAvailableCollations[0]['Collation'].' NOT NULL;'; ' COLLATE '.$aAvailableCollations[0]['Collation'].' NOT NULL;';
$this->setActionLog( $this->setActionLog(
'SQL', 'SQL',
$sSelect, $sSelect,
$this->getInitialExecMethod(__METHOD__) $this->getInitialExecMethod(__METHOD__)
); );
/** @var d3installdbcommon $oDbCommon */ /** @var d3installdbcommon $oDbCommon */
$oDbCommon = oxNew(d3installdbcommon::class, $this); $oDbCommon = oxNew(d3installdbcommon::class, $this);
$blRet = $oDbCommon->tableSqlExecute($sSelect, $this->aFields[$sFieldIdent]['sTableName'], false); $blRet = $oDbCommon->tableSqlExecute($sSelect, $this->aFields[$sFieldIdent]['sTableName'], false);
} else { } else {
/** @var d3installconfirmmessage $oMessage */ /** @var d3installconfirmmessage $oMessage */
$sMessage = sprintf( $sMessage = sprintf(
Registry::getLang()->translateString('D3_MULTILANG_INSTALL_NOCSCOLLATION'), Registry::getLang()->translateString('D3_MULTILANG_INSTALL_NOCSCOLLATION'),
$this->aFields[$sFieldIdent]['sFieldName'], $this->aFields[$sFieldIdent]['sFieldName'],
$this->aFields[$sFieldIdent]['sTableName'] $this->aFields[$sFieldIdent]['sTableName']
); );
$oMessage = oxNew(d3installconfirmmessage::class, $this); $oMessage = oxNew(d3installconfirmmessage::class, $this);
$blRet = $oMessage->confirmCustomMessage($sMessage); $blRet = $oMessage->confirmCustomMessage($sMessage);
} }
return $blRet; return $blRet;
} }
/** /**
* @param $a * @param $a
* @param $b * @param $b
* *
* @return int * @return int
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
*/ */
public function sortCollations($a, $b) public function sortCollations($a, $b)
{ {
$oDatabase = $this->_getDatabaseHandler(); $oDatabase = $this->_getDatabaseHandler();
$sBaseCharset = $oDatabase->getBaseCharset(); $sBaseCharset = $oDatabase->getBaseCharset();
if ($a['Charset'] == $sBaseCharset && $b['Charset'] != $sBaseCharset) { if ($a['Charset'] == $sBaseCharset && $b['Charset'] != $sBaseCharset) {
return -1; return -1;
} elseif ($a['Charset'] != $sBaseCharset && $b['Charset'] == $sBaseCharset) { } elseif ($a['Charset'] != $sBaseCharset && $b['Charset'] == $sBaseCharset) {
return 1; return 1;
} }
if (strstr($a['Collation'], '_general_cs') && !strstr($b['Collation'], '_general_cs')) { if (strstr($a['Collation'], '_general_cs') && !strstr($b['Collation'], '_general_cs')) {
return -1; return -1;
} elseif (!strstr($a['Collation'], '_general_cs') && strstr($b['Collation'], '_general_cs')) { } elseif (!strstr($a['Collation'], '_general_cs') && strstr($b['Collation'], '_general_cs')) {
return 1; return 1;
} }
return 0; return 0;
} }
/** /**
* @return string * @return string
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws d3ParameterNotFoundException * @throws d3ParameterNotFoundException
*/ */
protected function _getIdentCollation() protected function _getIdentCollation()
{ {
if ($this->getCacheHandler()->has(__METHOD__)) { if ($this->getCacheHandler()->has(__METHOD__)) {
return $this->getCacheHandler()->get(__METHOD__); return $this->getCacheHandler()->get(__METHOD__);
} }
startProfile(__METHOD__); startProfile(__METHOD__);
$myConfig = Registry::getConfig(); $myConfig = Registry::getConfig();
$sSelect = 'select c.COLLATION_NAME from INFORMATION_SCHEMA.tables t ' . $sSelect = 'select c.COLLATION_NAME from INFORMATION_SCHEMA.tables t ' .
'LEFT JOIN INFORMATION_SCHEMA.columns c ON t.TABLE_NAME = c.TABLE_NAME ' . 'LEFT JOIN INFORMATION_SCHEMA.columns c ON t.TABLE_NAME = c.TABLE_NAME ' .
'where t.TABLE_SCHEMA = "' . $myConfig->getConfigParam('dbName') . '" ' . 'where t.TABLE_SCHEMA = "' . $myConfig->getConfigParam('dbName') . '" ' .
'and t.TABLE_NAME = "d3_translations" ' . 'and t.TABLE_NAME = "d3_translations" ' .
'and c.TABLE_SCHEMA = "' . $myConfig->getConfigParam('dbName') . '" ' . 'and c.TABLE_SCHEMA = "' . $myConfig->getConfigParam('dbName') . '" ' .
'and c.COLUMN_NAME = "OXID" ' . 'and c.COLUMN_NAME = "OXID" ' .
' LIMIT 1'; ' LIMIT 1';
$sCollation = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC)->getOne($sSelect); $sCollation = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC)->getOne($sSelect);
$this->getCacheHandler()->set(__METHOD__, $sCollation); $this->getCacheHandler()->set(__METHOD__, $sCollation);
stopProfile(__METHOD__); stopProfile(__METHOD__);
return $sCollation; return $sCollation;
} }
/** /**
* @return bool * @return bool
*/ */
public function checkIndexRefreshMsg() public function checkIndexRefreshMsg()
{ {
if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) {
return true; return true;
} }
return false; return false;
} }
/** /**
* @return bool * @return bool
*/ */
public function fixIndexRefreshMsg() public function fixIndexRefreshMsg()
{ {
$blRet = true; $blRet = true;
if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) {
Registry::getSession()->setVariable('checkIndexRefreshMsg', false); Registry::getSession()->setVariable('checkIndexRefreshMsg', false);
$this->_confirmMessage('D3_EXTSEARCH_UPDATE_GENPHONETIC'); $this->_confirmMessage('D3_EXTSEARCH_UPDATE_GENPHONETIC');
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
*/ */
public function checkContentNoArtItemExist() public function checkContentNoArtItemExist()
{ {
$blRet = false; $blRet = false;
foreach ($this->getShopList() as $oShop) { foreach ($this->getShopList() as $oShop) {
/** @var $oShop Shop */ /** @var $oShop Shop */
$aWhere = array( $aWhere = array(
'oxloadid' => 'd3extsearch_noarticlefound', 'oxloadid' => 'd3extsearch_noarticlefound',
'oxshopid' => $oShop->getId(), 'oxshopid' => $oShop->getId(),
); );
$blRet = $this->_checkTableItemNotExist('oxcontents', $aWhere); $blRet = $this->_checkTableItemNotExist('oxcontents', $aWhere);
if ($blRet) { if ($blRet) {
return $blRet; return $blRet;
} }
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool true, if update is required * @return bool true, if update is required
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
*/ */
public function checkMultiLangDbItemsNotExist() public function checkMultiLangDbItemsNotExist()
{ {
$blRet = false; $blRet = false;
// change this to your inividual check criterias // change this to your inividual check criterias
$sSql = "SELECT count(`oxid`) "; $sSql = "SELECT count(`oxid`) ";
$sSql .= "FROM `d3_translations` WHERE 1;"; $sSql .= "FROM `d3_translations` WHERE 1;";
if ($this->getDb()->getOne($sSql) == 0) { if ($this->getDb()->getOne($sSql) == 0) {
$blRet = true; $blRet = true;
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
*/ */
public function importMultiLangItems() public function importMultiLangItems()
{ {
$this->setInitialExecMethod(__METHOD__); $this->setInitialExecMethod(__METHOD__);
if ($this->checkMultiLangDbItemsNotExist()) { if ($this->checkMultiLangDbItemsNotExist()) {
if ($this->hasExecute()) { if ($this->hasExecute()) {
/** @var d3_translations $oTranslation */ /** @var d3_translations $oTranslation */
$oTranslation = oxNew(d3_translations::class); $oTranslation = oxNew(d3_translations::class);
$iImport = $oTranslation->importInstalled(); $iImport = $oTranslation->importInstalled();
$this->setActionLog( $this->setActionLog(
'MSG', 'MSG',
sprintf(Registry::getLang()->translateString('D3_MULTILANG_INSTALL_IMPORTSUCC'), $iImport), sprintf(Registry::getLang()->translateString('D3_MULTILANG_INSTALL_IMPORTSUCC'), $iImport),
$this->getInitialExecMethod(__METHOD__) $this->getInitialExecMethod(__METHOD__)
); );
} else { } else {
$this->setActionLog( $this->setActionLog(
'MSG', 'MSG',
Registry::getLang()->translateString('D3_MULTILANG_INSTALL_EXECIMPORT'), Registry::getLang()->translateString('D3_MULTILANG_INSTALL_EXECIMPORT'),
$this->getInitialExecMethod(__METHOD__) $this->getInitialExecMethod(__METHOD__)
); );
} }
$this->setUpdateBreak(true); $this->setUpdateBreak(true);
} }
return true; return true;
} }
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
* @throws StandardException * @throws StandardException
* @throws ReflectionException * @throws ReflectionException
* @throws d3ParameterNotFoundException * @throws d3ParameterNotFoundException
*/ */
public function hasUnregisteredFiles() public function hasUnregisteredFiles()
{ {
return $this->_hasUnregisteredFiles('d3_multilang', array('blocks', 'd3FileRegister')); return $this->_hasUnregisteredFiles('d3_multilang', array('blocks', 'd3FileRegister'));
} }
/** /**
* @return bool * @return bool
* @throws DBALException * @throws DBALException
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
* @throws DatabaseErrorException * @throws DatabaseErrorException
* @throws ReflectionException * @throws ReflectionException
* @throws StandardException * @throws StandardException
* @throws d3ShopCompatibilityAdapterException * @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception * @throws d3_cfg_mod_exception
*/ */
public function showUnregisteredFiles() public function showUnregisteredFiles()
{ {
return $this->_showUnregisteredFiles('d3_multilang', array('blocks', 'd3FileRegister')); return $this->_showUnregisteredFiles('d3_multilang', array('blocks', 'd3FileRegister'));
} }
} }

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<OX> <OX>
<OXMENU id="d3mxd3modules"> <OXMENU id="d3mxd3modules">
<MAINMENU id="d3mxmultilang"> <MAINMENU id="d3mxmultilang">
<SUBMENU id="d3mxmultilang_settings" cl="d3_cfg_multilang" list="d3_cfg_multilang_list"> <SUBMENU id="d3mxmultilang_settings" cl="d3_cfg_multilang" list="d3_cfg_multilang_list">
<TAB id="d3tbclmultilang_imex" cl="d3_cfg_multilang_imex" /> <TAB id="d3tbclmultilang_imex" cl="d3_cfg_multilang_imex" />
<TAB id="d3tbclmultilang_translations" cl="d3_cfg_multilang_main" /> <TAB id="d3tbclmultilang_translations" cl="d3_cfg_multilang_main" />
<TAB id="d3tbcl_licence" cl="d3_cfg_multilang_licence" /> <TAB id="d3tbcl_licence" cl="d3_cfg_multilang_licence" />
</SUBMENU> </SUBMENU>
</MAINMENU> </MAINMENU>
</OXMENU> </OXMENU>
</OX> </OX>

View File

@ -1,89 +1,89 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* http://www.shopmodule.com * http://www.shopmodule.com
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
use D3\ModCfg\Application\Controller\Admin\Maintenance\d3cleartmp; use D3\ModCfg\Application\Controller\Admin\Maintenance\d3cleartmp;
use D3\ModCfg\Application\Model\d3utils; use D3\ModCfg\Application\Model\d3utils;
use D3\ModCfg\Application\Model\Maintenance\d3clrtmp; use D3\ModCfg\Application\Model\Maintenance\d3clrtmp;
use OxidEsales\Eshop\Application\Controller\Admin\SystemRequirementsMain; use OxidEsales\Eshop\Application\Controller\Admin\SystemRequirementsMain;
use OxidEsales\Eshop\Core\Language; use OxidEsales\Eshop\Core\Language;
/** /**
* Metadata version * Metadata version
*/ */
$sMetadataVersion = '2.0'; $sMetadataVersion = '2.0';
/** /**
* Module information * Module information
*/ */
$aModule = array( $aModule = array(
'id' => 'd3_multilang', 'id' => 'd3_multilang',
'title' => (class_exists(d3utils::class) ? d3utils::getInstance()->getD3Logo() : 'D&sup3;') . ' &Uuml;bersetzungsassistent', 'title' => (class_exists(d3utils::class) ? d3utils::getInstance()->getD3Logo() : 'D&sup3;') . ' &Uuml;bersetzungsassistent',
'description' => array( 'description' => array(
'de' => 'Verwalten Sie die Textbausteine des Shop bequem im Adminbereich', 'de' => 'Verwalten Sie die Textbausteine des Shop bequem im Adminbereich',
'en' => '', 'en' => '',
), ),
'thumbnail' => 'picture.png', 'thumbnail' => 'picture.png',
'version' => '4.0.0.1', 'version' => '4.0.0.1',
'author' => 'D&sup3; Data Development (Inh.: Thomas Dartsch)', 'author' => 'D&sup3; Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com', 'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/', 'url' => 'http://www.oxidmodule.com/',
'extend' => array( 'extend' => array(
Language::class => D3\Multilang\Modules\Core\d3_oxlang_multilang::class, Language::class => D3\Multilang\Modules\Core\d3_oxlang_multilang::class,
d3cleartmp::class => D3\Multilang\Modules\Application\Controller\Admin\d3cleartmp_multilang::class, d3cleartmp::class => D3\Multilang\Modules\Application\Controller\Admin\d3cleartmp_multilang::class,
d3clrtmp::class => D3\Multilang\Modules\Application\Model\Maintenance\d3clrtmp_multilang::class, d3clrtmp::class => D3\Multilang\Modules\Application\Model\Maintenance\d3clrtmp_multilang::class,
SystemRequirementsMain::class => D3\Multilang\Modules\Application\Controller\Admin\d3_sysreq_main_multilang::class, SystemRequirementsMain::class => D3\Multilang\Modules\Application\Controller\Admin\d3_sysreq_main_multilang::class,
), ),
'controllers' => array( 'controllers' => array(
'd3_cfg_multilang' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang::class, 'd3_cfg_multilang' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang::class,
'd3_cfg_multilang_imex' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_imex::class, 'd3_cfg_multilang_imex' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_imex::class,
'd3_cfg_multilang_licence' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_licence::class, 'd3_cfg_multilang_licence' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_licence::class,
'd3_cfg_multilang_list' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_list::class, 'd3_cfg_multilang_list' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_list::class,
'd3_cfg_multilang_main' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_main::class, 'd3_cfg_multilang_main' => D3\Multilang\Application\Controller\Admin\d3_cfg_multilang_main::class,
), ),
'templates' => array( 'templates' => array(
'd3_cfg_multilang_imex.tpl' => 'd3/multilang/Application/views/admin/tpl/d3_cfg_multilang_imex.tpl', 'd3_cfg_multilang_imex.tpl' => 'd3/multilang/Application/views/admin/tpl/d3_cfg_multilang_imex.tpl',
'd3_cfg_multilang_main.tpl' => 'd3/multilang/Application/views/admin/tpl/d3_cfg_multilang_main.tpl', 'd3_cfg_multilang_main.tpl' => 'd3/multilang/Application/views/admin/tpl/d3_cfg_multilang_main.tpl',
'd3_oxid_lang_file_pattern.tpl' => 'd3/multilang/Application/views/admin/tpl/modcfg-pattern/oxid_lang_file.tpl', 'd3_oxid_lang_file_pattern.tpl' => 'd3/multilang/Application/views/admin/tpl/modcfg-pattern/oxid_lang_file.tpl',
), ),
'events' => array( 'events' => array(
'onActivate' => '\D3\Multilang\Setup\Events::onActivate', 'onActivate' => '\D3\Multilang\Setup\Events::onActivate',
'onDeactivate' => '\D3\Multilang\Setup\Events::onDeactivate', 'onDeactivate' => '\D3\Multilang\Setup\Events::onDeactivate',
), ),
'settings' => array( 'settings' => array(
), ),
'blocks' => array( 'blocks' => array(
array( array(
'template' => 'd3cleartmp.tpl', 'template' => 'd3cleartmp.tpl',
'block' => 'd3cleartmp_additional', 'block' => 'd3cleartmp_additional',
'file' => 'Application/views/admin/blocks/d3cleartmp_multilang.tpl', 'file' => 'Application/views/admin/blocks/d3cleartmp_multilang.tpl',
), ),
array( array(
'template' => 'd3cleartmp.tpl', 'template' => 'd3cleartmp.tpl',
'block' => 'd3cleartmp_js_singleitems', 'block' => 'd3cleartmp_js_singleitems',
'file' => 'Application/views/admin/blocks/d3cleartmp_multilang_js.tpl', 'file' => 'Application/views/admin/blocks/d3cleartmp_multilang_js.tpl',
), ),
), ),
'd3FileRegister' => array( 'd3FileRegister' => array(
'd3/multilang/Application/views/admin/de/d3_multilang_lang.php', 'd3/multilang/Application/views/admin/de/d3_multilang_lang.php',
'd3/multilang/Application/views/admin/en/d3_multilang_lang.php', 'd3/multilang/Application/views/admin/en/d3_multilang_lang.php',
'd3/multilang/Application/Model/d3_translations.php', 'd3/multilang/Application/Model/d3_translations.php',
'd3/multilang/metadata.php', 'd3/multilang/metadata.php',
'd3/multilang/Setup/Events.php', 'd3/multilang/Setup/Events.php',
'd3/multilang/IntelliSenseHelper.php', 'd3/multilang/IntelliSenseHelper.php',
), ),
'd3SetupClasses' => array( 'd3SetupClasses' => array(
D3\Multilang\Setup\d3multilang_update::class, D3\Multilang\Setup\d3multilang_update::class,
), ),
); );