Birthdayvoucher/src/Setup/d3birthdayvoucher_update.php

890 lines
34 KiB
PHP
Raw Blame History

<?php
namespace D3\Birthdayvoucher\Setup;
use D3\ModCfg\Application\Model\Install\d3install_updatebase;
use D3\ModCfg\Application\Model\Installwizzard\d3installdbrecord;
use d3\modcfg\Application\Model\d3database;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Facts\Facts;
/**
* Class d3birthdayvoucher_update
*/
class d3birthdayvoucher_update extends d3install_updatebase
{
protected $_aRefreshMetaModuleIds = array();
public $aMultiLangTables = array();
public $aRenameTables = array();
public $sModRevision = '265';
public $sModKey = 'd3birthdayvoucher';
public $sModName = 'Geburtstagsgutscheine';
public $sModVersion = '4.0.0.1';
public $sModBaseConfKey = 'fYgv2==ZjZmL2ZqYlBCY0ZoOTJtNFUxUFFDKzluYUplWFBsbzBDb3AzK1pLVElCZERxbmlhSGZhdzF2Z
itYZHErYkhKazRLTDZtNVFycVdQbllyMVhsdEpNc3ZBZ1BVUWVNYWJ4NVAvcjZqdkNnSXVGd1FEaGRzM
VRiVFQzc05uc0VPT2hoV2xKWlk1ck1tVVlxalFwOWZWZFA4YUFxVlZ6aUxObXpwbkQ1R0hKMjdwOEEva
3lCbGNuSWJBajdtWmRiem04WWlhYVlVbFRmRTA0eHNTbzdmUDl3RCt5bUQ5enZ1cFZvdUE4Ky9PdTNHe
C9nZmQ5V0ErV1hoMUpwSksrajU2ZjZpSW0xYWg0MGFFWmdZcElzMDRndHZFU3R4MFZzT3JFc2xHRFBjV
0lZMXhtS2pGN2cvM2dqL0R3ak1CcFZSR2FMTC9pR0FPRmIxYVNzKzBVRnV2UFVRPT0=';
public $sRequirements ='';
// auszuf<75>hrende Check- und Updateanweisungen in auszuf<75>hrender Reihenfolge
protected $_aUpdateMethods = array(
array('check' => 'checkMultiLangTables',
'do' => 'fixRegisterMultiLangTables'),
#array('check' => 'checkRenameTables', // pr<70>ft auf umzubenennende Tabellen und f<>hrt dies ggf. aus
# 'do' => 'fixRenameTables'),
#array('check' => 'checkTestTableExist', // pr<70>ft Tabelle und legt sie ggf. an
# 'do' => 'updateTestTableExist'),
array('check' => 'checkRenameFields', // pr<70>ft auf umzubenennende Felder und f<>hrt dies ggf. aus
'do' => 'fixRenameFields'),
array('check' => 'checkFields', // pr<70>ft Felder in Tabelle und legt sie ggf. an bzw. modifiziert diese
'do' => 'fixFields'),
array('check' => 'checkIndizes', // pr<70>ft Indizes in Tabelle und legt sie ggf. an
'do' => 'fixIndizes'),
array('check' => 'checkModCfgItemExist', // pr<70>ft auf DB-Eintrag (hier ModCfg) und f<>gt diese ggf. ein bzw. f<>hrt Update aus
'do' => 'updateModCfgItemExist'),
array('check' => 'checkVoucherSeriesItemExist', // pr<70>ft auf DB-Eintrag (hier ModCfg) und f<>gt diese ggf. ein bzw. f<>hrt Update aus
'do' => 'updateVoucherSeriesItemExist'),
/*
array('check' => 'checkCmsItems',
'do' => 'updateCmsItems'),
*/
/*
array('check' => 'checkCmsItems_01',
'do' => 'executeCmsTypesItemsList_01'),
array('check' => 'checkCmsItems_02',
'do' => 'executeCmsTypesItemsList_02'),
array('check' => 'checkCmsItems_03',
'do' => 'executeCmsTypesItemsList_03'),
*/
array('check' => 'checkModCfgSameRevision', // pr<70>ft auf nachgezogene Revisionsnummer und <20>bertr<74>gt diese ggf.
'do' => 'updateModCfgSameRevision'),
);
// Standardwerte f<>r checkFields(), _addTable() und fixFields()
public $aFields = array(
array(
'sTableName' => 'oxuser',
'sFieldName' => 'D3BIRTHDAYVOUCHER_LASTDATE',
'sType' => 'date',
'blNull' => FALSE,
'sDefault' => '0000-00-00',
'sComment' => 'send last BirthdayVoucher on',
'sExtra' => '',
'blMultilang' => FALSE,
),
array(
'sTableName' => 'oxvouchers',
'sFieldName' => 'D3VOUCHEREXPIRATIONDATE',
'sType' => 'date',
'blNull' => FALSE,
'sDefault' => '0000-00-00',
'sComment' => 'D3 Birthdayvoucher,last Day of validity',
'sExtra' => '',
'blMultilang' => FALSE,
),
array(
'sTableName' => 'oxvouchers',
'sFieldName' => 'D3VOUCHERLASTACTION',
'sType' => 'date',
'blNull' => FALSE,
'sDefault' => '0000-00-00',
'sComment' => 'D3 Birthdayvoucher,last Day of an action',
'sExtra' => '',
'blMultilang' => FALSE,
),
array(
'sTableName' => 'oxvouchers',
'sFieldName' => 'D3USERID',
'sType' => 'varchar(32)',
'blNull' => TRUE,
'sDefault' => '',
'sComment' => 'D3 Birthdayvoucher, User Oxid, used to send reminder',
'sExtra' => '',
'blMultilang' => FALSE,
),
);
// Standardwerte f<>r checkIndizes() und fixIndizes()
public $aIndizes = array();
// Standardwerte f<>r checkRenameFields() und fixRenameFields()
public $aRenameFields = array(
array(
'sTableName' => 'oxuser',
'mOldFieldNames' => array('d3lastbdvoucherdate','D3LASTBDVOUCHERDATE'), // is case sensitive
'sFieldName' => 'D3BIRTHDAYVOUCHER_LASTDATE',
'sComment' => 'send last BirthdayVoucher on',
'blMultilang' => FALSE,
'blNull' => TRUE,
'sDefault' => '0000-00-00',
'use_quote' => false,
),
);
/*******************************************************************************************/
/***** eigene Test- und Updatemethoden (ggf. <20>berladung vorhandener Methoden) **************/
/*******************************************************************************************/
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkModCfgItemExist()
{
$blRet = false;
foreach (Registry::getConfig()->getShopIds() as $sShopId) {
$aWhere = array(
'oxmodid' => $this->sModKey,
'oxnewrevision' => $this->sModRevision,
'oxshopid' => $sShopId,
);
$blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere);
if ($blRet) {
return $blRet;
}
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\ConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
*/
public function updateModCfgItemExist()
{
$blRet = FALSE;
if ($this->checkModCfgItemExist()) {
foreach (Registry::getConfig()->getShopIds() as $sShopId) {
$aWhere = array(
'oxmodid' => $this->sModKey,
'oxshopid' => $sShopId,
'oxnewrevision' => $this->sModRevision,
);
if($this->_checkTableItemNotExist('d3_cfg_mod',$aWhere))
{
// update don't use this property
unset($aWhere['oxnewrevision']);
$aInsertFields = array(
array(
'fieldname' => 'OXID',
'content' => "md5('" . $this->sModKey . " " . $sShopId . " de')",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXSHOPID',
'content' => $sShopId,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXMODID',
'content' => $this->sModKey,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXNAME',
'content' => $this->sModName,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXACTIVE',
'content' => '0',
'force_update' => FALSE,
'use_quote' => FALSE,
),
array(
'fieldname' => 'OXBASECONFIG',
'content' => $this->sModBaseConfKey,
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSERIAL',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXINSTALLDATE',
'content' => "NOW()",
'force_update' => TRUE,
'use_quote' => FALSE,
),
array(
'fieldname' => 'OXVERSION',
'content' => $this->sModVersion,
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSHOPVERSION',
'content' => oxNew(Facts::class)->getEdition(),
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXREQUIREMENTS',
'content' => $this->sRequirements,
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => $this->_getLangAbbrFieldName('d3_cfg_mod', 'OXVALUE', 'de'),
'content' => '',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXNEWREVISION',
'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(true);
}
}
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkVoucherSeriesItemExist()
{
/*
$sShopEdition = Registry::getConfig()->getActiveShop()->oxshops__oxedition->value;
if ($sShopEdition == 'EE') {
$sShopId = '1';
} else {
$sShopId = '1';
}
*/
$sShopId = '1';
$aWhere = array(
'oxid' => 'oxidbirthdayvouchers',
'oxshopid' => $sShopId,
);
$blRet = $this->_checkTableItemNotExist('oxvoucherseries', $aWhere);
if ($blRet) {
return $blRet;
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\ConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
*/
public function updateVoucherSeriesItemExist()
{
/*
$sShopEdition = Registry::getConfig()->getActiveShop()->oxshops__oxedition->value;
if ($sShopEdition == 'EE') {
$sShopId = '1';
} else {
$sShopId = '1';
}
*/
$sShopId = '1';
$blRet = FALSE;
if ($this->checkVoucherSeriesItemExist()) {
$aWhere = array(
'oxid' => 'oxidbirthdayvouchers',
'oxshopid' => $sShopId,
);
$aInsertFields = array(
array(
'fieldname' => 'OXID',
'content' => 'oxidbirthdayvouchers',
'force_update' => FALSE,
'use_quote' => true,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXSHOPID',
'content' => $sShopId,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSERIENR',
'content' => 'Geburtstagsgutscheine (D3)',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSERIEDESCRIPTION',
'content' => 'Geburtstagsgutscheine',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXDISCOUNT',
'content' => '5.00',
'force_update' => false,
'use_quote' => true,
),
array(
'fieldname' => 'OXDISCOUNTTYPE',
'content' => 'absolute',
'force_update' => false,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXBEGINDATE',
'content' => '2009-01-01 00:00:00',
'force_update' => true,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXENDDATE',
'content' => '2100-12-31 00:00:00',
'force_update' => false,
'use_quote' => true,
),
array(
'fieldname' => 'OXMINIMUMVALUE',
'content' => '20.00',
'force_update' => false,
'use_quote' => TRUE,
)
);
/*
$sShopEdition = Registry::getConfig()->getActiveShop()->oxshops__oxedition->value;
if($sShopEdition == 'EE')
{
}
*/
$aRet = $this->_updateTableItem2('oxvoucherseries', $aInsertFields, $aWhere);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(FALSE);
}
return $blRet;
}
/**
* @return bool
* @throws \oxSystemComponentException
*/
public function addCmsItems()
{
$blRet = TRUE;
$aExampleJobMethods = array('executeCmsTypesItemsList_01','executeCmsTypesItemsList_02','executeCmsTypesItemsList_03');
foreach ($aExampleJobMethods as $sJobMethod)
{
$blRet = $this->{$sJobMethod}();
if (!$blRet)
{
break;
}
}
return $blRet;
}
/**
* @return bool TRUE, if update is required
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkCmsItems()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
// change this to your inividual check criterias
/*
$sSql = "SELECT count(`oxid`) FROM `oxcontents`
WHERE (
OXLOADID = 'd3birthdayvouchersubjectmail'
OR OXLOADID = 'd3birthdayvouchermail'
OR OXLOADID = 'd3birthdayvoucherplainmail'
)
AND OXSHOPID = '".$oShop->getId()."'";
*/
$sSql = <<<MYSQL
SELECT count(oxid) FROM oxcontents
WHERE (
OXLOADID = 'd3birthdayvouchersubjectmail'
OR OXLOADID = 'd3birthdayvouchermail'
OR OXLOADID = 'd3birthdayvoucherplainmail'
)
AND OXSHOPID = '{$sShopId}'
MYSQL;
#echo "<hr>".$sSql;
if ($this->getDb()->getOne($sSql) != 3)
{
$blRet = TRUE;
}
}
return $blRet;
}
/**
* @return bool
*/
public function updateCmsItems()
{
return $this->_confirmMessage('D3_BIRTHDAY_UPDATE_ITEMINSTALL');
}
/**
* @return bool
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkCmsItems_01()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
// change this to your inividual check criterias
/*
$sSql = "SELECT count(`oxid`) FROM `oxcontents`
WHERE
OXLOADID = 'd3birthdayvouchersubjectmail'
AND OXSHOPID = '".$oShop->getId()."'";
*/
$sSql = <<<MYSQL
SELECT count(oxid) FROM oxcontents
WHERE
OXLOADID = 'd3birthdayvouchersubjectmail'
AND OXSHOPID = '{$sShopId}'
MYSQL;
#echo "<hr>".$sSql;
if ($this->getDb()->getOne($sSql) != 1)
{
$blRet = TRUE;
}
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\ConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
*/
public function executeCmsTypesItemsList_01()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
$aWhere = array(
#'oxid' => "md5('d3birthdayvouchersubjectmail " . $oShop->getId() . " de')",
'oxshopid' => $sShopId,
'OXLOADID' => 'd3birthdayvouchersubjectmail',
);
$aInsertFields = array(
array(
'fieldname' => 'OXID',
'content' => "md5('d3birthdayvouchersubjectmail " . $sShopId . "')",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXLOADID',
'content' => 'd3birthdayvouchersubjectmail',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSHOPID',
'content' => $sShopId,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array (
'fieldname' => 'OXSNIPPET',
'content' => "1",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXTYPE',
'content' => "0",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXACTIVE',
'content' => '1',
'force_update' => FALSE,
'use_quote' => FALSE,
),
array (
'fieldname' => 'OXPOSITION',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'de'),
'content' => 'Geburtstags-EMail Betreff-Text',
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXCONTENT', 'de'),
'content' => "Ihr Gutschein zum Geburtstag!",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXCATID',
'content' => '8a142c3e4143562a5.46426637',
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXFOLDER',
'content' => 'CMSFOLDER_EMAILS',
'force_update' => TRUE,
'use_quote' => TRUE,
),
);
$aRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere);
#dumpvar($aRet);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(FALSE);
}
return $blRet;
}
/**
* @return bool TRUE, if update is required
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkCmsItems_02()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
// change this to your inividual check criterias
/*
$sSql = "SELECT count(`oxid`) FROM `oxcontents`
WHERE
OXLOADID = 'd3birthdayvoucherplainmail'
AND OXSHOPID = '".$oShop->getId()."'";
*/
$sSql = <<<MYSQL
SELECT count(oxid) FROM oxcontents
WHERE
OXLOADID = 'd3birthdayvoucherplainmail'
AND OXSHOPID = '{$sShopId}'
MYSQL;
#echo "<hr>".$sSql;
if ($this->getDb()->getOne($sSql) != 1)
{
$blRet = TRUE;
}
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
* @throws \oxSystemComponentException
*/
public function executeCmsTypesItemsList_02()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
$aWhere = array(
#'oxid' => "md5('d3birthdayvouchersubjectmail " . $oShop->getId() . " de')",
'oxshopid' => $sShopId,
'OXLOADID' => 'd3birthdayvoucherplainmail',
);
$aInsertFields = array(
array(
'fieldname' => 'OXID',
'content' => "md5('d3birthdayvoucherplainmail " . $sShopId . "')",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXLOADID',
'content' => 'd3birthdayvoucherplainmail',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSHOPID',
'content' => $sShopId,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array (
'fieldname' => 'OXSNIPPET',
'content' => "1",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXTYPE',
'content' => "0",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXACTIVE',
'content' => '1',
'force_update' => FALSE,
'use_quote' => FALSE,
),
array (
'fieldname' => 'OXPOSITION',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'de'),
'content' => 'Geburtstags-EMail Plain-Text',
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXCONTENT', 'de'),
'content' => 'Guten Tag [{ $user->oxuser__oxsal->value|oxmultilangsal }] [{ $user->oxuser__oxfname->value }] [{ $user->oxuser__oxlname->value }],\r\n\r\nIhr [{ $shop->oxshops__oxname->value }] m<>chte Ihnen ganz herzlich zum Geburtstag gratulieren.\r\n\r\nAls kleines Pr<50>sent senden wir Ihnen im Folgenden einen Gutschein im Wert von [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{if $voucherserie->oxvoucherseries__oxdiscounttype->value == "absolute"}]EUR[{else}]%[{/if}] zu.\r\n\r\n\r\nIhre pers<72>nlicher Geburtstagsgutschein-Nr. lautet: [{$voucher->oxvouchers__oxvouchernr->value}]\r\n\r\nUnd so einfach gehts:\r\nGehen Sie in unseren Onlineshop unter [{ $shop->oxshops__oxurl->value }].\r\nSt<53>bern Sie in Ruhe unter der Vielzahl an Aritkeln und legen Sie die gew<65>nschten Produkte in den Warenkorb.\r\nKlicken Sie nun auf den Warenkorb um eine <20>bersicht Ihrer gew<65>hlten Artikel zu sehen.\r\nUnter der Artikelliste finden Sie das Eingabefeld f<>r den Gutscheincode.\r\nGeben Sie diesen dort ein, best<73>tigen Sie die Eingabe und f<>hren Sie den Bestellvorgang ganz normal durch.\r\n\r\nIn Schritt 4 des Bestellvorgangs sehen Sie nun in der Zusammenfassung den abgezogenen Gutscheinwert.\r\n\r\nNoch einen sch<63>nen Tag w<>nscht\r\n\r\nIhr [{ $shop->oxshops__oxname->value }] Team',
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXCATID',
'content' => '8a142c3e4143562a5.46426637',
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXFOLDER',
'content' => 'CMSFOLDER_EMAILS',
'force_update' => TRUE,
'use_quote' => TRUE,
),
);
#$aRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere);
$aRet = $this->_updateTableItem22('oxcontents', $aInsertFields, $aWhere);
#dumpvar($aRet);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(FALSE);
}
return $blRet;
}
/**
* @return bool TRUE, if update is required
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
*/
public function checkCmsItems_03()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
// change this to your inividual check criterias
/*
$sSql = "SELECT count(`oxid`) FROM `oxcontents`
WHERE
OXLOADID = 'd3birthdayvouchermail'
AND OXSHOPID = '".$oShop->getId()."'";
*/
$sSql = <<<MYSQL
SELECT count(oxid) FROM oxcontents
WHERE
OXLOADID = 'd3birthdayvouchermail'
AND OXSHOPID = '{$sShopId}'
MYSQL;
#echo "<hr>".$sSql;
if ($this->getDb()->getOne($sSql) != 1)
{
$blRet = TRUE;
}
}
return $blRet;
}
/**
* @return bool
* @throws \Doctrine\DBAL\DBALException
* @throws \OxidEsales\Eshop\Core\Exception\ConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
*/
public function executeCmsTypesItemsList_03()
{
$blRet = FALSE;
foreach (Registry::getConfig()->getShopIds() as $sShopId)
{
$aWhere = array(
#'oxid' => "md5('d3birthdayvouchersubjectmail " . $oShop->getId() . " de')",
'oxshopid' => $sShopId,
'OXLOADID' => 'd3birthdayvouchermail',
);
$aInsertFields = array(
array(
'fieldname' => 'OXID',
'content' => "md5('d3birthdayvouchermail " . $sShopId . "')",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXLOADID',
'content' => 'd3birthdayvouchermail',
'force_update' => FALSE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXSHOPID',
'content' => $sShopId,
'force_update' => FALSE,
'use_quote' => TRUE,
),
array (
'fieldname' => 'OXSNIPPET',
'content' => "1",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXTYPE',
'content' => "0",
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXACTIVE',
'content' => '1',
'force_update' => FALSE,
'use_quote' => FALSE,
),
array (
'fieldname' => 'OXPOSITION',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'de'),
'content' => 'Geburtstags-EMail Text',
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXCONTENT', 'de'),
'content' => 'Guten Tag [{$user->oxuser__oxsal->value|oxmultilangsal}] [{$user->oxuser__oxfname->value}] [{$user->oxuser__oxlname->value}],
<p>Ihr [{ $shop->oxshops__oxname->value }] m<>chte Ihnen ganz herzlich zum Geburtstag gratulieren.<br>
<br>
Als kleines Pr<50>sent senden wir Ihnen im Folgenden einen Gutschein im Wert von
[{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{if $voucherserie->oxvoucherseries__oxdiscounttype->value == "absolute"}]EUR[{else}]%[{/if}] zu.<br>
</p>
<p>Ihre pers<72>nlicher Geburtstagsgutschein-Nr. lautet: <strong>[{$voucher->oxvouchers__oxvouchernr->value}]</strong></p>
<p><br>
Und so einfach gehts:<br />
Gehen Sie in unseren Onlineshop unter [{ $shop->oxshops__oxurl->value }].<br>
St<EFBFBD>bern Sie in Ruhe unter der Vielzahl an Aritkeln und legen Sie die gew<65>nschten Produkte in den Warenkorb.<br />
Klicken Sie nun auf den Warenkorb um eine <20>bersicht Ihrer gew<65>hlten Artikel zu sehen.<br>
Unter der Artikelliste finden Sie das Eingabefeld f<>r den Gutscheincode.<br />
Geben Sie diesen dort ein, best<73>tigen Sie die Eingabe und f<>hren Sie den Bestellvorgang ganz normal durch.<br />
In Schritt 4 des Bestellvorgangs sehen Sie nun in der Zusammenfassung den abgezogenen Gutscheinwert.<br />
<br />
Noch einen sch<63>nen Tag w<>nscht</p>
<p>Ihr [{ $shop->oxshops__oxname->value }] Team </p>',
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXCATID',
'content' => '8a142c3e4143562a5.46426637',
'force_update' => TRUE,
'use_quote' => TRUE,
),
array(
'fieldname' => 'OXFOLDER',
'content' => 'CMSFOLDER_EMAILS',
'force_update' => TRUE,
'use_quote' => TRUE,
),
);
$aRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere);
#dumpvar($aRet);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(FALSE);
}
return $blRet;
}
}