8
0

add initial development

Dieser Commit ist enthalten in:
2014-11-21 13:54:43 +01:00
Ursprung 10d58daa22
Commit 8e18e0e24b
11 geänderte Dateien mit 522 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,47 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_thankyou_parent extends thankyou {}
/**
* Class d3_dev_oxorder_parent
*/
class d3_dev_oxorder_parent extends oxorder {}
/**
* Class d3_dev_oxorderarticle
*/
class d3_dev_oxorderarticle_parent extends oxOrderArticle {}
/**
* Class d3_dev_oxemail_parent
*/
class d3_dev_oxemail_parent extends oxemail {}
/**
* Class d3_dev_order_parent
*/
class d3_dev_order_parent extends order {}
/**
* Class d3_dev_oxbasket_parent
*/
class d3_dev_oxbasket_parent extends oxbasket {}
/**
* Class d3_dev_oxbasketitem_parent
*/
class d3_dev_oxbasketitem_parent extends oxBasketItem {}

Datei anzeigen

@ -0,0 +1,38 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3dev extends oxUBase
{
public function showOrderMailContent()
{
if (oxRegistry::getConfig()->getActiveShop()->isProductiveMode()
|| false == oxRegistry::getConfig()->getConfigParam('blD3DevShowOrderMailsInBrowser')
) {
oxRegistry::getUtils()->redirect(oxRegistry::getConfig()->getShopUrl().'index.php?cl=start');
}
$sTpl = oxRegistry::getConfig()->getRequestParameter('type');
/** @var d3_dev_thankyou $oThankyou */
$oThankyou = oxNew('thankyou');
$oOrder = $oThankyou->d3GetLastOrder();
/** @var d3_dev_oxemail $oEmail */
$oEmail = oxNew('oxemail');
echo $oEmail->d3GetOrderMailContent($oOrder, $sTpl);
die();
}
}

Datei anzeigen

