2017-05-18 13:11:34 +02:00
< ? php
2017-11-27 11:00:45 +01:00
use D3\ModCfg\Application\Model\Install\d3install_updatebase ;
2017-05-18 13:11:34 +02:00
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware .
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law .
*
* http :// www . shopmodule . com
*
* @ copyright ( C ) D3 Data Development ( Inh . Thomas Dartsch )
* @ author D3 Data Development - Daniel Seifert < support @ shopmodule . com >
* @ link http :// www . oxidmodule . com
*/
class d3_googleanalytics_update extends d3install_updatebase
{
public $sModKey = 'd3_googleanalytics' ;
public $sModName = 'Google Services Schnittstelle' ;
2018-09-07 10:50:24 +02:00
public $sModVersion = '4.0.0.1' ;
2017-05-18 13:11:34 +02:00
2018-09-07 10:50:24 +02:00
public $sModRevision = '244' ;
2017-05-18 13:11:34 +02:00
// heredoc syntax using for class members is available from PHP 5.3 up
2017-11-27 11:00:45 +01:00
public $sBaseConf = <<< KEY
--------------------------------------------------------------------------------
3 b2v2 == UkRnWmZRNldtbEprOUd1YnFzNTltbmFxQnhhVW5OVTArUklIYzlyMFRDRmZXckYzaXZMWEhpY
lRaOW05M0xBUlBUbncvaXpQWFBkNEJETWd1blZpK1pZYmMxaFJRdnRER2dkSVpGK0VDcmxXT1prUUxGV
m1EZEtBakpVK0FZR1U5UGZoaER0YXF0YXFSLzJ3ODcvcUdyRk5rcVhGck9yT0x0SlVUQmZGS3NJRTZIV
EphRjNzMlVSLzYrZUx6L2s1OXdhOWFBRGFPaEdpWmdqcmR2QnczV1V2OVEyQ0FVWFFtMXhSUWhqZXJjM
lhUUm11Y2VsTG9jRkRHNHJsMEpkZzlweEM4VTc3ay91RTkveUZIMEliN0RHWU1WTHZibERkaGZJbERnb
GhDdTJnNEVzS1VMSm92NVJqZXI4azZKcm9qYStwTXZERnB2Nnk2cWZMYWVrelR3PT0 =
--------------------------------------------------------------------------------
KEY ;
2017-05-18 13:11:34 +02:00
public $sRequirements = '' ;
2018-09-07 10:50:24 +02:00
public $sBaseValue = <<< KEY
--------------------------------------------------------------------------------
173 v2 == MjVveS9GVlBiQ3JIWWJvRlhhMFpRTFdnLzIvaDUzUnFyMGEwQ2Fla3JnTjkyd3hnL2dBMUgxV
XpiZE9RbEVKRmNCMzV3bXl6YWdRSnRqRFdicWQybk9iVjVocWZydXFJZElrUGhyUmNiTS9UQ04yVUpIV
klyM0t4YTVzZURoQWVQT2N6L0xod3hhamRvWUkrSkRtUHEyS21oTUp1UXhrSU5IYTFac3hoTWZmZHlLa
U44aURva05Iem4vZE4rcEV6NEpZaEZienVFVEpIOGZjdjBKMy9QVTI5VVAydVpwMFNZN2FEMnNQT09Cd
0xCaE VvTjdMWGVXSU9tSkNDWWRHenppZENrVVpHMlhiSERFV1B3YzhLYVJ4dys4T0c0K3lRUEw1VUVpN
kNhbVlPdWpyRHNRY2g5M0k0ZkxJbzcrZEhvWExMSzlxOVpydDRVWFQxcG93aUpBPT0 =
--------------------------------------------------------------------------------
KEY ;
2017-05-18 13:11:34 +02:00
protected $_aUpdateMethods = array (
array (
'check' => 'checkModCfgItemExist' ,
'do' => 'updateModCfgItemExist'
),
array (
'check' => 'checkFields' ,
'do' => 'fixFields'
),
array (
'check' => 'checkContentGANoticeItemExist' ,
'do' => 'updateContentGANoticeItemExist'
),
array (
'check' => 'checkModCfgSameRevision' ,
'do' => 'updateModCfgSameRevision'
),
);
public $aFields = array (
'D3_GALOCATOR' => array (
'sTableName' => 'oxorderarticles' ,
'sFieldName' => 'D3_GALOCATOR' ,
'sType' => 'VARCHAR(255)' ,
'blNull' => false ,
'sDefault' => '' ,
'sComment' => '' ,
'sExtra' => '' ,
'blMultilang' => false ,
),
);
protected $_aRefreshMetaModuleIds = array ( 'd3_googleanalytics' );
/**
* @ return bool
*/
public function checkModCfgItemExist ()
{
$blRet = false ;
foreach ( $this -> getShopList () as $oShop ) {
/** @var $oShop oxshop */
$aWhere = array (
'oxmodid' => $this -> sModKey ,
'oxnewrevision' => $this -> sModRevision ,
'oxshopid' => $oShop -> getId (),
);
$blRet = $this -> _checkTableItemNotExist ( 'd3_cfg_mod' , $aWhere );
if ( $blRet ) {
return $blRet ;
}
}
return $blRet ;
}
/**
* @ return bool
*/
public function updateModCfgItemExist ()
{
$blRet = false ;
if ( $this -> checkModCfgItemExist ()) {
foreach ( $this -> getShopList () as $oShop ) {
/** @var $oShop oxshop */
$aWhere = array (
'oxmodid' => $this -> sModKey ,
'oxshopid' => $oShop -> getId (),
'oxnewrevision' => $this -> sModRevision ,
);
if ( $this -> _checkTableItemNotExist ( 'd3_cfg_mod' , $aWhere )) {
// update don't use this property
unset ( $aWhere [ 'oxnewrevision' ]);
$aInsertFields = array (
'OXID' => array (
'content' => " md5(' " . $this -> sModKey . " " . $oShop -> getId () . " ') " ,
'force_update' => false ,
'use_quote' => false ,
),
'OXSHOPID' => array (
'content' => $oShop -> getId (),
'force_update' => false ,
'use_quote' => true ,
),
'OXMODID' => array (
'content' => $this -> sModKey ,
'force_update' => true ,
'use_quote' => true ,
),
'OXNAME' => array (
'content' => $this -> sModName ,
'force_update' => true ,
'use_quote' => true ,
),
'OXACTIVE' => array (
'content' => " 0 " ,
'force_update' => false ,
'use_quote' => false ,
),
'OXBASECONFIG' => array (
'content' => $this -> sBaseConf ,
'force_update' => true ,
'use_quote' => true ,
),
'OXINSTALLDATE' => array (
'content' => " NOW() " ,
'force_update' => true ,
'use_quote' => false ,
),
'OXVERSION' => array (
'content' => $this -> sModVersion ,
'force_update' => true ,
'use_quote' => true ,
),
'OXSHOPVERSION' => array (
'content' => oxRegistry :: getConfig () -> getEdition (),
'force_update' => true ,
'use_quote' => true ,
),
'OXREQUIREMENTS' => array (
'content' => $this -> sRequirements ,
'force_update' => true ,
'use_quote' => true ,
),
'OXVALUE' => array (
'content' => $this -> sBaseValue ,
'force_update' => false ,
'use_quote' => true ,
),
'OXNEWREVISION' => array (
'content' => $this -> sModRevision ,
'force_update' => true ,
'use_quote' => true ,
),
);
$aRet = $this -> _updateTableItem2 ( 'd3_cfg_mod' , $aInsertFields , $aWhere );
$blRet = $aRet [ 'blRet' ];
$this -> setActionLog ( 'SQL' , $aRet [ 'sql' ], __METHOD__ );
$this -> setUpdateBreak ( false );
if ( $this -> getStepByStepMode ()) {
break ;
}
}
}
}
return $blRet ;
}
/**
* @ return bool
*/
public function checkContentGANoticeItemExist ()
{
$blRet = false ;
foreach ( $this -> getShopList () as $oShop ) {
/** @var $oShop oxshop */
$aWhere = array (
'oxloadid' => 'Analytics_Security_Informations' ,
'oxshopid' => $oShop -> getId (),
);
$blRet = $this -> _checkTableItemNotExist ( 'oxcontents' , $aWhere );
if ( $blRet ) {
return $blRet ;
}
}
return $blRet ;
}
/**
* @ return bool
*/
public function updateContentGANoticeItemExist ()
{
$blRet = false ;
if ( $this -> checkContentGANoticeItemExist ()) {
foreach ( $this -> getShopList () as $oShop ) {
/** @var $oShop oxshop */
$aWhere = array (
'oxloadid' => 'Analytics_Security_Informations' ,
'oxshopid' => $oShop -> getId (),
);
if ( $this -> _checkTableItemNotExist ( 'oxcontents' , $aWhere )) {
$aInsertFields = array (
'OXID' => array (
'content' => " md5(RAND()) " ,
'force_update' => false ,
),
'OXLOADID' => array (
'content' => " 'Analytics_Security_Informations' " ,
'force_update' => true ,
),
'OXSHOPID' => array (
'content' => " ' " . $oShop -> getId () . " ' " ,
'force_update' => true ,
),
'OXSNIPPET' => array (
'content' => " '1' " ,
'force_update' => false ,
),
'OXTYPE' => array (
'content' => " '0' " ,
'force_update' => false ,
),
'OXACTIVE' => array (
'content' => " '1' " ,
'force_update' => false ,
),
'OXACTIVE_1' => array (
'content' => " '1' " ,
'force_update' => false ,
),
'OXPOSITION' => array (
'content' => " '' " ,
'force_update' => false ,
),
'OXTITLE' => array (
'content' => " 'Analytics Datenschutz Information' " ,
'force_update' => false ,
),
'OXCONTENT' => array (
2018-09-07 10:50:24 +02:00
'content' => " '<p>Diese Website benutzt Google Analytics, einen Webanalysedienst der Google \r \n \r \n Inc. ("Google"). Google Analytics verwendet sog. "Cookies", Textdateien, die auf \r \n \r \n Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website \r \n \r \n durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre \r \n \r \n Benutzung dieser Website (einschließlich Ihrer IP-Adresse<span style= \" color: #800000 \" >, die jedoch mit der Methode _anonymizeIp() anonymisiert wird, so dass Sie nicht mehr einem Anschluss \r \n \r \n zugeordnet werden kann</span>) wird an einen Server von Google in den USA \r \n \r \n übertragen und dort gespeichert. Google wird diese Informationen benutzen, um \r \n \r \n Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für \r \n \r \n die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und \r \n \r \n der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google \r \n \r \n diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich \r \n \r \n vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. \r \n \r \n Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten von Google in \r \n \r \n Verbindung bringen. Sie können die Installation der Cookies durch eine \r \n \r \n entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie \r \n \r \n jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche \r \n \r \n Funktionen dieser Website vollumfänglich nutzen können. Durch die Nutzung dieser \r \n \r \n Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch \r \n \r \n Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck \r \n \r \n einverstanden.</p> \r \n <p><span style= \" color: #800000 \" >Sie können der Erhebung der \r \n \r \n Daten durch Google-Analytics mit Wirkung für die Zukunft widersprechen, indem \r \n \r \n sie ein Deaktivierungs-Add-on (<a href= \" http://tools.google.com/dlpage/gaoptout?hl=de \" title= \" \" >http://tools.google.com/dlpage/gaoptout?hl=de</a>) \r \n \r \n für Ihren Browser installieren.</span></p>' " ,
2017-05-18 13:11:34 +02:00
'force_update' => false ,
),
'OXCATID' => array (
'content' => " '' " ,
'force_update' => false ,
),
'OXFOLDER' => array (
'content' => " 'CMSFOLDER_USERINFO' " ,
'force_update' => false ,
),
);
$aRet = $this -> _updateTableItem2 ( 'oxcontents' , $aInsertFields , $aWhere );
$blRet = $aRet [ 'blRet' ];
$this -> setActionLog ( 'SQL' , $aRet [ 'sql' ], __METHOD__ );
$this -> setUpdateBreak ( false );
if ( $this -> getStepByStepMode ()) {
break ;
}
}
}
}
return $blRet ;
}
/**
* @ return bool
*/
public function checkModCfgSameRevision ()
{
return $this -> _checkModCfgSameRevision ( $this -> sModKey );
}
/**
* @ return bool
*/
public function updateModCfgSameRevision ()
{
$blRet = false ;
if ( $this -> checkModCfgSameRevision ( $this -> sModKey )) {
$aRet = $this -> _updateModCfgSameRevision ( $this -> sModKey );
$this -> setActionLog ( 'SQL' , $aRet [ 'sql' ], __METHOD__ );
$this -> setUpdateBreak ( false );
$blRet = $aRet [ 'blRet' ];
}
return $blRet ;
}
}