diff --git a/.gitattributes b/.gitattributes
index bf1e33e..ee13c86 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,115 +1,3 @@
* text=auto !eol
-/Doxyfile -text
-copy_this/.noencode -text
-copy_this/modules/d3/d3geoip/IntelliSenseHelper.php -text
-copy_this/modules/d3/d3geoip/components/d3cmp_geoip.php -text
-copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset.php -text
-copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_licence.php -text
-copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_list.php -text
-copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_main.php -text
-copy_this/modules/d3/d3geoip/controllers/admin/d3_country_geoip.php -text
-copy_this/modules/d3/d3geoip/menu.xml -text
-copy_this/modules/d3/d3geoip/metadata.php -text
-copy_this/modules/d3/d3geoip/models/d3geoip.php -text
-copy_this/modules/d3/d3geoip/modules/components/d3_oxcmp_lang_geoip.php -text
-copy_this/modules/d3/d3geoip/modules/controllers/d3_oxshopcontrol_geoip.php -text
-copy_this/modules/d3/d3geoip/picture.png -text
-copy_this/modules/d3/d3geoip/setup/d3geoip_update.php -text
-copy_this/modules/d3/d3geoip/views/admin/de/d3_geoip_lang.php -text
-copy_this/modules/d3/d3geoip/views/admin/tpl/d3_cfg_geoipset_main.tpl -text
-copy_this/modules/d3/d3geoip/views/admin/tpl/d3_country_geoip.tpl -text
-setup+doku/Installation.pdf -text
-setup+doku/Precheck/d3precheck.php -text
-setup+doku/changelog.txt -text
-setup+doku/geoip-Data_IPv4_2013-04-18.sql -text
-setup+doku/geoip-Data_IPv6_2013-04-18.sql -text
-setup+doku/geoip-Struktur.sql -text
-setup+doku/geoip_data_parts/IPv4_1.sql -text
-setup+doku/geoip_data_parts/IPv4_2.sql -text
-setup+doku/geoip_data_parts/IPv4_3.sql -text
-setup+doku/geoip_data_parts/IPv4_4.sql -text
-setup+doku/geoip_data_parts/IPv4_5.sql -text
-setup+doku/geoip_data_parts/IPv4_6.sql -text
-setup+doku/geoip_data_parts/IPv4_7.sql -text
-setup+doku/geoip_data_parts/IPv4_8.sql -text
-setup+doku/geoip_data_parts/IPv6_1.sql -text
-setup+doku/geoip_data_parts/IPv6_2.sql -text
-setup+doku/licence.txt -text
-sources/CSVtoSQLconvert_perl/geoip_V6.csv -text
-sources/CSVtoSQLconvert_perl/geoip_v4.csv -text
-sources/CSVtoSQLconvert_perl/test.pl -text
-sources/DevReferences/html/annotated.html -text
-sources/DevReferences/html/bc_s.png -text
-sources/DevReferences/html/classd3__cfg__geoipset.html -text
-sources/DevReferences/html/classd3__cfg__geoipset__licence.html -text
-sources/DevReferences/html/classd3__cfg__geoipset__list.html -text
-sources/DevReferences/html/classd3__cfg__geoipset__main.html -text
-sources/DevReferences/html/classd3__country__geoip.html -text
-sources/DevReferences/html/classd3__oxcmp__cur__geoip.html -text
-sources/DevReferences/html/classd3__oxcmp__lang__geoip.html -text
-sources/DevReferences/html/classd3_geo_i_p.html -text
-sources/DevReferences/html/classes.html -text
-sources/DevReferences/html/closed.png -text
-sources/DevReferences/html/d3__cfg__geoipset_8php.html -text
-sources/DevReferences/html/d3__cfg__geoipset__licence_8php.html -text
-sources/DevReferences/html/d3__cfg__geoipset__list_8php.html -text
-sources/DevReferences/html/d3__cfg__geoipset__main_8php.html -text
-sources/DevReferences/html/d3__country__geoip_8php.html -text
-sources/DevReferences/html/d3__oxcmp__cur__geoip_8php.html -text
-sources/DevReferences/html/d3__oxcmp__lang__geoip_8php.html -text
-sources/DevReferences/html/d3geoip_8php.html -text
-sources/DevReferences/html/doxygen.css -text
-sources/DevReferences/html/doxygen.png -text
-sources/DevReferences/html/files.html -text
-sources/DevReferences/html/functions.html -text
-sources/DevReferences/html/functions_func.html -text
-sources/DevReferences/html/functions_vars.html -text
-sources/DevReferences/html/globals.html -text
-sources/DevReferences/html/globals_vars.html -text
-sources/DevReferences/html/index.html -text
-sources/DevReferences/html/installdox -text
-sources/DevReferences/html/metadata_8php.html -text
-sources/DevReferences/html/nav_f.png -text
-sources/DevReferences/html/nav_h.png -text
-sources/DevReferences/html/open.png -text
-sources/DevReferences/html/search/all_24.html -text
-sources/DevReferences/html/search/all_5f.html -text
-sources/DevReferences/html/search/all_64.html -text
-sources/DevReferences/html/search/all_67.html -text
-sources/DevReferences/html/search/all_69.html -text
-sources/DevReferences/html/search/all_6c.html -text
-sources/DevReferences/html/search/all_6d.html -text
-sources/DevReferences/html/search/all_70.html -text
-sources/DevReferences/html/search/all_72.html -text
-sources/DevReferences/html/search/all_73.html -text
-sources/DevReferences/html/search/classes_64.html -text
-sources/DevReferences/html/search/close.png -text
-sources/DevReferences/html/search/files_64.html -text
-sources/DevReferences/html/search/files_6d.html -text
-sources/DevReferences/html/search/functions_5f.html -text
-sources/DevReferences/html/search/functions_67.html -text
-sources/DevReferences/html/search/functions_69.html -text
-sources/DevReferences/html/search/functions_6c.html -text
-sources/DevReferences/html/search/functions_70.html -text
-sources/DevReferences/html/search/functions_72.html -text
-sources/DevReferences/html/search/functions_73.html -text
-sources/DevReferences/html/search/mag_sel.png -text
-sources/DevReferences/html/search/nomatches.html -text
-sources/DevReferences/html/search/search.css -text
-sources/DevReferences/html/search/search.js -text
-sources/DevReferences/html/search/search_l.png -text
-sources/DevReferences/html/search/search_m.png -text
-sources/DevReferences/html/search/search_r.png -text
-sources/DevReferences/html/search/variables_24.html -text
-sources/DevReferences/html/tab_a.png -text
-sources/DevReferences/html/tab_b.png -text
-sources/DevReferences/html/tab_h.png -text
-sources/DevReferences/html/tab_s.png -text
-sources/DevReferences/html/tabs.css -text
-sources/Doku/Drucken[!!-~]-[!!-~]Bartomedia[!!-~]-[!!-~]Web[!!-~]Design[!!-~]Distinction_[!!-~]Geo[!!-~]IP[!!-~]-[!!-~]install[!!-~]Maxmind[!!-~]GeoIP[!!-~]using[!!-~]PHP[!!-~]+[!!-~]MySQL.pdf -text svneol=unset#unset
-sources/Doku/Drucken[!!-~]-[!!-~]Bartomedia[!!-~]-[!!-~]Web[!!-~]Design[!!-~]Distinction_[!!-~]Maxmind[!!-~]GeoIP[!!-~]install[!!-~]setup[!!-~]tutorial[!!-~]using[!!-~]PHPMyAdmin.pdf -text
-sources/Doku/Drucken[!!-~]-[!!-~]MaxMind[!!-~]Forum[!!-~]•[!!-~]View[!!-~]topic[!!-~]-[!!-~]Fast[!!-~]SQL[!!-~]Queries[!!-~]Using[!!-~]the[!!-~]CSV[!!-~]Database.pdf -text
-sources/Doku/Drucken[!!-~]-[!!-~]On[!!-~]efficiently[!!-~]geo-referencing[!!-~]IPs[!!-~]with[!!-~]MaxMind[!!-~]GeoIP[!!-~]and[!!-~]MySQL[!!-~]GIS[!!-~]«[!!-~]Jeremy[!!-~]Cole.pdf -text svneol=unset#unset
-sources/Doku/Drucken[!!-~]-[!!-~]Vincent[!!-~]de[!!-~]Lau_[!!-~]HOW-TO[!!-~]Import[!!-~]the[!!-~]MaxMind[!!-~]GeoIP[!!-~]Free[!!-~]Country[!!-~]CSV[!!-~]file[!!-~]into[!!-~]MySQL[!!-~]and[!!-~]save[!!-~]diskspace.pdf -text svneol=unset#unset
-sources/GeoIP-Installation.docx -text
-sources/IPNum-Berechnung.xls -text
+
+/sources/ export-ignore
\ No newline at end of file
diff --git a/docs/GeoIP-Installation.pdf b/docs/GeoIP-Installation.pdf
deleted file mode 100644
index 40f3c59..0000000
Binary files a/docs/GeoIP-Installation.pdf and /dev/null differ
diff --git a/docs/Precheck/d3precheck.php b/docs/Precheck/d3precheck.php
deleted file mode 100644
index c8a19a0..0000000
--- a/docs/Precheck/d3precheck.php
+++ /dev/null
@@ -1,2609 +0,0 @@
-
- * @link http://www.oxidmodule.com
- */
-
-/**
- * Alle Anforderungen sind über $this->_aCheck konfigurierbar. Manche Anforderungen haben dazu noch weitergehende
- * Informationen. Die Struktur dieser Requirementbeschreibungen:
- *
- * array(
- * 'blExec' => 1, // obligatorisch: 0 = keine Prüfung, 1 = Püfung wird ausgeführt
- * 'aParams' => array(...), // optional, Inhalt ist von jeweiliger Prüfung abhängig
- * )
- *
- * "Desc1": Diese Struktur kann allein eine Bedingung beschreiben. Wenn mehrere dieser Bedingungen
- * nötig sind (z.B. bei unterschiedlichen Bibliotheksanforderungen), kann diese Struktur als
- * Arrayelemente auch mehrfach genannt werden (kaskadierbar). Grundsätzlich sind alle Requirements
- * kaskadierbar, jedoch ergibt dies nicht bei allen Sinn. :) Eine Kaskadierung sieht so aus:
- *
- * array(
- * array(
- * 'blExec' => 1,
- * ...
- * ),
- * array(
- * 'blExec' => 1,
- * ...
- * )
- * )
- *
- * Unbedingt zu vermeiden sind Änderungen in der Scriptlogik, da diese bei Updates nur schwer zu übernehmen sind.
- */
-
-class requConfig
-{
- public $sModName = 'D³ GeoIP';
-
- public $sModId = 'd3_geoip';
-
- public $sModVersion = '3.1.0.0';
-
- /********************** check configuration section ************************/
-
- public $aCheck = array(
- // kleinste erlaubte PHP-Version
- 'hasMinPhpVersion' => array(
- 'blExec' => 0,
- 'aParams' => array(
- 'version' => '5.2.0'
- )
- ),
-
- // größte erlaubte PHP-Version
- 'hasMaxPhpVersion' => array(
- 'blExec' => 0,
- 'aParams' => array(
- 'version' => '5.6.200'
- )
- ),
-
- // PHP-Version zwischen 'from' und 'to'
- 'hasFromToPhpVersion' => array(
- 'blExec' => 1,
- 'aParams' => array(
- 'from' => '5.3.0',
- 'to' => '5.6.200',
- )
- ),
-
- // benötigt Zend Optimizer (PHP 5.2) bzw. Zend Guard Loader (> PHP 5.2)
- 'hasZendLoaderOptimizer' => array(
- 'blExec' => 0,
- ),
-
- // benötigt IonCubeLoader
- 'hasIonCubeLoader' => array(
- 'blExec' => 0,
- ),
-
- // benötigt Zend Decoder oder IonCubeLoader
- 'hasIonCubeOrZendLoader' => array(
- 'blExec' => 1,
- ),
-
- // benötigte PHP-Extension (kaskadierbar (siehe "Desc1"))
- 'hasExtension' => array(
- array(
- 'blExec' => 0,
- 'aParams' => array(
- 'type' => 'bcmath',
- ),
- ),
- array(
- 'blExec' => 0,
- 'aParams' => array(
- 'type' => 'soap'
- ),
- ),
- ),
-
- // benötigte cURL-Version
- 'hasMinCurlVersion' => array(
- 'blExec' => 0,
- 'aParams' => array(
- 'version' => '7.26.0',
- ),
- ),
-
- // benötigte OpenSSL-Version (Angabe in Versionsformat)
- 'hasMinOpenSSLVersion' => array(
- 'blExec' => 0,
- 'aParams' => array(
- 'version' => '1.0.1.5',
- ),
- ),
-
- // minimal benötigte Shopversion (editionsgetrennt), wird (sofern möglich) Remote aktualisiert
- 'hasMinShopVersion' => array(
- 'blExec' => 1,
- 'aParams' => array(
- 'PE' => '4.9.0',
- 'CE' => '4.9.0',
- 'EE' => '5.2.0'
- ),
- ),
-
- // maximal verwendbare Shopversion (editionsgetrennt), wird (sofern möglich) Remote aktualisiert
- 'hasMaxShopVersion' => array(
- 'blExec' => 1,
- 'aParams' => array(
- 'PE' => '4.10.6',
- 'CE' => '4.10.6',
- 'EE' => '5.3.6'
- ),
- ),
-
- // verfügbar für diese Shopeditionen, wird (sofern möglich) Remote aktualisiert
- 'isShopEdition' => array(
- 'blExec' => 1,
- 'aParams' => array(
- array(
- 'PE',
- 'EE',
- 'CE',
- ),
- ),
- ),
-
- // benötigt Modul-Connector
- 'hasModCfg' => array(
- 'blExec' => 1
- ),
-
- // benötigt mindestens diese Erweiterungen / Version lt. d3_cfg_mod (kaskadierbar (siehe "Desc1"))
- 'hasMinModCfgVersion' => array(
- array(
- 'blExec' => 1,
- 'aParams' => array(
- 'id' => 'd3modcfg_lib',
- 'name' => 'Modul-Connector',
- 'version' => '4.4.1.0',
- ),
- ),
- ),
-
- // verwendbar bis zu diesen Erweiterungen / Version lt. d3_cfg_mod (kaskadierbar (siehe "Desc1"))
- 'hasMaxModCfgVersion' => array(
- array(
- 'blExec' => 0,
- 'aParams' => array(
- 'id' => 'd3modcfg_lib',
- 'name' => 'Modul-Connector',
- 'version' => '5.0.0.0',
- ),
- ),
- ),
-
- // benötigt neuen Lizenzschlüssel
- 'requireNewLicence' => array(
- array(
- 'blExec' => 1,
- 'aParams' => array(
- 'checkVersion' => true, // soll Versionsnummer des installierten Moduls gegengeprüft werden?
- 'remainingDigits' => 2, // zu prüfende Stellen für neue Lizenz
- ),
- ),
- ),
- );
-}
-
-/********* don't change content from here **********************/
-
-date_default_timezone_set('Europe/Berlin');
-
-/**
- * Class requcheck
- */
-class requCheck
-{
- public $sVersion = '4.10.2';
-
- protected $_db = false;
-
- public $dbHost;
-
- public $dbUser;
-
- public $dbPwd;
-
- public $dbName;
-
- /** @var requConfig */
- public $oConfig;
-
- /** @var requLayout */
- public $oLayout;
-
- protected $_sInFolderFileName = 'd3precheckinfolder.php';
-
- public $sVersionTag = '@@version@@';
-
- /********************** functional section ************************/
-
- public $blGlobalResult = true;
-
- /**
- *
- */
- public function __construct()
- {
- $this->oConfig = new requConfig();
- $this->oLayout = new requLayout($this, $this->oConfig);
- $this->oRemote = new requRemote();
- }
-
- /**
- * @param string $sName
- * @param array $aArguments
- */
- public function __call ($sName, $aArguments)
- {
- $this->oLayout->{$sName}($aArguments);
- }
-
- public function startCheck()
- {
- $this->oLayout->getHTMLHeader();
-
- $oCheckTransformation = new requTransformation($this);
- $this->oConfig->aCheck = $oCheckTransformation->transformCheckList($this->oConfig->aCheck);
-
- $this->_runThroughChecks($this->oConfig->aCheck);
-
- $this->oLayout->getHTMLFooter();
- }
-
- /**
- * traversable requirement check
- *
- * @param $aCheckList
- * @param string $sForceCheckType
- */
- protected function _runThroughChecks($aCheckList, $sForceCheckType = '')
- {
- foreach ($aCheckList as $sCheckType => $aConf) {
- if (array_key_exists('blExec', $aConf)) {
- if ($aConf['blExec']) {
- if (strlen($sForceCheckType)) {
- $sCheckType = $sForceCheckType;
- }
- $this->displayCheck($sCheckType, $aConf);
- }
- } else {
- $this->_runThroughChecks($aConf, $sCheckType);
- }
- }
- }
-
- /**
- * @param $sMethodName
- * @param null $aArguments
- *
- * @return array
- */
- public function checkInSubDirs($sMethodName, $aArguments = null)
- {
- $sFolder = '.';
-
- $aCheckScripts = $this->_walkThroughDirs($sFolder);
- $aReturn = $this->_checkScripts($aCheckScripts, $sMethodName, $aArguments);
-
- return $aReturn;
- }
-
- /**
- * @param $sFolder
- *
- * @return array
- */
- protected function _walkThroughDirs($sFolder)
- {
- $aIgnoreDirItems = array('.', '..');
- $aCheckScripts = array();
-
- try {
- /** @var SplFileInfo $oFileInfo */
- $oIterator = new RecursiveDirectoryIterator($sFolder);
-
- foreach ($oIterator as $oFileInfo) {
- if (in_array($oFileInfo->getFileName(), $aIgnoreDirItems)) {
- continue;
- }
- if ($oFileInfo->isDir()) {
- $aCheckScripts = array_merge($aCheckScripts, $this->_walkThroughDirs($oFileInfo->getRealPath()));
- } elseif ($oFileInfo->isFile()) {
- if (strtolower($oFileInfo->getFilename()) == $this->_sInFolderFileName) {
- $aCheckScripts[] = str_replace('\\', '/', $oFileInfo->getRealPath());
- }
- }
- }
- } catch (UnexpectedValueException $oEx) {
- sprintf($this->oLayout->translate('unableExecuteDirectoryIterator'), $oEx->getMessage());
- $this->addMessage(
- sprintf($this->oLayout->translate('unableExecuteDirectoryIterator'), $oEx->getMessage())
- );
- }
-
- return $aCheckScripts;
- }
-
- public function addMessage($sMessage)
- {
- $this->aMessages[md5($sMessage)] = $sMessage;
- }
-
- public function getMessages()
- {
- return $this->aMessages;
- }
-
- /**
- * @param $aScriptList
- * @param $sMethodName
- * @param $aArguments
- *
- * @return array
- */
- protected function _checkScripts($aScriptList, $sMethodName, $aArguments)
- {
- $aReturn = array();
-
- foreach ($aScriptList as $sScriptPath) {
- $sUrl = $this->_getFolderCheckUrl(
- $sScriptPath,
- $sMethodName,
- $aArguments
- );
-
- $sVersionUrl = $this->_getFolderCheckUrl(
- $sScriptPath,
- 'getVersion',
- array()
- );
-
- $sContent = serialize(null);
- $sVersion = serialize(null);
-
- if ($this->_hasCurl()) {
- $sContent = $this->_getContentByCurl($sUrl);
- $sVersion = $this->_getContentByCurl($sVersionUrl);
- } elseif ($this->_hasAllowUrlFopen()) {
- $sContent = file_get_contents($sUrl);
- $sVersion = file_get_contents($sVersionUrl);
- }
-
- $sBasePath = $this->getBasePath($sScriptPath);
- $aReturn[$sBasePath] = unserialize($sContent);
- $aReturn[$this->sVersionTag][$sBasePath] = unserialize($sVersion);
- }
-
- return $aReturn;
- }
-
- /**
- * @return bool
- */
- protected function _hasCurl()
- {
- if (extension_loaded('curl') && function_exists('curl_init')) {
- return true;
- }
-
- return false;
- }
-
- /**
- * @return bool
- */
- protected function _hasAllowUrlFopen()
- {
- if (ini_get('allow_url_fopen')) {
- return true;
- }
-
- return false;
- }
-
- /**
- * @param $sUrl
- *
- * @return bool|mixed
- */
- protected function _getContentByCurl($sUrl)
- {
- $iTimeOut = 5;
- $ch = curl_init();
- $sCurl_URL = preg_replace('@^((http|https)://)@', '', $sUrl);
-
- curl_setopt($ch, CURLOPT_URL, $sCurl_URL);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $iTimeOut);
- curl_setopt($ch, CURLOPT_TIMEOUT, $iTimeOut);
- curl_setopt($ch, CURLOPT_POST, 0);
- $sContent = curl_exec($ch);
- curl_close($ch);
-
- if (false == $sContent ||
- strstr(strtolower($sContent), strtolower('Request Entity Too Large')) ||
- strstr(strtolower($sContent), strtolower('not allow request data with POST requests'))
- ) {
- return false;
- }
-
- return $sContent;
- }
-
- /**
- * @param $sScriptPath
- * @param $sMethodName
- * @param $aArguments
- *
- * @return string
- */
- protected function _getFolderCheckUrl($sScriptPath, $sMethodName, $aArguments)
- {
- $sBaseDir = str_replace(
- array(basename($_SERVER['SCRIPT_FILENAME']), '\\'),
- array('', '/'),
- realpath($_SERVER['SCRIPT_FILENAME'])
- );
- $sUrlAdd = str_replace($sBaseDir, '', $sScriptPath);
- $sBaseUrl = 'http://' . $_SERVER['HTTP_HOST'] . str_replace(
- basename($_SERVER['SCRIPT_NAME']),
- '',
- $_SERVER['SCRIPT_NAME']
- );
-
- $sUrl = $sBaseUrl . $sUrlAdd . '?fnc=' . $sMethodName . '¶ms=' . urlencode(serialize($aArguments));
-
- return $sUrl;
- }
-
- /**
- * @param null $sFolder
- *
- * @return mixed
- */
- public function getBasePath($sFolder = null)
- {
- if (!$sFolder) {
- $sFolder = $_SERVER['SCRIPT_FILENAME'];
- }
-
- $sScriptFileName = str_replace('\\', '/', realpath($_SERVER['SCRIPT_FILENAME']));
- $sSearch = substr(str_replace(basename($sScriptFileName), '', $sScriptFileName), 0, -1);
-
- $sFolder = str_replace('\\', '/', realpath($sFolder));
-
- return str_replace(array(basename($sFolder), $sSearch), '', $sFolder);
- }
-
- /**
- * @return string
- */
- public function getVersion()
- {
- return $this->sVersion;
- }
-
- /**
- * @param $mResult
- *
- * @return bool
- */
- protected function _hasFalseInResult($mResult)
- {
- if (is_array($mResult)) {
- foreach ($mResult as $blResult) {
- if (false === $blResult) {
- $this->blGlobalResult = false;
-
- return true;
- }
- }
-
- return false;
- }
-
- if (false === $mResult) {
- $this->blGlobalResult = false;
-
- return true;
- }
-
- return false;
- }
-
- /**
- * @param $mResult
- *
- * @return bool
- */
- protected function _hasNullInResult($mResult)
- {
- if (is_array($mResult)) {
- foreach ($mResult as $blResult) {
- if ($blResult === null) {
- $this->blGlobalResult = false;
-
- return true;
- }
- }
-
- return false;
- }
-
- if ($mResult === null) {
- $this->blGlobalResult = false;
- return true;
- }
-
- return false;
- }
-
- /**
- * @param $mResult
- *
- * @return bool
- */
- protected function _hasNoticeInResult($mResult)
- {
- if (is_array($mResult)) {
- foreach ($mResult as $blResult) {
- if ($blResult === 'notice') {
- return true;
- }
- }
-
- return false;
- }
-
- if ($mResult === 'notice') {
- return true;
- }
-
- return false;
- }
-
- /********************** conversion function section ************************/
-
- /**
- * @param $mParam
- */
- public function aTos(&$mParam)
- {
- if (is_array($mParam)) {
- $mParam = implode($this->oLayout->translate('or'), $mParam);
- }
- }
-
- /**
- * @return string
- */
- public function getLang()
- {
- if (isset($_REQUEST['lang'])) {
- return strtolower($_REQUEST['lang']);
- }
-
- return 'de';
- }
-
- /**
- * @return bool|resource
- */
- public function getDb()
- {
- if (!$this->_db) {
- if (file_exists('config.inc.php')) {
- require_once('config.inc.php');
- ini_set('error_reporting', E_ALL^E_NOTICE);
- $this->_db = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPwd, $this->dbName);
- }
- }
-
- return $this->_db;
- }
-
- /**
- * @param $version
- * @param int $iUnsetPart
- *
- * @return string
- */
- public function versionToInt($version, $iUnsetPart = 0)
- {
- $match = explode('.', $version);
-
- return sprintf(
- '%d%03d%03d%03d',
- $this->_getVersionDigit($match[0], $iUnsetPart),
- $this->_getVersionDigit($match[1], $iUnsetPart),
- $this->_getVersionDigit($match[2], $iUnsetPart),
- $this->_getVersionDigit($match[3], $iUnsetPart)
- );
- }
-
- /**
- * @param $sMatch
- * @param $iUnsetPart
- *
- * @return int
- */
- protected function _getVersionDigit($sMatch, $iUnsetPart)
- {
- return intval($sMatch !== null ? $sMatch : $iUnsetPart);
- }
-
- /********************** layout function section ************************/
-
- public function deleteme()
- {
- $sFolder = '.';
-
- $this->_checkDelFilesInDir($sFolder);
- $this->_delFile($_SERVER['SCRIPT_FILENAME']);
-
- if (is_file($_SERVER['SCRIPT_FILENAME'])) {
- exit($this->oLayout->translate('unableDeleteFile'));
- } else {
- exit($this->oLayout->translate('goodBye'));
- }
- }
-
- /**
- * @param $sFolder
- */
- protected function _checkDelFilesInDir($sFolder)
- {
- $aIgnoreDirItems = array('.', '..');
-
- /** @var SplFileInfo $oFileInfo */
- foreach (new RecursiveDirectoryIterator($sFolder) as $oFileInfo) {
- if (!in_array($oFileInfo->getFileName(), $aIgnoreDirItems) && $oFileInfo->isDir()) {
- $this->_checkDelFilesInDir($oFileInfo->getRealPath());
- } elseif ($oFileInfo->isFile()) {
- if (strtolower($oFileInfo->getFilename()) == $this->_sInFolderFileName) {
- $this->_delFile(str_replace('\\', '/', $oFileInfo->getRealPath()));
- }
- }
- }
- }
-
- /**
- * @param $sPath
- */
- protected function _delFile($sPath)
- {
- unlink($sPath);
- }
-
- /**
- * @param $sCheckType
- * @param $aConfiguration
- */
- public function displayCheck($sCheckType, &$aConfiguration)
- {
- $sGenCheckType = preg_replace("@(\_[0-9]$)@", "", $sCheckType);
- $oTests = new requTests($this, $this->oConfig, $this->getDb(), $this->oRemote);
- if (method_exists($oTests, $sGenCheckType)) {
- $this->_checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration);
- } else {
- $this->oLayout->getUncheckableItem($sCheckType, $aConfiguration);
- $this->blGlobalResult = false;
- }
- }
-
- /**
- * @param $oTests
- * @param $sGenCheckType
- * @param $sCheckType
- * @param $aConfiguration
- */
- protected function _checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration)
- {
- $mResult = $oTests->{$sGenCheckType}($aConfiguration);
- $sElementId = (md5($sGenCheckType . serialize($aConfiguration)));
-
- if ($this->_hasNoticeInResult($mResult)) {
- $this->oLayout->getUnknownItem($mResult, $sElementId, $sCheckType, $aConfiguration);
- } elseif ($this->_hasNullInResult($mResult)) {
- $this->oLayout->getUnknownItem($mResult, $sElementId, $sCheckType, $aConfiguration);
- } elseif ($this->_hasFalseInResult($mResult)) {
- $this->oLayout->getNoSuccessItem($mResult, $sElementId, $sCheckType, $aConfiguration);
- } else {
- $this->oLayout->getSuccessItem($mResult, $sElementId, $sCheckType, $aConfiguration);
- }
- }
-
- public function showinfo()
- {
- phpinfo();
- }
-}
-
-/**
- * Class requLayout
- */
-class requLayout
-{
- public $oBase;
- public $oConfig;
-
- /**
- * @param requCheck $oBase
- * @param requConfig $oConfig
- */
- public function __construct(requCheck $oBase, requConfig $oConfig)
- {
- $this->oBase = $oBase;
- $this->oConfig = $oConfig;
- }
-
- public function getHTMLHeader()
- {
- $sScriptName = $_SERVER['SCRIPT_NAME'];
- $sTranslRequCheck = $this->translate('RequCheck');
- $sModName = $this->oConfig->sModName;
- $sModVersion = $this->oConfig->sModVersion;
-
- echo <<< EOT
-
-
-
-
- $sTranslRequCheck "$sModName" $sModVersion
-
-
-
-
-
-
-
-
-
-EOT;
- echo "" . $this->translate('RequCheck') . ' "' . $this->oConfig->sModName . ' ' . $sModVersion . '"
';
- echo '' . $this->translate('ExecNotice') . '
' . PHP_EOL;
-
- return;
- }
-
- public function getHTMLFooter()
- {
- $sScriptName = $_SERVER['SCRIPT_NAME'];
- $sTranslShopPhpInfo = $this->translate('showPhpInfo');
- $sTranslDependent = $this->translate('dependentoffurther');
-
- if (count($this->oBase->getMessages())) {
- echo '';
- foreach ($this->oBase->getMessages() as $sMessage) {
- echo '- '.$sMessage.'
';
- }
- echo '
';
- }
-
- if ($this->oBase->blGlobalResult) {
- echo '' . $this->translate('globalSuccess') . '' .
- $this->translate('deleteFile1') . $sScriptName . $this->translate('deleteFile2') . '
';
- } else {
- echo '' . $this->translate('globalNotSuccess') . '' .
- $this->translate('deleteFile1') . $sScriptName . $this->translate('deleteFile2') . '
';
- }
-
- echo <<< EOT
- $sTranslDependent
-
-
-
- $sTranslShopPhpInfo
-
-
-
-
-
-
-EOT;
-
- return;
- }
-
- /**
- * @param $aResult
- *
- * @return bool
- */
- protected function hasRemoteVersionDiff($aResult)
- {
- $blDiff = false;
-
- if (is_array($aResult)
- && isset($aResult[$this->oBase->sVersionTag])
- && is_array($aResult[$this->oBase->sVersionTag])
- ) {
- foreach ($aResult[$this->oBase->sVersionTag] as $sRemoteVersion) {
- if (version_compare($sRemoteVersion, $this->oBase->getVersion(), '!=')) {
- $blDiff = true;
- }
- }
- }
-
- return $blDiff;
- }
-
- /**
- * @param $aResult
- * @param $sElementId
- * @param $sCheckType
- * @param $aConfiguration
- */
- public function getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration)
- {
- $sText = '';
- $sDesc = '';
- if ($this->hasRemoteVersionDiff($aResult)) {
- $sText = '!';
- $sDesc = strip_tags($this->translate('RemoteVersionDiff'));
- }
-
- echo ''.$sText.'
' .
- $this->_addToggleScript($aResult, $sElementId) .
- $this->translate($sCheckType, $aConfiguration) .
- $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) .
- '
' . PHP_EOL;
-
- $this->getSubDirItems($aResult, $sElementId);
- }
-
- /**
- * @param $aResult
- * @param $sElementId
- * @param $sCheckType
- * @param $aConfiguration
- */
- public function getSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration)
- {
- $sText = '';
- $sDesc = '';
- if ($this->hasRemoteVersionDiff($aResult)) {
- $sText = '!';
- $sDesc = strip_tags($this->translate('RemoteVersionDiff'));
- }
-
- echo ''.$sText.'
' .
- $this->_addToggleScript($aResult, $sElementId) .
- $this->translate($sCheckType, $aConfiguration) .
- $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) .
- '
' . PHP_EOL;
-
- $this->getSubDirItems($aResult, $sElementId);
- }
-
- /**
- * @param $aResult
- * @param $sElementId
- * @param $sCheckType
- * @param $aConfiguration
- */
- public function getUnknownItem($aResult, $sElementId, $sCheckType, $aConfiguration)
- {
- $sText = '';
- $sDesc = '';
- if ($this->hasRemoteVersionDiff($aResult)) {
- $sText = '!';
- $sDesc = strip_tags($this->translate('RemoteVersionDiff'));
- }
-
- echo ''.$sText.'
' .
- $this->_addToggleScript($aResult, $sElementId) .
- $this->translate($sCheckType, $aConfiguration) .
- $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) .
- '
' . PHP_EOL;
-
- $this->getSubDirItems($aResult, $sElementId);
- }
-
- /**
- * @param $sCheckType
- * @param $aConfiguration
- */
- public function getUncheckableItem($sCheckType, $aConfiguration)
- {
- echo '' .
- $this->translate($sCheckType, $aConfiguration) . ' (' . $this->translate('RequNotCheckable') . ')' .
- $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) .
- '
' . PHP_EOL;
- }
-
- /**
- * @param $aResult
- * @param $sElementId
- */
- public function getSubDirItems($aResult, $sElementId)
- {
- if (is_array($aResult) && count($aResult)) {
- echo '';
- foreach ($aResult as $sPath => $blResult) {
- if ($sPath != $this->oBase->sVersionTag) {
- $sText = '';
- $sDesc = '';
- if (is_array($aResult[$this->oBase->sVersionTag]) && isset($aResult[$this->oBase->sVersionTag][$sPath])) {
- $blDiff = version_compare($aResult[$this->oBase->sVersionTag][$sPath], $this->oBase->getVersion(), '!=');
- $sText = $blDiff ? '!' : '';
- $sDesc = $blDiff ? $this->translate('RemoteVersionDiff') : '';
- }
-
- if (false === $blResult) {
- echo '
'.
- $sText.'
' . $sPath . $sDesc . '
';
- } elseif (null === $blResult) {
- echo '
'.
- $sText.'
' . $sPath . $sDesc . '
';
- } else {
- echo '
'.
- $sText.'
' . $sPath . $sDesc . '
';
- }
- }
- }
- echo '
' . PHP_EOL;
- }
- }
-
- /**
- * @param $aResult
- * @param $sElementId
- *
- * @return string
- */
- protected function _addToggleScript($aResult, $sElementId)
- {
- if (is_array($aResult) && count($aResult)) {
- $sScript = "+
";
- } else {
- $sScript = "";
- }
-
- return $sScript;
- }
-
- /**
- * @param $sTextIdent
- * @param $aConfiguration
- *
- * @return string
- */
- protected function _addDescBox($sTextIdent, $aConfiguration)
- {
- $sContent = "?".
- "
".
- "
".$this->translate($sTextIdent, $aConfiguration)."
".
- "
";
-
- return $sContent;
- }
-
- /**
- * @param $sIdent
- * @param array $aConfiguration
- *
- * @return mixed|string
- */
- public function translate($sIdent, $aConfiguration = array())
- {
- $sGenIdent = preg_replace("@(\_[0-9]$)@", "", $sIdent);
- $oTranslations = new requTranslations();
- $aTransl = $oTranslations->getTranslations();
-
- if (isset($aConfiguration['aParams']) && is_array($aConfiguration['aParams'])) {
- array_walk($aConfiguration['aParams'], array($this->oBase, 'aTos'), $sIdent);
- }
-
- if (isset($aTransl[$this->oBase->getLang()][$sGenIdent])
- && ($sTranslation = $aTransl[$this->oBase->getLang()][$sGenIdent])
- ) {
- if (isset($aConfiguration['aParams'])) {
- return vsprintf($sTranslation, $aConfiguration['aParams']);
- } else {
- return $sTranslation;
- }
- } else {
- return $sGenIdent;
- }
- }
-
- public function getPngButton()
- {
- $sImg = "iVBORw0KGgoAAAANSUhEUgAABDgAAAAWCAYAAAAl+SzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB".
- "MpJREFUeNrs3Y1O4zgUhuFY4hbb2ZthRjtczOz0Ght7cZwfQ5u2E4K0a55XiNDUXyWcT+ZwfGyHw+HQvZI6AACAT+J0OgW9AAAAtn".
- "A8Hh/JWYSnbkxuvAYeeg0AAAAAAPynuJevOB6P+ZKe6sYvLy96DgAA7M7z87NOAAAAm7iVq8gxRs5p5CTH03Tz758/uzAUc7x+Hy4".
- "pf71ex9fDj2leyxLG1vnNELpmdJPqo21a7afy+/MIj/AIj7zVhS/seWPD4zoAAIAtxJhW44+cy/jx/ftw/2kRxDEQSd0Uraah/RKV".
- "lLfK+/kDS0T7eieGZnTdA33QfeF+CpFHeIRHeORSF1Lw3I0Nd3UAAACbEhwprscfadnma05wpL7v8v0Sh4QiLimREqWEt7mSmK9xn".
- "LlrSBe6fdq02k9D1oxHeIRHeORCFz13Y8NtHQAAwNYER+zX44+q3Zzg6GOcbw6haqhmXG5MvuQPiw3q9mrTaj/xCI/wCI9c13juxo".
- "Y/0wEAANxNcPTxbvzxLsHRd7mEo8y+pJIFCWEupy2XMTcSxjKQUMqSl1mb/79urzbN9hOP8AiP8MgV3Zf2vLHhIR0AAMBWcr5iNf6".
- "o4owlwdGPCY68hiUsZbRh2DGsWkz7/mUaVl83oxu3R/xwm1b7KfEIj/AIj1zRDfc9d2PDTR0AAMA2hgqOtfijWqOybDKaExzj6pVp".
- "zWyYG04zdGn5vByohVC924ou7NSm3X7iER7hER55r/P3w9jw6NgAAADwp+SCjPX442oFR5URWeaY5pKPsmNpmI+SnctN5zKRVnR7t".
- "Wm1nwKP8AiP8MiKznM3NqzrAAAANic4zuf1+ONaBce576dQZAhMplPepvWzYdn6vSoBCUNJSCkPaUS3V5tm+4lHeIRHeORS97U9b2".
- "x4RAcAALA5wZEPRVmJP1K4ckxsPJ/H9SzjOvpuEc11INP805gtWQ6Ka0gXdmrTaD8NGTMe4REe4ZFrOs/d2HBLBwAAsJHzuV+PP6q".
- "JlKqCI3ZdvaZliVGm3MiYKZm3EJuvXera0aW0T5tG+2kKYHmER3iER2pdU8/Pc/+0sQEAAGALec/Q9fjjSgVH358v/zFZJNXy6ukY".
- "uFQqREZBK7q0U5tm+4lHeIRHeOSqLnnuxoa7YwMAAMAWzvF8M/64THDEOB+xEsYIJlV7d5R1tdNGHsMnlvW2I63opirrj7Zptp86H".
- "uERHuGRS92X9ryx4cGxAQAAYBv5mNi1+OP6HhzDMbEVad5JrKoxrdbfzlFa155urzYt9lPgER7hER658bt47saGVR0AAMA28ikqj8".
- "QfVQVH3705ceU1KEm5qmM+0y7N8crwOqY5a5Ja0sWd2jTaTykmHuERHuGRS52/H8aGuzoAAIBtxCGIWok/riU4Yl8EZVOwEpSUG9X".
- "62XmRS1w+oV5z24RurzaN9tO0QR6P8AiP8MgbnedubLitAwAA2EqfExo34o+LBMevX7+6b9/+KkFItYZlmI0tP1XBS3UE3LhNeju6".
- "vdq02k8dj/AIj/DIhW48W8NzNzbcHBsAAAC2MGypsRJ//P7n9/J/yOFwGO6fTie9BgAAPgvrVAAAwFZuzpgcj8fh+jQGHGm6AQAAs".
- "DcmUgAAwFYezFeEfwUYAAoCUXB0RZrTAAAAAElFTkSuQmCC";
- header("Content-type: image/png");
- echo base64_decode($sImg);
- exit;
- }
-
- public function getPngLogo()
- {
- $sImg = "iVBORw0KGgoAAAANSUhEUgAAADMAAAA0CAYAAAAnpACSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAE".
- "IxJREFUeNq8Wgl4VNXZfu+dLZkkk5BA9kACYQlB2aIga6myuIEtFX+kLW1BJVT/akVrRds+rVqRX2lLRSsal5/nUaCgtmhi8BeaUh".
- "Al7EYTIWyGQPZlMsnM3Lnn/865dzJ3biaLVnsfDpk59yzf++3fOSMxxvANPlZqUdQs1FRqXmq+Ac7NpbaI2jxqQ6nZqDVR+z9qr1H".
- "71DxB+nfBPHYYSHUCK8fATl+HUZtK7Wpqo1SGeZ0BQCEYFolQETSrhDJ6d4rax9Q+pFa18SQ8HX6aHAcszUUS9T3U0IU1710ASqid".
- "dwNuBciMARbSDjcQtDQnnnj7HNYuGvY1gqHnW9RWBBi+f7kT+LwVKG8AjlDj38+0AR1EiJ1kk0XEZFAbO4gQJwOj44F0+m6TsYvWK".
- "KKWQOQUvVwFPHCAxNBlZDs1psk30wXsv4XWi8VvqefXXwcYWg6FRPy8racBzsXjjQxtXim4sra5bKCG6X3QCLOR4lxBwGakS1g+Ch".
- "hORN5FcttWpSumpCunZADEH5L2iATa71bAaUUW9XzxVcEs4yCq2zD9qaMML1QQXQGdaMmwYW8PM41RQxwvmgu0+yU8Qap7uUMbN59".
- "UykUKXF4P0J5hgD4gi5qTjuW6DQkDHehDfMNvLnbgvp/vV7GdpKEGdA5aTMRiAIAQDj6HJHR7rgyHBc+T/a16jaQzNFbYB0FDXa0H".
- "C0a+QSrrD82J1qj3G73NQJ6buTT+eppdf+cehuauCCCCLDeDkcwAWM8xjA+T8JcKxp3FKu4oFGLUOZJEpyJNIqKfpP4F/kBI9bLIW".
- "UxIErPLvozNFLb5sOmRgwwbj6kaMbIUrjJMJzIIRooAUOpNzwzdAcMX+hfvlFC6UEaCQ8K0N4FGrzbVQuM+InuZNBjruOcLzpL7Ab".
- "LSr2LT0lIVG8tpBZnpxDOtwfgX4X2snz5z4y8swaYRfWM2+fhkaS/3gotyqE/RVGnrAgHkz6daQ0D6A8Mlsvm24gDerSYgNhaZiP4".
- "avvq4giFCgkdJzZa+MAv442zCQxby9hmgK4C7c+MxZCBgZtJam24tVvBmlS4RhoERaH6nRhpvkg4FKfipKXrj32nPjy+p+NsZ9d4W".
- "L16noPvTu/OBuSSt/z1BaUCNoPN2c7phfhJoqbLfk1qVconwEUw3DEm3L1Xq3W0x9Ix0TDLnHTpwzZ5W5MsYP1gCqTSsxN5jFK+KT".
- "gbweiW1ChXzhksoXmh7lkx11Vvz8fxsCsaXOsVKI/sD84t3z6pYu5fkaZdCXJUkLSbQd56aWCQz5ZLJ57Juwn3csFV9jaDDCeoEfX".
- "+owIbceGmT3qseqmOri44oWjam8vmWoMt4iYJk/Pb5WPdpi/h+vC8wszwKHrpzt08zRE4Ql4LEwqL39httGJckD8in8yleUhs7sfV".
- "sG8MFN0PJ2QB2nAp0A/RrXmzrU+VK2YOTrWlXJEmr7y2w4C0ac90wGQ8UWPmwe1+pCCg/GmvZnO7EOovmPZ19gSn8w2E/LraomlRU".
- "g6fSmc0lMi1NRopTmjCAeB+UFN80YfQgiUeGoSvzLXMrm9nsxw76sOWYQvmbirxEy3i3j5Vtr1Jqbx1lXbBhtq3wd9Nsi2JteIfmP".
- "Per/b53HCKuWZafa2dYuduLD74XtYHo2UKdDeY4c2t1K9s2qsgj7E8I3Kw11AZFEYdXRlOKIZEp4tzsHT4Rdny6vrtINdq8DA76nE".
- "BjaygtSaIi4Hu5FhSfU9FFBs6Xeusm+xKyka1PH/LjUJ2KN25w8PlLlhd3bR8WL2Goy4qV4yxxtxd72/laL893pNK0R4/Vq6t/VOL".
- "F0Ysqdi6OwndyLb+i/t+ZwXxw127vnBdIMkJXI5kAETwxRcZHy5x8Y/L+8NyyywdKNZBNEfm2kTJON6nYVulHTryMKekyTjWrpGYS".
- "8pOtKK9jcJPX4uBHJkhYP8M2nta4Z8Nh/4r9NQG8OM+BeIf0Z+qjZAluPceglBJ5LV62nIeIHxZ3IaDncwUZRMtSJ1dBXn74g2AyP".
- "H72Re5LHtS2q707bNLtFRNstGnUe/RtAe96eJ8PWS4Z01IlJJIEslwWzsEMPWequ39P16Wq5gAmJVuQ6LTgIAFqpkienyhhIsWRZW".
- "Oskzv87FD28x1IiqHsOd+GkYNkwYxOkmJFYwDnyda2fKrgXLMalkJxs65cGUMZtHw9fS0J2sxtB2oDqG0OaFLpLcOhtaani9WOBrs".
- "mEEH5SZoRE5ApRNiHfHOeBA6mdOTpOVH/omGbHz/Q9Wqak+HaDF5sSeRAJMTSmLdPKeWLcq3/s+E6x5of7PTg4fqApgnBPCyo7rJJ".
- "9fkQkvLm4z48OSuqkIORdYBPFx33adT2E6XzNS92LLhgLXmnd6sV7D6naA6k3IsrX2xHXlE7xtDfJX/zTP/7aeWVtddEbeK2aJd5c".
- "cZQ5w5QUAzgRL1wZe9clWKBhTNS1uOZVU9tJC2ARgzUtNZrn/hBWrWQawOnLLexk2FnpU+P9KrWVL0xHSB9jqINsuPlcP9O72Ta6I".
- "GrHXz28rLzCmW8ZOjkEWrIS23/xIuFW9txsFYpXJpnX9alcAdBCkBuKI8YMzpRrFeV5ZIwhNRMeB/VkD2YswlVDX0moLXNCg5fFgy".
- "5lq805RSpV1eXakozQh5MW4QhJ0HmBsonng9iibNrHo6e5E4S+4l6xRDhma4aDH85Is4xttwx3i4pKhMSaupUcdktInGHhazYaWEh".
- "5jHdylUWYm7QWQXfiX6GDy8KrZjFt5q274ISmsQMC+iDxV/i2NQ0UTy9T3Pag2AoNqDdKzbJqyHCLrUEQioRlC6BO3rJL9IVeuzbK".
- "rzYd8GHzFgJmXGCEVHcEfkUfT+oBimo4RIS/dDX1hi274Koz/K5Axj+aYMSLo1IyRZNLEgT/uKk8e2JOiVY3ow7SfrPWITii/ClkA".
- "pZtXHKt4dZyVMBu075hI3fMsqeQK6X1C8oDUOKFFbMRfBMNKShQ0xwceoyq5uVUKTv45mcIsB8ZOzjbjR4znW+lajmQUAyJQYEMI3".
- "AUHfxmvfdAU5ffLQMa7SkxQyiodFDYDyqyWP1TxN/39wpbIY7R8R+wYmQ+phIxEhESZJTEHnW+CrZKWvSJuY3dhhUwpjpUN+0DMGI".
- "E7F2SbzxikyABaU66bNGJZwRPQrSCBWqTm9rl+CIg+9gc3sD4VxgekWJUJYbbZMQL7JoLQ8KPpfd3bXu0MpGv67v4SUCp2/BCB6ks".
- "WtyqlW84XbmJ5A6eXNLT3t1G5HCj6UkYwkSQdXoq0870pA5GCWaK7MaiFCHsO4Jg0klXJonazKudY4MftONLhflXNccqfUb0iCdEi".
- "L427kOpMeJYHuwneyCM2bEIC2UT820pdPcubsqO00luYEh3bWP2rPaoC82jSMqB+PmXuVMAzOkMSaVI0/GOWrXLLjZCGZ6lk2YTks".
- "Xw1kuGWbkHmcbw9oZMVydVq/bx30f6bWdZwxM0EhgZleQO7/YpIiz25DxM5PNs8jaRovEOwThPv5/3XDOpUAf0Z+4Oz5VFEgvw7Cd".
- "iHYNQsbjqgiI32+I1Dz4UeBcPT0Gs7MdfMyr1w53YA595mVEdVNASJWeG3dUdA7gnEANxa4wV60iMVqg6+CSqbwy2TpLGxDpiEjrv".
- "zpD6Pwhs29QNOv/1t5q0nmeoAU0I3GRY1g3LwF3XhXLpbL4klv1pMVS8kiAp2TYxHYFGfZC8oDLNvyjLfycofusTYrgBGAoxTU3nq".
- "w5plYO5vDkdLsehCTzyZwYzA147BBbjxgjDpzH8BsLfD5miBX/PTMOIxKtGE2fx6fakRpneYberW/wqJeaPAGUVXfiDIWBRfkxmDb".
- "UMZyEt+mON5vQyYshrviqGgIhzEENnTWHqZehwCKveGWKoO0MB1PGCXGS3/fwRU14eEuLt5BbFnrZ404kWTPs55aMc4LaOPrcoo8r".
- "XfxGY+WDM1y42OrDsYteECjUk/smIHzfNa8dcaP0kw5DVduLvZj/Gg2aNGdOjlDjUr7oZ8mxFszKtqOkwoNgmDZG7/GpNsRoLqPRD".
- "GZLeTsWXxnbvPGA+4nPyYhvGBklJMklQCUvPr7QiaM1XRgcQw6EjGXr7ckjaNr9JVWdhT/ZWq/t91VvImhabJSM8WnCBMqs+sHR2n".
- "uuiXu85AQVdxZTZUa6MGuYgxP4qtn4+fPI2/XYdqwdflKNFkocm1u9WDIhFh2Ur2TGyGij6Gwho+FG/8xNSYXkhje9Wu7Gqh31+jF".
- "vX1Ge9X3MQPZ3x4w4Ks/lYl6dBouz12dmRz3u4pt7TekIcW1iukB+JOKC5BaPX/B2B7RaovGmPCc2Lx7CjYnfnUzmHpxaweEa79Sf".
- "72rEP6o6Q0cprD+6+5Aa0baiIE4cQRlPZ87EOeR/fndczMxXPmwVV1lBjsmkBukihcN8vYWv91RupN1jKY7MaqE0o5pc9p7TnaRuX".
- "uw82aHZRlCVVaPn6hFA+pYKacyEoVEYM0QwusR81PTcfTPjZ76yv8WwicaV1TvqqG6hOtvSvxZwT+4iPa5u8uOzOj/aOgIhB8TVSt".
- "bT9+50KZzT3QeO/YmMnFXhVBe3ij/xGGM+neGlkbK2uBG/L2nQ6lvzxVAk8RuPXoMMUAz1u3lymJs1EGrsY4aBkhR+tyOCG9VWOdH".
- "YuzqLskspjzsx88F5gKZd//C1gxDH3XBADVV0YOFltKqGru/CxhjuMSVT9A5O6C7F1fCC0Fh4ITzCh0V+vRX9VyoH8mAQSKRbgJJY".
- "u/yHjd9NoRw9SDALJ5gZozALVw9jqmGu9LqBm3I/4x1ON1NgcJyGdflDdK2aOQh5yfb3j9d61/d3pfHsD69y4Z7rEvkhsYGDhvMAY".
- "3ltrtG736H3iyUjk4xSCkoNxvMIA1hfAFdkReGZRcnCxr1KeKSIBOYUqdt31t+cjGtyozUJhXE/Aje7uWzipvlkxaiW5kOTsLXR82".
- "SGCOfZxnuFWbyEeKS6wbeTHyoO5LLpLdLHNcWFw5Cf6dAlFEG/zX2RiOhxCYWBXVIhHAgv6fb8LBtpLutTlXW+x/nhiBLAgMDw5+n".
- "4KPnRsp/lYPrIGHHvFvn2DF/t2m+gjVxwOuWGx9fmYmyK49mqOt8veiO4v0uWx0iU979LElo+fZAmIfVrJraPGorvN2loNPbdNxx5".
- "KY4n/3nac3dfxA7kxugZCoJLX1qWgUdvTtESTkWNcIJi0vkw2zGU0oz19GbmrEXRwPxgWiL23puDnCT7w6WfuX/Z7y3Ql/i5Cc+vC".
- "mta/Mt+vOUCdp9s1wKaBaHAJvXyK4w+k0jDxIBWoU7KceLF72diYmb0Xu61XtjftC070U6GLyMlzhqGe3Sy/d/6VdMqX4A9V/xJO/".
- "60pwF7PneD+fXfYMkSvvTDdBA0dSKp1E9IGsunJCIuSv7liwean+QXWLQfvikw4oiZ2l2kCetP13vx+qEWvHygUTvQ0AnrBiYhdDF".
- "rVCk9/0uItWJpQYIAcUV6NI/qfxTS+FdTJT+rs1m+eTDBx6ar353tXnXpR2c94O3QeQ9qWv3ooBjVTIkmJ8ZG4FxUzbqiLUgmABMy".
- "ojBleAymZDsxJNZayu9wqO3+bfHl1iQq5PgtwX8ajPFJ039IN4faWP36Llb/WaOs5yc+PcNt1a/6+I94PuBnCF8HAf8vwADS7GaT0".
- "D4fMwAAAABJRU5ErkJggg==";
- header("Content-type: image/png");
- echo base64_decode($sImg);
- exit;
- }
-
- public function getGifBg()
- {
- $sImg = "R0lGODlhCgAyANUAANHo+pfK85rM8/X6/vb6/v///5jL85bJ8+Hv/KbS9dzt+87m+qTR9fH4/er1/b7e+MTh+P3+/63V9u/3/".
- "dfq+rnc97fa96DP9Nns+53N9LLY9tTp+sHg+Mzl+cfi+OPx/Pv9/7DX9p/O9Oz2/bTZ9uXy/KLQ9Pj7/ujz/bzd9/7+//r8//P5/s".
- "nj+ZvM897u+6nT9avU9qvU9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKADIAAAb".
- "FwINwSAwYj0iDcskUOJ9Ql3RKzVivWJF2y714v2CTeExmmM/ohHrNhrnf8Jh8PpdJ7vh8aM/va/6AgSSDhIUWh4iJFYuMjSmPkJEP".
- "k5SVHJeYmRCbnJ0en6ChLaOkpR2nqKkLq6ytAK+wsRuztLUUt7i5GLu8vQq/wMEvw8TFCMfIyR/LzM0lz9DRKNPU1Q7X2Nkj29zdE".
- "9/g4Q3j5OUs5+jpA+vs7QTv8PEn8/T1K/f4+SD7/P0R/wADqhhIsGCBgwgTBgEAOw==";
- header("Content-type: image/Gif");
- echo base64_decode($sImg);
- exit;
- }
-
- public function getGifDe()
- {
- $sImg = "R0lGODlhEgANAIQZAAAAABAFBhEGBhIGBhQHBxUHCCYNDZQqH5QrI9c4M+M4M9w9M+g/MuNDM/BFM99tI+t3H+CyDerIB+zIB".
- "uzKBurLCPfcAPfgAPjlAP///////////////////////////ywAAAAAEgANAAAFVaARCGRpmoExAGzrvsBAwHRLFHVdIEfv/8ADou".
- "EoGo9IR2PBaDqfUMYioahar1hF4gHper9gyKOCKZvPaExFcmm73/CLZGKp2+94yyRCmfj/gIAUESEAOw==";
- header("Content-type: image/Gif");
- echo base64_decode($sImg);
- exit;
- }
-
- public function getGifEn()
- {
- $sImg = "R0lGODlhEgANAOfRANzd6P9LQP7//93e6ba32v8HB/J4ef//+/85Of8fFVddwP8aFq+13P8aFPr////f3f8XE/n//62s3fQuL".
- "AIDj6ys3uHZ5P8uLOjp793f6dbX6uvBxsyasurCx/9fXcadtS88r+Da5EZHr+Hi7A0NlUVGqcjR9MKaunh5x/8REQAAkv9IP/9BPn".
- "h6wi4/td3c5uLl7P8PD7vO9aGSw7bM9uDh6UpLsf8hFv/f3PPx9/Dx9DFCuMDE4cHF4/sAANPU3ufp8JSDvuVocf8ODvz8+/xRTPQ".
- "gG+PM0ZSWzs/R476+4ujp8v8/PurO0uPZ3//u5fQCAOPj6nFxxf8UE8rM4P/w5YGM18PH4/79/ExUuP3//4CAxqmo3KaZxv7+/Rcs".
- "tO3v89XW6fS8waOj2snM7Nra7Ccon+no9v03OFJZvuK2xBEipP89Ov8dE+be4u3u8/w3OOVocv8sKv8EBOjo9+/u+Kap15SFvgwRl".
- "ba327uXteHh7tvc5yo3q9XX5SQ4uU5MrtjW5qaVxvDS2f8DA+Tj6vr6/j1FtVlgvL+euvHw9v+rqe7u+XKJ1ebn7p2x7CUmnvb2+d".
- "PW8P8cEc/P4efn8/38/5Ws66mYx/ccGNfY5vh0d927zSUlov96ev88OgAAjmmA09rb5v+xsPF5eMnR8i0upuuAgvEyLx0rq97f6cu".
- "nwEBIuO/Aw/9/fuTm6vn5+vTEyM7P5rq63BESlf+Fgv8fF8SWsOfp7+2rrvX1+La23RgmqLe43PPV2vdydhcnqIWQ2BEgoube4wAS".
- "n82atOHj6uTT2f97etKjuf9dWsSduZyb08fJ4fn5+/z8/f+ZAP///////////////////////////////////////////////////".
- "/////////////////////////////////////////////////////////////////////////////////////////////////////".
- "///////////////////////////////////ywAAAAAEgANAAAI/gB/YHCkig+AAVGGuSmUAYCoEbpgGXsFY8kWM7T6JEI14QMIEpB".
- "aVNIBRBOSOtEqmAK27EabYqk6jYl2hpksKnjSmIgmqdEqWw2ShSITrZQCFXb8IDpkRdGBCLGmpBDj4ECOYKyyXHFyyoCQX8hceShQ".
- "QFktT5viGCDV5AgUaHDjypXrI9exIgHYwEHA5MIcQnJYIEDzKcCKVi+63BE0CMeTUTGGLKrywBemIDMCJVnz5ZIWATI4LYCghoaAa".
- "I/+EGNAqQQXQ4xQuDiRYBKHHVLoWJIAaFaNZkSU2KAgTI+RTLd4gRKxC0uZPQPAvAnTiwCPEB02WOiRh4CGZ15wAgUEADs=";
- header("Content-type: image/Gif");
- echo base64_decode($sImg);
- exit;
- }
-}
-
-/**
- * Class requTranslations
- */
-class requTranslations
-{
- /**
- * @return array
- */
- public function getTranslations()
- {
- return array(
- 'de' => array(
- 'RequCheck' => 'Mindestanforderungsprüfung',
- 'ExecNotice' => 'Führen Sie diese Prüfung immer aus dem Stammverzeichnis '.
- 'Ihres Shops aus. Nur dann können die Prüfungen erfolgreich durchgeführt werden.',
- 'RequSucc' => 'Bedingung erfüllt',
- 'RequNotSucc' => 'Bedingung nicht erfüllt',
- 'RequUnknown' => 'Bedingung unklar, siehe Hinweise im Hilfetext',
- 'RequNotCheckable' => 'Bedingung nicht prüfbar',
- 'hasMinPhpVersion' => 'mindestens PHP Version %1$s',
- 'hasMinPhpVersion_DESC' => 'Das Modul erfordert eine PHP-Version die nicht kleiner ist '.
- 'als %1$s.
'.
- ' Die passende PHP-Version '.
- 'ist auf Ihrem Server aktiv.
'.
- ' Das Modul kann in '.
- 'PHP-Versionen kleiner als %1$s nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '.
- 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '.
- 'Modulversion.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasMaxPhpVersion' => 'maximal PHP Version %1$s',
- 'hasMaxPhpVersion_DESC' => 'Das Modul erfordert eine PHP-Version die nicht höher ist '.
- 'als %1$s.
'.
- ' Die passende PHP-Version '.
- 'ist auf Ihrem Server aktiv.
'.
- ' Das Modul kann in '.
- 'PHP-Versionen höher als %1$s nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '.
- 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '.
- 'Modulversion.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasFromToPhpVersion' => 'Server verwendet PHP Version zwischen %1$s und %2$s',
- 'hasFromToPhpVersion_DESC' => 'Das Modul erfordert eine PHP-Version zwischen %1$s und %2$s.
'.
- ' Die passende PHP-Version '.
- 'ist auf Ihrem Server aktiv.
'.
- ' Das Modul kann '.
- 'außerhalb der PHP-Versionen nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '.
- 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '.
- 'Modulversion.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasExtension' => '%1$s-Erweiterung verfügbar',
- 'hasExtension_DESC' => 'Das Modul erfordert die %1$s-Servererweiterung.
'.
- ' Die %1$s-Erweiterung ist '.
- 'auf Ihrem Server vorhanden.
'.
- ' Das Modul kann ohne die '.
- '%1$s-Erweiterung nicht ausgeführt werden. Fragen Sie bei Ihrem Serverprovider nach der '.
- 'Installation dieser Erweiterung.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasMinCurlVersion' => 'mindestens cURL Version %1$s',
- 'hasMinCurlVersion_DESC' => 'Das Modul benötigt cURL ab der Version %1$s.
'.
- ' cURL ist in '.
- 'passender Version installiert.
'.
- ' cURL ist nicht oder in einer '.
- 'älteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '.
- 'cURL-Version.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasMinOpenSSLVersion' => 'mindestens OpenSSL Version %1$s',
- 'hasMinOpenSSLVersion_DESC' => 'Das Modul benötigt OpenSSL ab der Version %1$s.
'.
- ' OpenSSL ist in '.
- 'passender Version installiert.
'.
- ' OpenSSL ist nicht oder in '.
- 'einer älteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '.
- 'OpenSSL-Version.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasMinShopVersion' => 'mindestens Shop Version %1$s',
- 'hasMinShopVersion_DESC' => 'Das Modul ist ab Shopversion %1$s freigegeben.
'.
- ' Die Shopsoftware ist in '.
- 'passender Version installiert.
'.
- ' Das Modul kann in dieser '.
- 'Version der Shopsoftware nicht installiert werden. Fragen Sie nach einer früheren '.
- 'Modulversion, die für Ihre Shopversion getestet wurde.
'.
- '',
- 'hasMaxShopVersion' => 'maximal Shop Version %1$s',
- 'hasMaxShopVersion_DESC' => 'Das Modul ist bis zur Shopversion %1$s freigegeben.
'.
- ' Die Shopsoftware ist in '.
- 'passender Version installiert.
'.
- ' Wir können nicht '.
- 'garantieren, dass das Modul in Ihrer Shopversion funktioniert. Fragen Sie nach einer aktuelleren '.
- 'Modulversion, die für Ihren Shop passt.
'.
- '',
- 'hasMinModCfgVersion' => '%2$s (ModCfg-Eintrag "%1$s") mindestens in Version %3$s',
- 'hasMinModCfgVersion_DESC' => 'Das Modul benötigt die Zusatzsoftware "%2$s" mindestens in '.
- 'Version %3$s
'.
- ' Die Software ist in '.
- 'passender Version installiert.
'.
- ' Die Zusatzsoftware ist '.
- 'möglicherweise gar nicht oder in falscher Version installiert. Bitte installieren Sie die '.
- 'Zusatzsoftware, bevor Sie diese Installation fortsetzen.
'.
- '',
- 'hasMaxModCfgVersion' => '%2$s (ModCfg-Eintrag "%1$s") maximal in Version %3$s',
- 'hasMaxModCfgVersion_DESC' => 'Das Modul benötigt die Zusatzsoftware "%2$s" höchstens '.
- 'in Version %3$s
'.
- ' Die Software ist in '.
- 'passender Version installiert.
'.
- ' Die Zusatzsoftware ist '.
- 'möglicherweise gar nicht oder in falscher Version installiert. Bitte installieren Sie die '.
- 'Zusatzsoftware, bevor Sie diese Installation fortsetzen.
'.
- '',
- 'requireNewLicence' => 'bisheriger Lizenzschlüssel kann verwendet werden',
- 'requireNewLicence_DESC' => 'Diese Prüfung versucht zu ermitteln, ob Sie für den '.
- 'Einsatz dieses Moduls einen aktuellen Lizenzschlüssel benötigen:
'.
- ' Sie haben für dieses '.
- 'Modul einen Lizenzschlüssel hinterlegt, der wahrscheinlich auch für die neue '.
- 'Modulversion geeignet ist.
'.
- ' Sie benötigen '.
- 'für dieses Modul wahrscheinlich einen neuen Lizenzschlüssel. Haben Sie diesen schon '.
- 'vorliegen, führen Sie die Installation aus und tragen den Lizenzschlüssel dann im '.
- 'Adminbereich Ihres Shops ein. Ansonsten können Sie den Lizenzschlüssel in unserem Shop '.
- '
www.oxidmodule.com erwerben oder '.
- 'sich ebenfalls im Adminbereich Ihres Shops einen kostenfreien Test-Lizenzschlüssel '.
- 'erstellen.
'.
- '',
- 'hasModCfg' => 'Modul-'.
- 'Connector installiert',
- 'hasModCfg_DESC' => 'Das Modul erfordert zwingend den D3 Modul-Connector.
'.
- ' Der Modul-Connector ist '.
- 'installiert.
'.
- ' Das Modul kann ohne den Modul-'.
- 'Connector nicht ausgeführt werden. Bitte laden Sie sich diesen kostenfrei aus unserem Shop '.
- 'unter
www.oxidmodule.com/'.
- 'connector/ und installieren diesen vorab.
'.
- '',
- 'isShopEdition' => 'ist Shopedition %1$s',
- 'isShopEdition_DESC' => 'Das Modul erfordert eine dieser Shopeditionen: %1$s
'.
- ' Der Shop ist in der '.
- 'passenden Edition installiert.
'.
- ' Das Modul kann in Ihrer '.
- 'Shopedition nicht ausgeführt werden. Bitte fragen Sie nach einer Modulversion für Ihre '.
- 'Shopedition.
'.
- '',
- 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '.
- 'installiert (auf passendes Zend-Installationspaket achten!)',
- 'hasZendLoaderOptimizer_DESC' => 'Das Modul erfordert (je nach PHP-Version) den Zend Optimizer '.
- 'bzw. den Zend Guard Loader. Achten Sie darauf, ein für den verfügbaren Decoder '.
- 'erstelltes Installationspaket zu verwenden.
'.
- ' Der passende Decoder ist '.
- 'auf Ihrem Server installiert.
'.
- ' Der passende Decoder ist '.
- 'auf Ihrem Server installiert. Es ist eine zusätzliche Erweiterungen (Zend OPcache) installiert, '.
- 'die im Zusammenspiel mit dem Decoder Fehler verursachen kann.
'.
- ' Das Modul kann ohne den '.
- 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '.
- 'Installation des passenden Zend-Decoders.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasIonCubeLoader' => 'ionCube Loader installiert (auf passendes ionCube-Installationspaket achten!)',
- 'hasIonCubeLoader_DESC' => 'Das Modul erfordert den ionCube Loader. Achten Sie darauf, ein '.
- 'für den verfügbaren Decoder erstelltes Installationspaket zu verwenden.
'.
- ' Der passende Decoder ist '.
- 'auf Ihrem Server installiert.
'.
- ' Das Modul kann ohne den '.
- 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '.
- 'Installation des ionCube Loaders.
'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'hasIonCubeOrZendLoader' => 'ionCube Loader oder Zend Optimizer / Guard Loader installiert '.
- '(%1$s)',
- 'hasIonCubeOrZendLoader_DESC' => 'Das Modul erfordert den ionCube Loader oder den Zend '.
- 'Optimizer / Guard Loader. Achten Sie darauf, ein für die verfügbaren Decoder erstelltes '.
- 'Installationspaket zu verwenden (%1$s).
'.
- ' Ein passender Decoder ist '.
- 'auf Ihrem Server installiert.
'.
- ' Ein passender Decoder ist '.
- 'auf Ihrem Server installiert. Es ist jedoch ein Abbruchgrund festgestellt worden, der zu Fehlern '.
- 'führen kann. Details entnehmen Sie bitte den folgenden Hinweisen.
'.
- ' Das Modul kann ohne einen '.
- 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '.
- 'Installation des ionCube Loaders oder des Zend Optimizers / Guard Loaders.
'.
- '%2$s'.
- 'Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '.
- 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '.
- 'Verzeichnisse erfordern eine Anpassung.
'.
- 'Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
- 'Bei Fragen kontaktieren Sie uns bitte über
'.
- 'support@shopmodule.com.
',
- 'RemoteVersionDiff' => ' (Remotescript hat abweichende Version oder ist nicht '.
- 'prüfbar, Ergebnis mglw. nicht sicher)',
- 'globalSuccess' => 'Die technische Prüfung war erfolgreich. Sie können das Modul '.
- 'installieren.*
',
- 'globalNotSuccess' => 'Die technische Prüfung war nicht erfolgreich. Bitte kontrollieren '.
- 'Sie die rot oder orange markierten Bedingungen.
',
- 'deleteFile1' => 'Löschen Sie diese Datei nach der Verwendung bitte unbedingt wieder von '.
- 'Ihrem Server! Klicken Sie hier, um diese Datei zu löschen.',
- 'showPhpInfo' => 'PHPinfo anzeigen',
- 'dependentoffurther' => '* abhängig von ungeprüften Voraussetzungen',
- 'oneandonedescription' => '** geprüft wurde das Ausführungsverzeichnis, '.
- 'providerabhängig müssen Unterverzeichnisse separat geprüft werden (z.B. bei 1&1)',
- 'or' => ' oder ',
- 'toggleswitch' => 'Klick für Details zur Prüfung',
- 'unableDeleteFile' => 'Datei konnte nicht gelöscht werden. Bitte löschen Sie diese '.
- 'manuell.',
- 'goodBye' => 'Auf Wiedersehen.',
- 'unableExecuteDirectoryIterator' => 'Es können nicht alle Unterverzeichnisse auf weitere Prüfungen '.
- 'kontrolliert werden. (%1$s)',
- 'availableDecoder' => 'verfügbar: %1$s - auf passendes Installationspaket achten!',
- 'noDecoderAvailable' => 'kein verwendbarer Decoder verfügbar',
- 'availableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer',
- 'notAvailableDecoder_hasZendLoaderOptimizer' => 'Der Zend Guard Loader / Optimizer ist nicht '.
- 'installiert.',
- 'decoderIssue_hasZendLoaderOptimizer' => 'Der Zend-Decoder ist '.
- 'auf Ihrem Server installiert. Es ist jedoch eine zusätzliche Erweiterungen (Zend OPcache) '.
- 'installiert, die im Zusammenspiel mit dem Zend-Decoder Fehler verursachen kann.',
- 'availableDecoder_hasIonCubeLoader' => 'ionCube Loader',
- 'notAvailableDecoder_hasIonCubeLoader' => 'Der ionCube Loader ist nicht installiert.',
- 'decoderIssue_hasIonCubeLoader' => 'Es wurde ein nicht definierter Abbruchgrund bei der '.
- 'Verwendung des ionCube-Decoders festgestellt.',
- ),
- 'en' => array(
- 'RequCheck' => 'Requirement check',
- 'ExecNotice' => 'Execute this check script in the root directory of your shop. In this '.
- 'case only checks can executed succesfully.',
- 'RequSucc' => 'condition is fulfilled',
- 'RequNotSucc' => 'condition isn\'t fulfilled',
- 'RequUnknown' => 'condition unclear, see notes in help text',
- 'RequNotCheckable' => 'condition isn\'t checkable',
- 'hasMinPhpVersion' => 'at least PHP version %1$s',
- 'hasMinPhpVersion_DESC' => 'The module requires a PHP version at least %1$s
'.
- ' The appropriate version of PHP '.
- 'is activated on your server.
'.
- ' The module can not be executed within '.
- 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
- 'contact us for another module version.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasMaxPhpVersion' => 'not more than PHP version %1$s',
- 'hasMaxPhpVersion_DESC' => 'The module requires a PHP version not more than %1$s
'.
- ' The appropriate version of PHP '.
- 'is activated on your server.
'.
- ' The module can not be executed within '.
- 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
- 'contact us for another module version.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasFromToPhpVersion' => 'server use PHP version between %1$s and %2$s',
- 'hasFromToPhpVersion_DESC'=> 'The module requires a PHP version between %1$s and %2$s
'.
- ' The appropriate version of PHP '.
- 'is activated on your server.
'.
- ' The module can not be executed within '.
- 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
- 'contact us for another module version.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasExtension' => '%1$s extension is available',
- 'hasExtension_DESC' => 'The module requires the %1$s server extension.
'.
- ' The %1$s server extension is '.
- 'available on your server.
'.
- ' The module can not be executed '.
- 'without the %1$s extension. Ask your server provider for installing this extension.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasMinCurlVersion' => 'at least cURL version %1$s',
- 'hasMinCurlVersion_DESC' => 'The module requires at least cURL version %1$s.
'.
- ' cURL is available '.
- 'in a compatible version.
'.
- ' cURL is not installed or '.
- 'installed in an older version. Ask your server provider for an appropriate version.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasMinOpenSSLVersion' => 'at least OpenSSL version %1$s',
- 'hasMinOpenSSLVersion_DESC' => 'The module requires at least OpenSSL version %1$s.
'.
- ' OpenSSL is availabe '.
- 'in a compatible version.
'.
- ' OpenSSL is not installed or '.
- 'installed in an older version. Ask your server provider for an appropriate version.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasMinShopVersion' => 'at least shop version %1$s',
- 'hasMinShopVersion_DESC' => 'The module is released to shop version %1$s
'.
- ' The shop software is installed '.
- 'in a compatible version.
'.
- ' We can not guarantee, '.
- 'that this module works properly in your shop version. Please ask for a matching module version.
'.
- '',
- 'hasMaxShopVersion' => 'not more than shop version %1$s',
- 'hasMaxShopVersion_DESC' => 'The module is released to shop version %1$s
'.
- ' The shop software is installed '.
- 'in a compatible version.
'.
- ' We can not guarantee, '.
- 'that this module works properly in your shop version. Please ask for a matching module version.
'.
- '',
- 'hasMinModCfgVersion' => '%2$s (ModCfg item "%1$s") at least in version %3$s',
- 'hasMinModCfgVersion_DESC' => 'The module requires additional software "%2$s" at least '.
- 'in version %3$s
'.
- ' The software is installed '.
- 'in a compatible version.
'.
- ' The additional software is '.
- 'not installed or in wrong version available. Please install the additional software before '.
- 'proceeding this installation.
'.
- '',
- 'hasMaxModCfgVersion' => '%2$s (ModCfg item "%1$s") not more than in version %3$s',
- 'hasMaxModCfgVersion_DESC' => 'The module requires additional software "%2$s" not more than '.
- 'in version %3$s
'.
- ' The software is installed '.
- 'in a compatible version.
'.
- ' The additional software is '.
- 'be installed or in wrong version available. Please install the additional software before '.
- 'proceeding this installation.
'.
- '',
- 'requireNewLicence' => 'former licence key can be used',
- 'requireNewLicence_DESC' => 'This test tries to determine whether you need a new licence key '.
- 'for the use of this module
'.
- ' You have stored a license key '.
- 'for this module, which is probably also compatible for the new module version.
'.
- ' You need likely a new license '.
- 'key for this module. Do you have already one, run the installation and then apply the license '.
- 'key in the admin panel of your shop. Otherwise, you can purchase it in our shop '.
- '
oxidmodule.com or also create a '.
- 'free trial license key in the admin panel of your shop.
'.
- '',
- 'hasModCfg' => 'Module '.
- 'Connector installed',
- 'hasModCfg_DESC' => 'The module requires necessarily the D3 Module Connector.
'.
- ' The Module Connector is '.
- 'installed.
'.
- ' The module can not be executed '.
- 'without the Module Connector. Please download this free of charge from our shop '.
- '
www.oxidmodule.com/'.
- 'connector/ and install it beforehand.
'.
- '',
- 'isShopEdition' => 'shop edition is %1$s',
- 'isShopEdition_DESC' => 'The module requires one of these shop editions: %1$s
'.
- ' The shop is installed '.
- 'in the appropriate edition.
'.
- ' The module can not be executed '.
- 'in your shop edition. Please ask for a module version for your shop edition.
'.
- '',
- 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '.
- 'installed (pay attention to the compatible Zend installation package!)',
- 'hasZendLoaderOptimizer_DESC' => 'The module requires (depending on the PHP version) the Zend Guard Optimizer '.
- 'or the Zend Guard Loader.
'.
- ' The appropriate decoder is '.
- 'installed on your server.
'.
- ' The decoder is '.
- 'installed on your server. There is an additional installed extension (Zend OPcache), '.
- 'which can cause errors in combination with the decoder.
'.
- ' The decoder isn\'t '.
- 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasIonCubeLoader' => 'ionCube Loader installed (pay attention to the compatible ionCube installation package!)',
- 'hasIonCubeLoader_DESC' => 'The module requires the ionCube Loader.
'.
- ' The appropriate decoder is '.
- 'installed on your server.
'.
- ' The decoder isn\'t '.
- 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'hasIonCubeOrZendLoader' => 'ionCube Loader or Zend Optimizer / Guard Loader installed '.
- '(%1$s)',
- 'hasIonCubeOrZendLoader_DESC' => 'The module requires the ionCube Loader or the Zend '.
- 'Optimizer / Guard Loader. Pay attention to use a compatible installation package (%1$s).
'.
- ' One of the appropriate '.
- 'decoders is installed on your server.
'.
- ' One of the appropriate '.
- 'decoder is installed on your server. An undefined abort reason has been found, which can cause '.
- 'to errors. For details, please refer to the following notes.
'.
- ' None of the decoders is '.
- 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
'.
- '%2$s'.
- 'The [+] button show details for all tested directories. Depending on the server settings, '.
- 'the results may vary. Only the red marked directories requires adaptation.
'.
- 'Details about your server installation you can see by clicking on the button "show PHPinfo". '.
- 'If you have any questions, please contact us at
'.
- 'support@shopmodule.com.
',
- 'RemoteVersionDiff' => ' (Remote script has different version or isn\'t '.
- 'callable, result may not be safe)',
- 'globalSuccess' => 'The technical test was successful. Your server is ready for installing '.
- 'the module.*
',
- 'globalNotSuccess' => 'The technical test wasn\'t successfull. Please check the red or orange marked '.
- 'conditions.
',
- 'deleteFile1' => 'Please delete this file after use on your server! Click here, to delete this file.',
- 'showPhpInfo' => 'show PHPinfo',
- 'dependentoffurther' => '* dependent of further unchecked conditions',
- 'oneandonedescription' => '** this check use execution directory only, provider dependend '.
- 'subdirectories have to check separately (e.g. at 1&1)',
- 'or' => ' or ',
- 'toggleswitch' => 'click for details',
- 'unableDeleteFile' => 'Unable to delete file. Please delete it manually.',
- 'goodBye' => 'Good Bye.',
- 'unableExecuteDirectoryIterator' => 'Unable to check subdirectories for further checks. (%1$s)',
- 'availableDecoder' => 'available: %1$s - pay attention to the compatible installation package!',
- 'noDecoderAvailable' => 'no usable decoder available',
- 'availableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer',
- 'notAvailableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer isn\'t '.
- 'available.',
- 'decoderIssue_hasZendLoaderOptimizer' => 'The Zend decoder is '.
- 'installed on your server. There is an additional installed extension (Zend OPcache), '.
- 'which can cause errors in combination with the decoder.',
- 'availableDecoder_hasIonCubeLoader' => 'ionCube Loader',
- 'notAvailableDecoder_hasIonCubeLoader' => 'ionCube Loader isn\'t available.',
- 'decoderIssue_hasIonCubeLoader' => 'An undefined abort reason has been found when using the '.
- 'ionCube decoder.',
- ),
- );
- }
-}
-
-/**
- * Class requRemote
- */
-class requRemote
-{
- public $blUseRemote = true;
-
- public $oModuleData;
-
- /**
- * @param $sModId
- * @param $sModVersion
- * @param $sShopEdition
- *
- * @return bool|array
- */
- public function getShopEdition($sModId, $sModVersion, $sShopEdition)
- {
- $sUrl = "moduleversion/";
- $sUrl .= 'modid/' . urlencode($sModId) . '/';
- $sUrl .= 'forcemodversion/' . urlencode($sModVersion) . '/';
- $sUrl .= 'edition/' . urlencode($sShopEdition) . '/';
-
- /** @var stdClass $oModuleData */
- $oModuleData = $this->_getRemoteServerData($sUrl);
-
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
- return explode(',', $oModuleData->moduleversion->compatible_release->shopedition);
- }
-
- return false;
- }
-
- /**
- * @param $sModId
- * @param $sModVersion
- * @param $sShopEdition
- *
- * @return bool|string
- */
- public function getMinShopVersion($sModId, $sModVersion, $sShopEdition)
- {
- $sUrl = "moduleversion/";
- $sUrl .= 'modid/' . urlencode($sModId) . '/';
- $sUrl .= 'forcemodversion/' . urlencode($sModVersion) . '/';
- $sUrl .= 'edition/' . urlencode($sShopEdition) . '/';
-
- /** @var stdClass $oModuleData */
- $oModuleData = $this->_getRemoteServerData($sUrl);
-
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
- return $this->shortenVersion($oModuleData->moduleversion->compatible_release->fromshopversion);
- }
-
- return false;
- }
-
- /**
- * @param $sModId
- * @param $sModVersion
- * @param $sShopEdition
- *
- * @return bool|string
- */
- public function getMaxShopVersion($sModId, $sModVersion, $sShopEdition)
- {
- $sUrl = "moduleversion/";
- $sUrl .= 'modid/' . urlencode($sModId) . '/';
- $sUrl .= 'forcemodversion/' . urlencode($sModVersion) . '/';
- $sUrl .= 'edition/' . urlencode($sShopEdition) . '/';
-
- /** @var stdClass $oModuleData */
- $oModuleData = $this->_getRemoteServerData($sUrl);
-
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
- return $this->shortenVersion($oModuleData->moduleversion->compatible_release->toshopversion);
- }
-
- return false;
- }
-
- /**
- * @param $sUrl
- *
- * @return stdClass
- */
- protected function _getRemoteServerData($sUrl)
- {
- if (isset($this->oModuleData[$sUrl])) {
- return $this->oModuleData[$sUrl];
- }
-
- $oFailureData = new stdClass();
- $oFailureData->status = 'NOK';
-
- if (false === $this->blUseRemote) {
- return $oFailureData;
- }
- $sHost = "http://update.oxidmodule.com";
- $sData = $this->curlConnect($sHost . '/serialized/' . $sUrl);
- $oData = unserialize($sData);
-
- if (false == $oData) {
- return $oFailureData;
- }
- $this->oModuleData[$sUrl] = $oData;
-
- return $this->oModuleData[$sUrl];
- }
-
- /**
- * @param $sFilePath
- *
- * @return string
- */
- public function curlConnect($sFilePath)
- {
- $sContent = '';
-
- if (($ch = $this->_hasCurl())) {
- $sCurl_URL = preg_replace('@^((http|https)://)@', '', $sFilePath);
- curl_setopt($ch, CURLOPT_URL, $sCurl_URL);
- if ($_SERVER['HTTP_USER_AGENT']) {
- curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
- }
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
- curl_setopt($ch, CURLOPT_POST, 0);
- $sContent = curl_exec($ch);
- }
-
- return $sContent;
- }
-
- /**
- * @return null|resource
- */
- protected function _hasCurl()
- {
- if (extension_loaded('curl')
- && function_exists('curl_init')
- && function_exists('curl_exec')
- ) {
- return curl_init();
- }
-
- return null;
- }
-
- /**
- * @param $sVersion
- *
- * @return string
- */
- public function shortenVersion($sVersion)
- {
- $aVersion = explode('.', $sVersion);
-
- unset($aVersion[3]);
-
- return implode('.', $aVersion);
- }
-}
-
-/**
- * Class requTests
- * contains test functions
- */
-class requTests
-{
- public $oBase;
- public $oDb;
- public $oConfig;
- public $blGlobalResult = false;
-
- /**
- * @param requCheck $oCheckInstance
- * @param requConfig $oConfig
- * @param $oDb
- * @param requRemote $oRemote
- */
- public function __construct(requCheck $oCheckInstance, requConfig $oConfig, $oDb, requRemote $oRemote)
- {
- $this->oBase = $oCheckInstance;
- $this->oConfig = $oConfig;
- $this->oDb = $oDb;
- $this->oRemote = $oRemote;
- }
-
- /**
- * @return requCheck
- */
- public function getBase()
- {
- return $this->oBase;
- }
-
- public function getDb()
- {
- return $this->oDb;
- }
-
- /**
- * @return string
- */
- public function getBasePath()
- {
- return $this->getBase()->getBasePath();
- }
-
- /**
- * @param bool $blResult
- */
- public function setGlobalResult($blResult)
- {
- $this->getBase()->blGlobalResult = $blResult;
- }
-
- /**
- * @param $sMethodName
- * @param null $aArguments
- *
- * @return array
- */
- public function checkInSubDirs($sMethodName, $aArguments = null)
- {
- return $this->getBase()->checkInSubDirs($sMethodName, $aArguments);
- }
-
- /**
- * @param $aConfiguration
- *
- * @return array
- */
- public function hasMinPhpVersion(&$aConfiguration)
- {
- $aResult = array($this->getBasePath() => false);
-
- if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '>=')) {
- $aResult[$this->getBasePath()] = true;
- }
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return array
- */
- public function hasFromToPhpVersion(&$aConfiguration)
- {
- $aResult = array($this->getBasePath() => false);
-
- if ((version_compare(phpversion(), $aConfiguration['aParams']['from'], '>=')) &&
- (version_compare(phpversion(), $aConfiguration['aParams']['to'], '<'))
- ) {
- $aResult[$this->getBasePath()] = true;
- }
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return array
- */
- public function hasMaxPhpVersion(&$aConfiguration)
- {
- $aResult = array($this->getBasePath() => false);
-
- if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '<=')) {
- $aResult[$this->getBasePath()] = true;
- }
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return array
- */
- public function hasExtension(&$aConfiguration)
- {
- $aResult = array($this->getBasePath() => false);
-
- if (extension_loaded($aConfiguration['aParams']['type'])) {
- $aResult[$this->getBasePath()] = true;
- }
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param $aConfiguration
- * @return array
- */
- public function hasMinCurlVersion(&$aConfiguration)
- {
- $aCurlVersion = curl_version();
- $aResult = array(
- $this->getBasePath() => version_compare($aCurlVersion['version'], $aConfiguration['aParams']['version'], '>=')
- );
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param $aConfiguration
- * @return array
- */
- public function hasMinOpenSSLVersion(&$aConfiguration)
- {
- $aResult = array(
- $this->getBasePath() => version_compare($this->get_openssl_version_number(true), $aConfiguration['aParams']['version'], '>=')
- );
-
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams']));
-
- return $aResult;
- }
-
- /**
- * @param bool $patch_as_number
- * @param null $openssl_version_number
- * @return bool|string
- */
- protected function get_openssl_version_number($patch_as_number=false,$openssl_version_number=null) {
- if (is_null($openssl_version_number)) $openssl_version_number = OPENSSL_VERSION_NUMBER;
- $openssl_numeric_identifier = str_pad((string)dechex($openssl_version_number),8,'0',STR_PAD_LEFT);
-
- $openssl_version_parsed = array();
- $preg = '/(?[[:xdigit:]])(?[[:xdigit:]][[:xdigit:]])(?[[:xdigit:]][[:xdigit:]])';
- $preg.= '(?[[:xdigit:]][[:xdigit:]])(?[[:xdigit:]])/';
- preg_match_all($preg, $openssl_numeric_identifier, $openssl_version_parsed);
- $openssl_version = false;
- if (!empty($openssl_version_parsed)) {
- $alphabet = array(1=>'a',2=>'b',3=>'c',4=>'d',5=>'e',6=>'f',7=>'g',8=>'h',9=>'i',10=>'j',11=>'k',
- 12=>'l',13=>'m',14=>'n',15=>'o',16=>'p',17=>'q',18=>'r',19=>'s',20=>'t',21=>'u',
- 22=>'v',23=>'w',24=>'x',25=>'y',26=>'z');
- $openssl_version = intval($openssl_version_parsed['major'][0]).'.';
- $openssl_version.= intval($openssl_version_parsed['minor'][0]).'.';
- $openssl_version.= intval($openssl_version_parsed['fix'][0]);
- $patchlevel_dec = hexdec($openssl_version_parsed['patch'][0]);
- if (!$patch_as_number && array_key_exists($patchlevel_dec, $alphabet)) {
- $openssl_version.= $alphabet[$patchlevel_dec]; // ideal for text comparison
- }
- else {
- $openssl_version.= '.'.$patchlevel_dec; // ideal for version_compare
- }
- }
- return $openssl_version;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool
- */
- public function hasMinShopVersion(&$aConfiguration)
- {
- if ($this->getDb()) {
- $sField = 'oxversion';
- $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 ORDER BY oxversion ASC LIMIT 1";
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
-
- $oEditionResult = $this->_getShopEdition();
- $sEdition = strtoupper($oEditionResult->oxedition);
-
- $mMinRemoteVersion = $this->oRemote->getMinShopVersion(
- $this->oConfig->sModId,
- $this->oConfig->sModVersion,
- $sEdition
- );
-
- if ($mMinRemoteVersion) {
- $aConfiguration['aParams'] = array('version' => $mMinRemoteVersion);
- } else {
- $aConfiguration['aParams'] = array('version' => $aConfiguration['aParams'][$sEdition]);
- }
-
- if (version_compare($oResult->oxversion, $aConfiguration['aParams']['version'], '>=')) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool
- */
- public function hasMaxShopVersion(&$aConfiguration)
- {
- if ($this->getDb()) {
- $sField = 'oxversion';
- $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 ORDER BY oxversion DESC LIMIT 1";
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
-
- $oEditionResult = $this->_getShopEdition();
- $sEdition = strtoupper($oEditionResult->oxedition);
-
- $mMaxRemoteVersion = $this->oRemote->getMaxShopVersion(
- $this->oConfig->sModId,
- $this->oConfig->sModVersion,
- $sEdition
- );
-
- if ($mMaxRemoteVersion) {
- $aConfiguration['aParams'] = array('version' => $mMaxRemoteVersion);
- } else {
- $aConfiguration['aParams'] = array('version' => $aConfiguration['aParams'][$sEdition]);
- }
-
- if (version_compare($oResult->oxversion, $aConfiguration['aParams']['version'], '<=')) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool
- */
- public function isShopEdition(&$aConfiguration)
- {
- if ($this->getDb()) {
- $oResult = $this->_getShopEdition();
-
- $mRemoteShopEditions = $this->oRemote->getShopEdition(
- $this->oConfig->sModId,
- $this->oConfig->sModVersion,
- $oResult->oxedition
- );
-
- if (is_array($mRemoteShopEditions)) {
- $aConfiguration['aParams'][0] = $mRemoteShopEditions;
- }
-
- if (in_array(strtoupper($oResult->oxedition), $aConfiguration['aParams'][0])) {
- $aConfiguration['aParams'][0] = strtoupper($oResult->oxedition);
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * @return bool|object|stdClass
- */
- protected function _getShopEdition()
- {
- if ($this->getDb()) {
- $sField = 'oxedition';
- $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 LIMIT 1";
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
-
- return $oResult;
- }
-
- return false;
- }
-
- /**
- * @return bool
- */
- public function hasModCfg()
- {
- if ($this->getDb()) {
- $sModId = 'd3modcfg_lib';
- $sSelect = "SELECT 1 as result FROM d3_cfg_mod WHERE oxmodid = '" . $sModId . "' LIMIT 1";
- $rResult = mysqli_query($this->getDb(), $sSelect);
- if (is_object($rResult)) {
- $oResult = mysqli_fetch_object($rResult);
-
- if ((bool) $oResult->result == true) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool|int
- */
- public function hasMinModCfgVersion(&$aConfiguration)
- {
- if ($this->getDb()) {
- $sSelect = "SELECT IF ".
- "(INET_ATON(oxversion) >= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result ".
- "FROM d3_cfg_mod ".
- "WHERE
- oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
- oxversion != 'basic'
- ORDER BY oxversion ASC LIMIT 1";
-
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
- $blReturn = (bool)$oResult->result;
-
- if (false == $blReturn) {
- $this->setGlobalResult(false);
- }
-
- return $blReturn;
- }
-
- $this->setGlobalResult(false);
-
- return false;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool|int
- */
- public function hasMaxModCfgVersion(&$aConfiguration)
- {
- if ($this->getDb()) {
- $sSelect = "SELECT
- IF (INET_ATON(oxversion) <= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result
- FROM d3_cfg_mod WHERE
- oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
- oxversion != 'basic'
- ORDER BY oxversion ASC LIMIT 1";
-
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
- $blResult = (bool)$oResult->result;
-
- if (false == $blResult) {
- $this->setGlobalResult(false);
- }
-
- return $blResult;
- }
-
- $this->setGlobalResult(false);
-
- return false;
- }
-
- /**
- * @param $aConfiguration
- *
- * @return bool
- */
- public function requireNewLicence(&$aConfiguration)
- {
- if ($this->getDb()) {
- $sSelect = "SELECT
- oxversion as oxversion
- FROM d3_cfg_mod WHERE
- oxmodid = '" . $this->oConfig->sModId . "'
- ORDER BY oxversion ASC LIMIT 1";
-
- $rResult = mysqli_query($this->getDb(), $sSelect);
- $oResult = mysqli_fetch_object($rResult);
-
- if (isset($oResult)
- && is_object($oResult)
- && isset($oResult->oxversion)
- && isset($aConfiguration['aParams']['checkVersion'])
- ) {
- $sInstalledVersion = $this->_getConvertedVersion(
- $oResult->oxversion,
- $aConfiguration['aParams']['remainingDigits']
- );
- $sNewVersion = $this->_getConvertedVersion(
- $this->oConfig->sModVersion,
- $aConfiguration['aParams']['remainingDigits']
- );
- if (version_compare($sInstalledVersion, $sNewVersion, '>=')) {
- return true;
- }
- }
- }
-
- return 'notice';
- }
-
- /**
- * cut not used version digits
- * @param string $sVersion
- * @param int $iRemainingDigits
- *
- * @return string
- */
- protected function _getConvertedVersion($sVersion, $iRemainingDigits)
- {
- $aInstalledVersion = explode('.', $sVersion);
- return implode('.', array_slice($aInstalledVersion, 0, $iRemainingDigits));
- }
-
- /**
- * @return array
- */
- public function hasZendLoaderOptimizer(&$aConfiguration, $blCheckBasePathOnly = false)
- {
- $aResult = array($this->getBasePath() => false);
-
- if ((version_compare(phpversion(), '5.2.0', '>=')
- && version_compare(phpversion(), '5.2.900', '<')
- && function_exists('zend_optimizer_version')
- ) || (
- version_compare(phpversion(), '5.3.0', '>=')
- && version_compare(phpversion(), '5.6.900', '<')
- && function_exists('zend_loader_version')
- )) {
- if (function_exists('opcache_get_status')
- && ($aOpCacheStatus = opcache_get_status())
- && $aOpCacheStatus['opcache_enabled']
- ) {
- $aResult[$this->getBasePath()] = null;
- } else {
- $aResult[$this->getBasePath()] = true;
- }
- }
-
- if ($blCheckBasePathOnly == false) {
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__));
- }
-
- return $aResult;
- }
-
- /**
- * @return array
- */
- public function hasIonCubeLoader(&$aConfiguration, $blCheckBasePathOnly = false)
- {
- $aResult = array($this->getBasePath() => false);
-
- if (function_exists('ioncube_loader_version')) {
- $aResult[$this->getBasePath()] = true;
- }
-
- if ($blCheckBasePathOnly == false) {
- $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__));
- }
-
- return $aResult;
- }
-
- /**
- * @return array
- */
- public function hasIonCubeOrZendLoader(&$aConfiguration)
- {
- $oLayout = $this->getBase()->oLayout;
-
- $aDecoderTexts = array();
- $aDecoderErrorTexts = array();
- foreach (array('hasZendLoaderOptimizer', 'hasIonCubeLoader') as $sDecoderCheck) {
- $aReturn = call_user_func_array(array($this, $sDecoderCheck), array($aConfiguration, true));
- if ($aReturn[$this->getBasePath()]) {
- $aDecoderTexts[$sDecoderCheck] = $oLayout->translate('availableDecoder_'.$sDecoderCheck);
- } elseif ($aReturn[$this->getBasePath()] === null) {
- $aDecoderErrorTexts[$sDecoderCheck] = $oLayout->translate('decoderIssue_'.$sDecoderCheck);
- } else {
- $aDecoderErrorTexts[$sDecoderCheck] = $oLayout->translate('notAvailableDecoder_'.$sDecoderCheck);
- }
- }
-
- $sDecoderText = count($aDecoderTexts) ?
- sprintf($oLayout->translate('availableDecoder'), implode(' + ', $aDecoderTexts)) :
- $oLayout->translate('noDecoderAvailable');
- $aConfiguration['aParams'][1] = $sDecoderText;
-
- $sDecoderErrorText = count($aDecoderErrorTexts) ?
- ''.implode('', $aDecoderErrorTexts).'
' :
- '';
- $aConfiguration['aParams'][2] = $sDecoderErrorText;
-
- $aZendLoaderResults = $this->hasZendLoaderOptimizer($aConfiguration);
- $aIonCubeLoaderResults = $this->hasIonCubeLoader($aConfiguration);
-
- $aResult = array();
- foreach (array_keys($aZendLoaderResults) as $sPath) {
- // transfer meta data
- if (strstr($sPath, '@@')) {
- $aResult[$sPath] = $aZendLoaderResults[$sPath];
- } elseif ($aIonCubeLoaderResults[$sPath] || $aZendLoaderResults[$sPath]) {
- $aResult[$sPath] = true;
- } elseif ($aIonCubeLoaderResults[$sPath] === null || $aZendLoaderResults[$sPath] === null) {
- $aResult[$sPath] = null;
- } else {
- $aResult[$sPath] = false;
- }
- }
-
- return $aResult;
- }
-}
-
-/**
- * Class requTransformation
- */
-class requTransformation
-{
- public $oCheck;
-
- /**
- * @param requCheck $oCheck
- */
- public function __construct(requCheck $oCheck)
- {
- $this->oCheck = $oCheck;
- }
-
- /**
- * @param $aCheckList
- */
- public function transformCheckList($aCheckList)
- {
- $this->_removeDeprecatedLibs($aCheckList['hasMinModCfgVersion']);
- $this->_removeDeprecatedLibs($aCheckList['hasMaxModCfgVersion']);
-
- return $aCheckList;
- }
-
- /**
- * @param array $aCheck
- */
- protected function _removeDeprecatedLibs(&$aCheck)
- {
- $blDelOldLibs = false;
- $sCheckVersion = 0;
-
- if (is_array($aCheck)) {
- $sSelect = "SELECT oxversion as result ".
- "FROM d3_cfg_mod ".
- "WHERE oxmodid = 'd3modcfg_lib' LIMIT 1";
- $rResult = mysqli_query($this->oCheck->getDb(), $sSelect);
-
- if (is_object($rResult)) {
- $oResult = mysqli_fetch_object($rResult);
- if ($oResult->result) {
- $sCheckVersion = $oResult->result;
- }
- }
-
- foreach ($aCheck as $aModCfgCheck) {
- if (isset($aModCfgCheck['aParams']['id']) &&
- strtolower($aModCfgCheck['aParams']['id']) == 'd3modcfg_lib' &&
- version_compare($sCheckVersion, '4.0.0.0', '>=')
- ) {
- $blDelOldLibs = true;
- }
- }
-
- reset($aCheck);
-
- if ($blDelOldLibs) {
- $aOldLibs = array('d3install_lib', 'd3log_lib', 'd3clrtmp_lib');
- foreach ($aCheck as $sKey => $aModCfgCheck) {
- if (isset($aModCfgCheck['aParams']['id']) &&
- in_array(strtolower($aModCfgCheck['aParams']['id']), $aOldLibs)
- ) {
- unset($aCheck[$sKey]);
- }
- }
- }
- }
- }
-}
-
-/**
- * @param $mVar
- */
-function dumpvar($mVar)
-{
- echo "";
- print_r($mVar);
- echo "
";
-}
-
-$oRequCheck = new requcheck;
-if (isset($_REQUEST['fnc']) && $_REQUEST['fnc']) {
- $oRequCheck->{$_REQUEST['fnc']}();
-} else {
- $oRequCheck->startCheck();
-}
diff --git a/sources/GeoIP-Installation.docx b/sources/GeoIP-Installation.docx
deleted file mode 100644
index d68ac5e..0000000
Binary files a/sources/GeoIP-Installation.docx and /dev/null differ