@ -0,0 +1,82 @@
<?php
/**
* Metadata version
*/
$sMetadataVersion = '1.1';
$sStyle = class_exists('d3dev') ? "background-color: darkred; color: white; padding: 0 10px;" : "";
/**
* Module information
*/
$aModule = array(
'id' => 'd3dev',
'title' =>
(class_exists('d3utils') ? d3utils::getInstance()->getD3Logo() : 'D&sup3;') .
' <span style="'.$sStyle.'">TPL Development Tool</span>',
'description' => array(
'de' => '<script type="text/javascript"><!--
function showNote() {
var _oElem = document.getElementById("secnote");
if (_oElem.style.display == "block") {
_oElem.style.display = "none";
} else {
_oElem.style.display = "block";
}
}
--></script>
<p style="background-color: darkred; padding: 5px;"><a href="#" style="text-decoration: underline; color: white;" onclick="showNote(); return false;"><b>Sicherheitshinweis</b></a></p>
<p style="display: none; background-color: darkred; color: white; padding: 5px;" id="secnote">Diese Shoperweiterung stellt Entwicklungshilfen zur Verf&uuml;gung, die im Livebetrieb sicherheitskritisch sein k&ouml;nnen. Es k&ouml;nnen Kunden- und Bestelldaten ausgelesen und auch Shopfunktionen manipuliert werden. Aktivieren Sie diese Erweiterung daher nur in einem Umfeld, in dem Sie Missbrauch ausschlie&szligen k&ouml;nnen. F&uuml;r entstandene Sch&auml;den lehnen wir jede Haftung ab.</p>
<ul><li>unterbindet L&ouml;schen des WKs nach Bestellabschluss</li>'.
'<li><a style="text-decoration: underline;" href="'.oxRegistry::getConfig()->getCurrentShopUrl(false).'index.php?cl=thankyou&d3dev=1&d3ordernr=1" target="_new">Thankyou ist ohne Bestellung aufrufbar</a></li>'.
'<li>Mail-Templates k&ouml;nnen im Browser ausgegeben werden'.
'<ul>'.
'<li><a style="text-decoration: underline;" href="'.oxRegistry::getConfig()->getCurrentShopUrl(false).'index.php?cl=d3dev&fnc=showOrderMailContent&type=owner_html&d3ordernr=1" target="_new">Owner HTML</a></li>'.
'<li><a style="text-decoration: underline;" href="'.oxRegistry::getConfig()->getCurrentShopUrl(false).'index.php?cl=d3dev&fnc=showOrderMailContent&type=owner_plain&d3ordernr=1" target="_new">Owner Plain</a></li>'.
'<li><a style="text-decoration: underline;" href="'.oxRegistry::getConfig()->getCurrentShopUrl(false).'index.php?cl=d3dev&fnc=showOrderMailContent&type=user_html&d3ordernr=1" target="_new">User HTML</a></li>'.
'<li><a style="text-decoration: underline;" href="'.oxRegistry::getConfig()->getCurrentShopUrl(false).'index.php?cl=d3dev&fnc=showOrderMailContent&type=user_plain&d3ordernr=1" target="_new">User Plain</a></li></ul>'.
'</li></ul>Jede dieser Optionen muss aus Sicherheitsgr&uuml;nden unter "Einstell." aktiviert werden. Weiterhin darf der Shop nicht im Produktivmodus betrieben werden.',
'en' => ''),
// 'thumbnail' => 'picture.png',
'version' => '0.1',
'author' => 'D&sup3; Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/',
'extend' => array(
'thankyou' => 'd3/d3dev/modules/controllers/d3_dev_thankyou',
'oxorder' => 'd3/d3dev/modules/models/d3_dev_oxorder',
'oxorderarticle' => 'd3/d3dev/modules/models/d3_dev_oxorderarticle',
'oxemail' => 'd3/d3dev/modules/models/d3_dev_oxemail',
'oxbasket' => 'd3/d3dev/modules/models/d3_dev_oxbasket',
'oxbasketitem' => 'd3/d3dev/modules/models/d3_dev_oxbasketitem',
),
'files' => array(
'd3dev' => 'd3/d3dev/controllers/d3dev.php',
),
'templates' => array(
),
'events' => array(
),
'blocks' => array(
),
'settings' => array(
array(
'group' => 'd3dev_order',
'name' => 'blD3DevAvoidDeleteBasketInThankyou',
'type' => 'bool',
'value' => 'false'
),
array(
'group' => 'd3dev_order',
'name' => 'blD3DevShowThankyouWithoutAsociatedOrder',
'type' => 'bool',
'value' => 'false'
),
array(
'group' => 'd3dev_mail',
'name' => 'blD3DevShowOrderMailsInBrowser',
'type' => 'bool',
'value' => 'false'
),
),
);

Datei anzeigen

@ -0,0 +1,51 @@
<?php
// .../?cl=thankyou[&d3orderid=23]
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_thankyou extends d3_dev_thankyou_parent
{
public function init()
{
parent::init();
if (oxRegistry::getConfig()->getRequestParameter('d3dev')
&& false == oxRegistry::getConfig()->getActiveShop()->isProductiveMode()
&& oxRegistry::getConfig()->getConfigParam('blD3DevShowThankyouWithoutAsociatedOrder')
) {
$oOrder = $this->d3GetLastOrder();
$oBasket = $oOrder->d3DevGetOrderBasket();
$this->_oBasket = $oBasket;
}
}
/**
* @return d3_dev_oxorder
*/
public function d3GetLastOrder()
{
if (oxRegistry::getConfig()->getActiveShop()->isProductiveMode()) {
return false;
}
/** @var d3_dev_oxorder $oOrder */
$oOrder = oxNew('oxorder');
$oOrder->d3getLastOrder();
return $oOrder;
}
}

Datei anzeigen

