merge rel_3.x to trunk

This commit is contained in:
Daniel Seifert 2017-03-13 14:26:34 +00:00
commit e266f50bb3
14 changed files with 348 additions and 108 deletions

1
.gitattributes vendored
View File

@ -11,6 +11,7 @@ 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

View File

@ -25,9 +25,6 @@ class d3cmp_geoip extends oxView
private $_sModId = 'd3_geoip';
/**
* @return null
*/
public function init()
{
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
@ -40,7 +37,8 @@ class d3cmp_geoip extends oxView
/** @var $oLocation d3geoip */
$oLocation = oxNew('d3geoip');
$oLocation->setCountryCurrency();
$oLocation->setCountryLanguage();
// moved to oxcmp_lang extension because here it's to late
// $oLocation->setCountryLanguage();
if (!isset($oBasket)) {
$oBasket = $this->getSession()->getBasket();

View File

@ -20,6 +20,9 @@ class d3_cfg_geoipset_main extends d3_cfg_mod_main
protected $_sThisTemplate = "d3_cfg_geoipset_main.tpl";
protected $_blHasDebugSwitch = true;
protected $_sDebugHelpTextIdent = 'D3_GEOIP_SET_DEBUG_DESC';
protected $_sMenuItemTitle = 'd3mxgeoip';
protected $_sMenuSubItemTitle = 'd3mxgeoip_settings';
public $oCountryList;
/**
* @param $sIP
@ -44,46 +47,30 @@ class d3_cfg_geoipset_main extends d3_cfg_mod_main
return $sTitle;
}
/**
* @return oxcountrylist
*/
public function getCountryList()
{
startProfile(__METHOD__);
/** @var $oCountryList oxcountrylist */
$oCountryList = oxNew('oxcountrylist');
$oListObject = $oCountryList->getBaseObject();
$sFieldList = $oListObject->getSelectFields();
$sQ = "select $sFieldList from " . $oListObject->getViewName();
$oCountryList->selectString($sQ);
stopProfile(__METHOD__);
return $oCountryList;
}
/**
* @return oxcountrylist
*/
public function getIPCountryList()
{
startProfile(__METHOD__);
if ($this->oCountryList) {
return $this->oCountryList;
}
startProfile(__METHOD__);
/** @var $oGeoIp d3geoip */
$oGeoIp = oxNew('d3geoip');
/** @var $oCountryList oxcountrylist */
$oCountryList = oxNew('oxcountrylist');
$oListObject = $oCountryList->getBaseObject();
$this->oCountryList = oxNew('oxcountrylist');
$oListObject = $this->oCountryList->getBaseObject();
$sFieldList = $oListObject->getSelectFields();
$sQ = "select (SELECT d3startip FROM ".$oGeoIp->getViewName().
" WHERE D3ISO = " .$oListObject->getViewName(). ".
oxisoalpha2 LIMIT 1) as IP, $sFieldList from " . $oListObject->getViewName();
$oCountryList->selectString($sQ);
$this->oCountryList->selectString($sQ);
stopProfile(__METHOD__);
return $oCountryList;
return $this->oCountryList;
}
}

View File

@ -15,11 +15,12 @@ $aModule = array(
'en' => '',
),
'thumbnail' => 'picture.png',
'version' => '3.0.2.1',
'version' => '3.0.2.2',
'author' => 'D³ Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/',
'extend' => array(
'oxcmp_lang' => 'd3/d3geoip/modules/components/d3_oxcmp_lang_geoip',
'oxshopcontrol' => 'd3/d3geoip/modules/controllers/d3_oxshopcontrol_geoip',
),
'files' => array(

View File

@ -15,7 +15,7 @@
* @link http://www.oxidmodule.com
*/
class d3GeoIP extends oxbase
class d3GeoIP extends oxBase
{
protected $_sClassName = 'd3geoip';
private $_sModId = 'd3_geoip';
@ -47,9 +47,7 @@ class d3GeoIP extends oxbase
}
$iIPNum = $this->_getNumIp(
oxRegistry::getConfig()->checkParamSpecialChars(
str_replace(' ', '', $sIP)
)
oxRegistry::getConfig()->checkParamSpecialChars($sIP)
);
$sISOAlpha = $this->loadByIPNum($iIPNum);
@ -120,10 +118,11 @@ class d3GeoIP extends oxbase
$sIP = 'UNKNOWN';
}
}
$sIP = str_replace(' ', '', $sIP);
stopProfile(__METHOD__);
return oxRegistry::getConfig()->checkParamSpecialChars(str_replace(' ', '', $sIP));
return oxRegistry::getConfig()->checkParamSpecialChars($sIP);
}
/**
@ -251,6 +250,7 @@ class d3GeoIP extends oxbase
if (!$this->isAdmin()
&& oxRegistry::getUtils()->isSearchEngine() === false
&& oxRegistry::getSession()->getId()
&& oxRegistry::getSession()->getVariable('d3isSetLang') === null
&& $oCountry->getId() && $oCountry->getFieldData('d3geoiplang') > -1
) {

View File

@ -0,0 +1,17 @@
<?php
class d3_oxcmp_lang_geoip extends d3_oxcmp_lang_geoip_parent
{
private $_sModId = 'd3_geoip';
public function init()
{
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
/** @var $oLocation d3geoip */
$oLocation = oxNew('d3geoip');
$oLocation->setCountryLanguage();
}
parent::init();
}
}

View File

@ -22,7 +22,6 @@ class d3_oxshopcontrol_geoip extends d3_oxshopcontrol_geoip_parent
* @param null $sFunction
* @param null $aParams
* @param null $aViewsChain
* @return null
*/
public function start ($sClass = null, $sFunction = null, $aParams = null, $aViewsChain = null)
{
@ -33,8 +32,6 @@ class d3_oxshopcontrol_geoip extends d3_oxshopcontrol_geoip_parent
/**
* check, if developer mode has to be enabled
*
* @return bool
*/
protected function _d3AddGeoIpComponent()
{

View File

@ -18,14 +18,14 @@ class d3geoip_update extends d3install_updatebase
{
public $sModKey = 'd3_geoip';
public $sModName = 'GeoIP';
public $sModVersion = '3.0.2.1';
public $sModRevision = '75';
public $sBaseConf = 'sw2M1p3STcxMXh0eDhyR1A3YUJDMDVDakZUM2FnakVDOWdwRm9SQzFiMzhqUEtNTTFXK2ZmSlhqd1k2a
DJiSi9QSjRTQUhwOXgrMzVOOVRKRWM1c1FUci9OMUtJR2xxQ0JUTzd3V3FaSEFneGRRL3FOOU1sS09ib
FpDSjBrTUJDQTh6R2pScnZpOXphaUtlZUovQ1UzNlN5di9LeXBIYmlTQzRTRlA0czRBRmVibzZOY1R1V
lNZVUE1R3hTa2drOGx0a09HN3JhMkx1OVJvcnN5OHUvbVhqWUVURVhGanBva29GOUY3amNTcXhsTVdRM
W8vRWJtYW9IY0NqdDBlSEtwOFRJMGQ1OElxeG13bDVySGFub1ovYkkrWEtvSm1HY3RMVXlPd0pJU2dmW
Vk9';
public $sModVersion = '3.0.2.2';
public $sModRevision = '81';
public $sBaseConf = 'G1oR3FtR0ZJMXNwbXNjQ0Q2WnNsdGtmU2FGVCt5NEY3MEozb2hwRnV4b2JPdXljQUFEbDJRSzFadjF6Y
nZWbEVDallzY1I0b0J5Tm9wU1IyakNPbXNkb2ZnU0J0ZzJZUnN0cEtNM3BSbjQ5NGxRTWR5THNkVDcvZ
UNuMklya3ZsUHlNeUxGeE9UYStwY3NIYTE2YVZzOHF1dFpBRTNMZU5CQ2JMTXdYOUFXSEtQRGQ2OWJmZ
VpReFVJWDBPMHQ5d2VpZTFwMXVXV1FyK1JhNVljWVJmaTNKUGV1ZjlnRFNsditKOFc4aTU1d2J1ZHlTT
U8vM0lHaCtkaHhvdGtQa1NaWWZlYklmRUpKcURmYmowVVdZN3JONENSaGdKWXh6WFMwaUlvUVlEQ3ZEW
lVKOGhMaUd4c2s2am5HUnEyWFpUeHQ=';
public $sRequirements = '';
public $sBaseValue = '';

View File

@ -21,7 +21,7 @@ $iLangNr = 0;
// -------------------------------
$aLang = array(
'charset' => 'ISO-8859-15',
'd3mxgeoip' => 'GeoIP',
'd3mxgeoip' => "<i class='fa fa-globe'></i> GeoIP",
'd3mxgeoip_settings' => 'Einstellungen',
'd3tbclgeoip_settings_main' => 'Grundeinstellungen',
'tbclcountry_geoip' => 'GeoIP-Kundenumleitungen',

View File

@ -126,7 +126,6 @@ td.edittext {
<input id="blChangeShop" class="edittext ext_edittext" type="checkbox" name="value[blChangeShop]" value='1' [{if $edit->getValue('blChangeShop') == 1}]checked[{/if}]>
[{oxinputhelp ident="D3_GEOIP_SET_OPTIONS_CHANGESHOP_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -137,7 +136,6 @@ td.edittext {
<input id="blChangeCurr" class="edittext ext_edittext" type="checkbox" name="value[blChangeCurr]" value='1' [{if $edit->getValue('blChangeCurr') == 1}]checked[{/if}]>
[{oxinputhelp ident="D3_GEOIP_SET_OPTIONS_CHANGECURR_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -148,7 +146,6 @@ td.edittext {
<input id="blChangeLang" class="edittext ext_edittext" type="checkbox" name="value[blChangeLang]" value='1' [{if $edit->getValue('blChangeLang') == 1}]checked[{/if}]>
[{oxinputhelp ident="D3_GEOIP_SET_OPTIONS_CHANGELANG_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -159,7 +156,6 @@ td.edittext {
<input id="blChangeURL" class="edittext ext_edittext" type="checkbox" name="value[blChangeURL]" value='1' [{if $edit->getValue('blChangeURL') == 1}]checked[{/if}]>
[{oxinputhelp ident="D3_GEOIP_SET_OPTIONS_CHANGEURL_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -169,13 +165,12 @@ td.edittext {
</dt>
<dd>
<select id="sFallbackCountryId" size="5" name="value[sFallbackCountryId]">
[{foreach from=$oView->getCountryList() item="oCountry"}]
[{foreach from=$oView->getIPCountryList() item="oCountry"}]
<option value="[{$oCountry->getId()}]" [{if $edit->getValue('sFallbackCountryId') == $oCountry->getId()}] selected[{/if}]>[{$oCountry->oxcountry__oxtitle->value}]</option>
[{/foreach}]
</select>
[{oxinputhelp ident="D3_GEOIP_SET_OPTIONS_NOCOUNTRY_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
</div>
</div>
@ -197,7 +192,6 @@ td.edittext {
<input id="sTestIp" type="text" maxlength="39" size="17" name="value[sTestIp]" value="[{$edit->getValue('sTestIp')}]">
[{oxinputhelp ident="D3_GEOIP_SET_IP_TESTIP_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -213,7 +207,6 @@ td.edittext {
</select>
[{oxinputhelp ident="D3_GEOIP_SET_IP_TESTCOUNTRY_DESC"}]
</dd>
<div class="spacer"></div>
</dl>
<dl>
<dt>
@ -227,7 +220,6 @@ td.edittext {
[{$oView->getIpCountry($edit->getValue('sCheckIp'))}]
[{/if}]
</dd>
<div class="spacer"></div>
</dl>
</div>
</div>
@ -247,14 +239,4 @@ td.edittext {
</table>
</form>
[{include file="d3_cfg_mod_inc.tpl"}]
<script type="text/javascript">
if (parent.parent) {
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgeoip"}]";
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3mxgeoip_settings"}]";
parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle();
}
</script>
[{include file="d3_cfg_mod_inc.tpl"}]

Binary file not shown.

View File

@ -39,11 +39,11 @@
class requConfig
{
public $sModName = 'D³ GeoIP';
public $sModName = 'D&sup3; GeoIP';
public $sModId = 'd3_geoip';
public $sModVersion = '3.0.2.1';
public $sModVersion = '3.0.2.2';
/********************** check configuration section ************************/
@ -75,7 +75,7 @@ class requConfig
// benötigt Zend Optimizer (PHP 5.2) bzw. Zend Guard Loader (> PHP 5.2)
'hasZendLoaderOptimizer' => array(
'blExec' => 1,
'blExec' => 0,
),
// benötigt IonCubeLoader
@ -83,7 +83,12 @@ class requConfig
'blExec' => 0,
),
// benötigt PHP-Extension (kaskadierbar (siehe "Desc1"))
// benötigt Zend Decoder oder IonCubeLoader
'hasIonCubeOrZendLoader' => array(
'blExec' => 1,
),
// benötigte PHP-Extension (kaskadierbar (siehe "Desc1"))
'hasExtension' => array(
array(
'blExec' => 1,
@ -99,13 +104,29 @@ class requConfig
),
),
// 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.8.0',
'CE' => '4.8.0',
'EE' => '5.1.0'
'PE' => '4.9.0',
'CE' => '4.9.0',
'EE' => '5.2.0'
),
),
@ -113,9 +134,9 @@ class requConfig
'hasMaxShopVersion' => array(
'blExec' => 1,
'aParams' => array(
'PE' => '4.9.7',
'CE' => '4.9.7',
'EE' => '5.2.7'
'PE' => '4.10.3',
'CE' => '4.10.3',
'EE' => '5.3.3'
),
),
@ -182,7 +203,7 @@ date_default_timezone_set('Europe/Berlin');
*/
class requCheck
{
public $sVersion = '4.7.1';
public $sVersion = '4.10.2';
protected $_db = false;
@ -827,6 +848,9 @@ class requLayout
width: 400px;
z-index: 2500;
}
.squ_desc li {
line-height: normal;
}
.squ_desc:hover div,
.squ_desc div:hover {
display: block;
@ -1363,6 +1387,32 @@ class requTranslations
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinCurlVersion' => 'mindestens cURL Version %1$s',
'hasMinCurlVersion_DESC' => '<div>Das Modul ben&ouml;tigt cURL ab der Version %1$s.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> cURL ist in '.
'passender Version installiert.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> cURL ist nicht oder in einer '.
'&auml;lteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '.
'cURL-Version.</div>'.
'<div>&Uuml;ber den [+]-Button k&ouml;nnen Sie Ergebnisse zu den getesteten Verzeichnissen '.
'abrufen. Je nach Servereinstellung k&ouml;nnen die Ergebnisse abweichen. Nur die rot markierten '.
'Verzeichnisse erfordern eine Anpassung.</div>'.
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinOpenSSLVersion' => 'mindestens OpenSSL Version %1$s',
'hasMinOpenSSLVersion_DESC' => '<div>Das Modul ben&ouml;tigt OpenSSL ab der Version %1$s.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> OpenSSL ist in '.
'passender Version installiert.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> OpenSSL ist nicht oder in '.
'einer &auml;lteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '.
'OpenSSL-Version.</div>'.
'<div>&Uuml;ber den [+]-Button k&ouml;nnen Sie Ergebnisse zu den getesteten Verzeichnissen '.
'abrufen. Je nach Servereinstellung k&ouml;nnen die Ergebnisse abweichen. Nur die rot markierten '.
'Verzeichnisse erfordern eine Anpassung.</div>'.
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinShopVersion' => 'mindestens Shop Version %1$s',
'hasMinShopVersion_DESC' => '<div>Das Modul ist ab Shopversion %1$s freigegeben.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> Die Shopsoftware ist in '.
@ -1437,9 +1487,10 @@ class requTranslations
'<div>Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '.
'installiert',
'installiert (auf passendes Zend-Installationspaket achten!)',
'hasZendLoaderOptimizer_DESC' => '<div>Das Modul erfordert (je nach PHP-Version) den Zend Optimizer '.
'bzw. den Zend Guard Loader.</div>'.
'bzw. den Zend Guard Loader. Achten Sie darauf, ein f&uuml;r den verf&uuml;gbaren Decoder '.
'erstelltes Installationspaket zu verwenden.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> Der passende Decoder ist '.
'auf Ihrem Server installiert.</div>'.
'<div><div class="squ_bullet" style="background-color: orange;"></div> Der passende Decoder ist '.
@ -1454,8 +1505,9 @@ class requTranslations
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasIonCubeLoader' => 'ionCube Loader installiert',
'hasIonCubeLoader_DESC' => '<div>Das Modul erfordert den ionCube Loader.</div>'.
'hasIonCubeLoader' => 'ionCube Loader installiert (auf passendes ionCube-Installationspaket achten!)',
'hasIonCubeLoader_DESC' => '<div>Das Modul erfordert den ionCube Loader. Achten Sie darauf, ein '.
'f&uuml;r den verf&uuml;gbaren Decoder erstelltes Installationspaket zu verwenden.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> Der passende Decoder ist '.
'auf Ihrem Server installiert.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> Das Modul kann ohne den '.
@ -1467,8 +1519,28 @@ class requTranslations
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'RemoteVersionDiff' => ' <span class="note">(Remotescript hat abweichende Version, Ergebnis mglw.'.
'nicht sicher)</span>',
'hasIonCubeOrZendLoader' => 'ionCube Loader oder Zend Optimizer / Guard Loader installiert '.
'<span class="note">(%1$s)</span>',
'hasIonCubeOrZendLoader_DESC' => '<div>Das Modul erfordert den ionCube Loader oder den Zend '.
'Optimizer / Guard Loader. Achten Sie darauf, ein f&uuml;r die verf&uuml;gbaren Decoder erstelltes '.
'Installationspaket zu verwenden (%1$s).</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> Ein passender Decoder ist '.
'auf Ihrem Server installiert.</div>'.
'<div><div class="squ_bullet" style="background-color: orange;"></div> Ein passender Decoder ist '.
'auf Ihrem Server installiert. Es ist jedoch ein Abbruchgrund festgestellt worden, der zu Fehlern '.
'f&uuml;hren kann. Details entnehmen Sie bitte den folgenden Hinweisen.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> Das Modul kann ohne einen '.
'passenden Decoder nicht ausgef&uuml;hrt werden. Fragen Sie Ihren Serverprovider nach der '.
'Installation des ionCube Loaders oder des Zend Optimizers / Guard Loaders.</div>'.
'%2$s'.
'<div>&Uuml;ber den [+]-Button k&ouml;nnen Sie Ergebnisse zu den getesteten Verzeichnissen '.
'abrufen. Je nach Servereinstellung k&ouml;nnen die Ergebnisse abweichen. Nur die rot markierten '.
'Verzeichnisse erfordern eine Anpassung.</div>'.
'<div>Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '.
'Bei Fragen kontaktieren Sie uns bitte &uuml;ber <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'RemoteVersionDiff' => ' <span class="note">(Remotescript hat abweichende Version oder ist nicht '.
'pr&uuml;fbar, Ergebnis mglw. nicht sicher)</span>',
'globalSuccess' => 'Die technische Pr&uuml;fung war erfolgreich. Sie k&ouml;nnen das Modul '.
'installieren.*<br><br>',
'globalNotSuccess' => 'Die technische Pr&uuml;fung war nicht erfolgreich. Bitte kontrollieren '.
@ -1485,8 +1557,20 @@ class requTranslations
'unableDeleteFile' => 'Datei konnte nicht gel&ouml;scht werden. Bitte l&ouml;schen Sie diese '.
'manuell.',
'goodBye' => 'Auf Wiedersehen.',
'unableExecuteDirectoryIterator' => 'Es können nicht alle Unterverzeichnisse auf weitere Prüfungen '.
'unableExecuteDirectoryIterator' => 'Es k&ouml;nnen nicht alle Unterverzeichnisse auf weitere Pr&uuml;fungen '.
'kontrolliert werden. (%1$s)',
'availableDecoder' => 'verf&uuml;gbar: %1$s - auf passendes Installationspaket achten!',
'noDecoderAvailable' => 'kein verwendbarer Decoder verf&uuml;gbar',
'availableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer',
'notAvailableDecoder_hasZendLoaderOptimizer' => '<li>Der Zend Guard Loader / Optimizer ist nicht '.
'installiert.</li>',
'decoderIssue_hasZendLoaderOptimizer' => '<li>Der Zend-Decoder ist '.
'auf Ihrem Server installiert. Es ist jedoch eine zus&auml;tzliche Erweiterungen (Zend OPcache) '.
'installiert, die im Zusammenspiel mit dem Zend-Decoder Fehler verursachen kann.</li>',
'availableDecoder_hasIonCubeLoader' => 'ionCube Loader',
'notAvailableDecoder_hasIonCubeLoader' => '<li>Der ionCube Loader ist nicht installiert.</li>',
'decoderIssue_hasIonCubeLoader' => '<li>Es wurde ein nicht definierter Abbruchgrund bei der '.
'Verwendung des ionCube-Decoders festgestellt.</li>',
),
'en' => array(
'RequCheck' => 'Requirement check',
@ -1504,7 +1588,7 @@ class requTranslations
'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
'contact us for another module version.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
@ -1516,7 +1600,7 @@ class requTranslations
'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
'contact us for another module version.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
@ -1528,7 +1612,7 @@ class requTranslations
'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '.
'contact us for another module version.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
@ -1539,14 +1623,36 @@ class requTranslations
'<div><div class="squ_bullet" style="background-color: red;"></div> The module can not be executed '.
'without the %1$s extension. Ask your server provider for installing this extension.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinCurlVersion' => 'at least cURL version %1$s',
'hasMinCurlVersion_DESC' => '<div>The module requires at least cURL version %1$s.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> cURL is available '.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> cURL is not installed or '.
'installed in an older version. Ask your server provider for an appropriate version.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinOpenSSLVersion' => 'at least OpenSSL version %1$s',
'hasMinOpenSSLVersion_DESC' => '<div>The module requires at least OpenSSL version %1$s.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> OpenSSL is availabe '.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> OpenSSL is not installed or '.
'installed in an older version. Ask your server provider for an appropriate version.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasMinShopVersion' => 'at least shop version %1$s',
'hasMinShopVersion_DESC' => '<div>The module is released to shop version %1$s</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The shop software is installed '.
'in a suitable version.</div>'.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> We can not guarantee, '.
'that this module works properly in your shop version. Please ask for a matching module version.</div>'.
'<div>If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
@ -1554,7 +1660,7 @@ class requTranslations
'hasMaxShopVersion' => 'not more than shop version %1$s',
'hasMaxShopVersion_DESC' => '<div>The module is released to shop version %1$s</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The shop software is installed '.
'in a suitable version.</div>'.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: orange;"></div> We can not guarantee, '.
'that this module works properly in your shop version. Please ask for a matching module version.</div>'.
'<div>If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
@ -1563,9 +1669,9 @@ class requTranslations
'hasMinModCfgVersion_DESC' => '<div>The module requires additional software "%2$s" at least '.
'in version %3$s</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The software is installed '.
'in a suitable version.</div>'.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> The additional software is '.
'be installed or in wrong version available. Please install the additional software before '.
'not installed or in wrong version available. Please install the additional software before '.
'proceeding this installation.</div>'.
'<div>If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
@ -1573,7 +1679,7 @@ class requTranslations
'hasMaxModCfgVersion_DESC' => '<div>The module requires additional software "%2$s" not more than '.
'in version %3$s</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The software is installed '.
'in a suitable version.</div>'.
'in a compatible version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> The additional software is '.
'be installed or in wrong version available. Please install the additional software before '.
'proceeding this installation.</div>'.
@ -1583,7 +1689,7 @@ class requTranslations
'requireNewLicence_DESC' => '<div>This test tries to determine whether you need a new licence key '.
'for the use of this module</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> You have stored a license key '.
'for this module, which is probably also suitable for the new module version.</div>'.
'for this module, which is probably also compatible for the new module version.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> 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 '.
@ -1610,7 +1716,8 @@ class requTranslations
'in your shop edition. Please ask for a module version for your shop edition.</div>'.
'<div>If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) installed',
'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' => '<div>The module requires (depending on the PHP version) the Zend Guard Optimizer '.
'or the Zend Guard Loader.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The appropriate decoder is '.
@ -1621,23 +1728,40 @@ class requTranslations
'<div><div class="squ_bullet" style="background-color: red;"></div> The decoder isn\'t '.
'installed on your server. The module can\'t installed or executed. Please contact your server provider.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'hasIonCubeLoader' => 'ionCube loader installed',
'hasIonCubeLoader' => 'ionCube Loader installed (pay attention to the compatible ionCube installation package!)',
'hasIonCubeLoader_DESC' => '<div>The module requires the ionCube Loader.</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> The appropriate decoder is '.
'installed on your server.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> The decoder isn\'t '.
'installed on your server. The module can\'t installed or executed. Please contact your server provider.</div>'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories require adaptation.</div>'.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'RemoteVersionDiff' => ' <span class="note">(Remote script has different version, result may not '.
'be safe)</span>',
'hasIonCubeOrZendLoader' => 'ionCube Loader or Zend Optimizer / Guard Loader installed '.
'<span class="note">(%1$s)</span>',
'hasIonCubeOrZendLoader_DESC' => '<div>The module requires the ionCube Loader or the Zend '.
'Optimizer / Guard Loader. Pay attention to use a compatible installation package (%1$s).</div>'.
'<div><div class="squ_bullet" style="background-color: green;"></div> One of the appropriate '.
'decoders is installed on your server.</div>'.
'<div><div class="squ_bullet" style="background-color: orange;"></div> 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.</div>'.
'<div><div class="squ_bullet" style="background-color: red;"></div> None of the decoders is '.
'installed on your server. The module can\'t installed or executed. Please contact your server provider.</div>'.
'%2$s'.
'<div>The [+] button show details for all tested directories. Depending on the server settings, '.
'the results may vary. Only the red marked directories requires adaptation.</div>'.
'<div>Details about your server installation you can see by clicking on the button "show PHPinfo". '.
'If you have any questions, please contact us at <a href="mailto:support@shopmodule.com">'.
'support@shopmodule.com</a>.</div>',
'RemoteVersionDiff' => ' <span class="note">(Remote script has different version or isn\'t '.
'callable, result may not be safe)</span>',
'globalSuccess' => 'The technical test was successful. Your server is ready for installing '.
'the module.*<br><br>',
'globalNotSuccess' => 'The technical test wasn\'t successfull. Please check the red or orange marked '.
@ -1653,6 +1777,18 @@ class requTranslations
'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' => '<li>Zend Guard Loader / Optimizer isn\'t '.
'available.</li>',
'decoderIssue_hasZendLoaderOptimizer' => '<li>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.</li>',
'availableDecoder_hasIonCubeLoader' => 'ionCube Loader',
'notAvailableDecoder_hasIonCubeLoader' => '<li>ionCube Loader isn\'t available.</li>',
'decoderIssue_hasIonCubeLoader' => '<li>An undefined abort reason has been found when using the '.
'ionCube decoder.</li>',
),
);
}
@ -1898,7 +2034,7 @@ class requTests
*/
public function hasMinPhpVersion(&$aConfiguration)
{
$aResult[$this->getBasePath()] = false;
$aResult = array($this->getBasePath() => false);
if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '>=')) {
$aResult[$this->getBasePath()] = true;
@ -1916,7 +2052,7 @@ class requTests
*/
public function hasFromToPhpVersion(&$aConfiguration)
{
$aResult[$this->getBasePath()] = false;
$aResult = array($this->getBasePath() => false);
if ((version_compare(phpversion(), $aConfiguration['aParams']['from'], '>=')) &&
(version_compare(phpversion(), $aConfiguration['aParams']['to'], '<'))
@ -1936,7 +2072,7 @@ class requTests
*/
public function hasMaxPhpVersion(&$aConfiguration)
{
$aResult[$this->getBasePath()] = false;
$aResult = array($this->getBasePath() => false);
if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '<=')) {
$aResult[$this->getBasePath()] = true;
@ -1954,7 +2090,7 @@ class requTests
*/
public function hasExtension(&$aConfiguration)
{
$aResult[$this->getBasePath()] = false;
$aResult = array($this->getBasePath() => false);
if (extension_loaded($aConfiguration['aParams']['type'])) {
$aResult[$this->getBasePath()] = true;
@ -1965,6 +2101,69 @@ class requTests
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 = '/(?<major>[[:xdigit:]])(?<minor>[[:xdigit:]][[:xdigit:]])(?<fix>[[:xdigit:]][[:xdigit:]])';
$preg.= '(?<patch>[[:xdigit:]][[:xdigit:]])(?<type>[[: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
*
@ -2222,7 +2421,7 @@ class requTests
/**
* @return array
*/
public function hasZendLoaderOptimizer()
public function hasZendLoaderOptimizer(&$aConfiguration, $blCheckBasePathOnly = false)
{
$aResult = array($this->getBasePath() => false);
@ -2244,7 +2443,9 @@ class requTests
}
}
$aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__));
if ($blCheckBasePathOnly == false) {
$aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__));
}
return $aResult;
}
@ -2252,7 +2453,7 @@ class requTests
/**
* @return array
*/
public function hasIonCubeLoader()
public function hasIonCubeLoader(&$aConfiguration, $blCheckBasePathOnly = false)
{
$aResult = array($this->getBasePath() => false);
@ -2260,7 +2461,59 @@ class requTests
$aResult[$this->getBasePath()] = true;
}
$aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__));
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) ?
'<ul>'.implode('', $aDecoderErrorTexts).'</ul>' :
'';
$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;
}

View File

@ -1,3 +1,7 @@
=> 3.0.2.2
- Fehler bei der "Abfragegenerierung während des Sprachwechsels" behoben (#6133)
- Strict Standard Messages korrigiert (#5772)
=> 3.0.2.1
- Sprachumschalter wird sofort bei erstem Shopaufruf umgesetzt

Binary file not shown.