@ -0,0 +1,37 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_oxbasket extends d3_dev_oxbasket_parent
{
public function deleteBasket()
{
if (oxRegistry::getConfig()->getActiveShop()->isProductiveMode()
|| false == oxRegistry::getConfig()->getConfigParam('blD3DevAvoidDeleteBasketInThankyou')
) {
parent::deleteBasket();
}
// else do nothing;
}
public function d3ClearBasketItemArticles()
{
/** @var d3_dev_oxbasketitem $oBasketItem */
foreach ($this->_aBasketContents as $oBasketItem) {
$oBasketItem->d3ClearArticle();
}
}
}

Datei anzeigen

@ -0,0 +1,23 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_oxbasketitem extends d3_dev_oxbasketitem_parent
{
public function d3ClearArticle()
{
$this->_oArticle = null;
}
}

Datei anzeigen

@ -0,0 +1,82 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_oxemail extends d3_dev_oxemail_parent
{
/**
* @param d3_dev_oxorder $oOrder
*
* @return mixed|string
*/
public function d3GetOrderMailContent($oOrder, $sType)
{
if (oxRegistry::getConfig()->getActiveShop()->isProductiveMode()) {
return '';
}
switch (strtolower($sType)) {
case 'owner_html':
$sTpl = $this->_sOrderOwnerTemplate;
break;
case 'owner_plain':
$sTpl = $this->_sOrderOwnerPlainTemplate;
break;
case 'user_plain':
$sTpl = $this->_sOrderUserPlainTemplate;
break;
case 'user_html':
default:
$sTpl = $this->_sOrderUserTemplate;
}
$myConfig = $this->getConfig();
$oShop = $this->_getShop();
// cleanup
$this->_clearMailer();
// add user defined stuff if there is any
$oOrder = $this->_addUserInfoOrderEMail($oOrder);
$oUser = $oOrder->getOrderUser();
$this->setUser($oUser);
// send confirmation to shop owner
// send not pretending from order user, as different email domain rise spam filters
$this->setFrom($oShop->oxshops__oxowneremail->value);
$oLang = oxRegistry::getLang();
$iOrderLang = $oLang->getObjectTplLanguage();
// if running shop language is different from admin lang. set in config
// we have to load shop in config language
if ($oShop->getLanguage() != $iOrderLang) {
$oShop = $this->_getShop($iOrderLang);
}
$this->setSmtp($oShop);
// create messages
$oSmarty = $this->_getSmarty();
$this->setViewData("order", $oOrder);
// Process view data array through oxoutput processor
$this->_processViewArray();
return $oSmarty->fetch($myConfig->getTemplatePath($sTpl, false));
}
}

Datei anzeigen

@ -0,0 +1,81 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_oxorder extends d3_dev_oxorder_parent
{
/**
* @return d3_dev_oxbasket
*/
public function d3DevGetOrderBasket()
{
/** @var d3_dev_oxbasket $oBasket */
$oBasket = $this->_getOrderBasket();
// unsetting bundles
$oOrderArticles = $this->getOrderArticles();
foreach ($oOrderArticles as $sItemId => $oItem) {
if ($oItem->isBundle()) {
$oOrderArticles->offsetUnset($sItemId);
}
}
// add this order articles to basket and recalculate basket
$this->_addOrderArticlesToBasket($oBasket, $oOrderArticles);
// recalculating basket
$oBasket->calculateBasket(true);
$oBasket->d3ClearBasketItemArticles();
$this->_oPayment = $this->_setPayment($oBasket->getPaymentId());
return $oBasket;
}
/**
* @return string
*/
public function d3getLastOrderId()
{
if (oxRegistry::getConfig()->getRequestParameter('d3ordernr')) {
$sWhere = ' oxordernr = ' . (int) oxRegistry::getConfig()->getRequestParameter('d3ordernr');
} else {
$sWhere = 1;
}
$sSelect = "SELECT oxid FROM ".getViewName('oxorder')." WHERE ".$sWhere." ORDER BY oxorderdate DESC LIMIT 1";
return oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getOne($sSelect);
}
public function d3getLastOrder()
{
$this->load($this->d3getLastOrderId());
}
/**
* @return oxBasket
*/
public function getBasket()
{
$oBasket = parent::getBasket();
if (false == $oBasket && oxRegistry::getConfig()->getActiveView()->getClassName() == 'd3dev') {
$oBasket = $this->d3DevGetOrderBasket();
}
return $oBasket;
}
}

Datei anzeigen

@ -0,0 +1,28 @@
<?php
/**
* 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 <20> D<> Data Development, Thomas Dartsch
* @author D<> Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_dev_oxorderarticle extends d3_dev_oxorderarticle_parent
{
/**
* @return array
*/
public function getCustomerAlsoBoughtThisProducts()
{
$oArticle = $this->getArticle();
return $oArticle->getCustomerAlsoBoughtThisProducts();
}
}

Datei anzeigen

@ -0,0 +1,49 @@
<?php
/**
* TPL Development Tool
* 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 <20> D<> Data Development, Thomas Dartsch
* @package OrderManager
* @author D<> Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
//Navigation
'charset' => 'ISO-8859-15',
'SHOP_MODULE_GROUP_d3dev_order' => 'Bestellungsablauf manipulieren',
'SHOP_MODULE_blD3DevAvoidDeleteBasketInThankyou' => 'Warenkorb wird nach Bestellabschluss nicht geleert',
'HELP_SHOP_MODULE_blD3DevAvoidDeleteBasketInThankyou' => 'Damit kann auf der Bestellbest<73>tigungsseite '.
'(Thankyou) durch den "zur<75>ck"-Button in den Warenkorb Schritt 4 gewechselt werden und die Bestellung erneut '.
'abgeschickt werden. Eine erneute Best<73>ckung des Warenkorbs ist nicht n<>tig. Beim erneuten Absenden wird '.
'jeweils eine weitere Bestellung angelegt werden. Eventuell verwendete Gutscheine m<>ssen so eingestellt '.
'werden, dass diese mehrfach verwendet werden k<>nnen.',
'SHOP_MODULE_blD3DevShowThankyouWithoutAsociatedOrder' => 'Thankyou-Seite kann auch ohne Bestellung '.
'aufgerufen werden',
'HELP_SHOP_MODULE_blD3DevShowThankyouWithoutAsociatedOrder' => 'Ohne abgesendete Bestellung l<><6C>t sich die '.
'Thankyou-Seite im Standardshop nicht aufrufen. Diese Option stellt dies f<>r Entwicklungszwecke zur '.
'Verf<72>gung. <br>Den Link zum Seitenaufruf haben wir hier im Stamm-Tab hinterlegt. Die Seite <20>ffnet sich in '.
'einem neuen Browserfenster. <br>F<>r die Anzeige wird die letzte vorliegende Bestellung geladen. <20>ber den '.
'Parameter "d3ordernr=X" kann eine bestimmten Bestellung vorgegeben werden.',
'SHOP_MODULE_GROUP_d3dev_mail' => 'Mailanzeige',
'SHOP_MODULE_blD3DevShowOrderMailsInBrowser' => 'Bestellbest<73>tigungsmails k<>nnen im Browser '.
'angezeigt werden',
'HELP_SHOP_MODULE_blD3DevShowOrderMailsInBrowser' => 'Die Links zu den '.
'jeweiligen Mails sind im Stamm-Tab aufgelistet.<br>F<>r die Anzeige wird ohne Angabe der Bestellnummer die '.
'letzte vorliegende Bestellung geladen. <20>ber den Parameter "d3ordernr=X" kann eine bestimmten Bestellung '.
'vorgegeben werden.',
);

4
setup+doku/changelog.txt Normale Datei
Datei anzeigen

@ -0,0 +1,4 @@
=> 1.0.0.0
- unterbindet das L<>schen des Warenkorbs nach Bestellabschluss
- Thankyou ist ohne Bestellabschluss aufrufbar (unter Angabe der Bestellnummer auch f<>r eine bestimmte Bestellung)
- Bestellbest<73>tigungsmails sind im Browser darstellbar (unter Angabe der Bestellnummer auch f<>r eine bestimmte Bestellung)