Compare commits
14 Commits
rel_ionCub
...
rel_ionCub
Author | SHA1 | Date |
---|---|---|
Daniel Stein | 9da3e63707 | |
Daniel Seifert | a921eeab99 | |
Daniel Seifert | 1c2066f80f | |
Daniel Seifert | 0e00a21a71 | |
Daniel Seifert | f11c75c7b1 | |
Daniel Seifert | 4b350a6221 | |
Daniel Seifert | 8e8b1f1d9e | |
Daniel Seifert | 5c28548a0a | |
Daniel Seifert | 16efdddf1f | |
kristianhempel | daef55bcca | |
kristianhempel | 3f4457dbf9 | |
SusiKober | e8e1a36a1e | |
SusiKober | 5d05784b36 | |
SusiKober | 4fe3347fce |
38
README.md
38
README.md
|
@ -1,19 +1,19 @@
|
||||||
# D³ Content Tabs für OXID eShop
|
# D³ Content Tabs für OXID eShop
|
||||||
Erweiterung der Produktdetailsseite mit weiteren "Tabs".
|
Erweiterung der Produktdetailsseite mit weiteren "Tabs".
|
||||||
Dies ermöglicht es, viele Produktionformationen sauber und übersichtlich aufzulisten.
|
Dies ermöglicht es, viele Produktionformationen sauber und übersichtlich aufzulisten.
|
||||||
|
|
||||||
[![](https://img.shields.io/badge/Dokumentation-online-brightgreen.svg)](https://docs.oxidmodule.com/Content_Tabs/)
|
[![](https://img.shields.io/badge/Dokumentation-online-brightgreen.svg)](https://docs.oxidmodule.com/Content_Tabs/)
|
||||||
|
|
||||||
## Systemanforderungen:
|
## Systemanforderungen:
|
||||||
- installierter OXID eShop
|
- installierter OXID eShop
|
||||||
- PHP-Version, für die Installationspakete verfügbar sind
|
- PHP-Version, für die Installationspakete verfügbar sind
|
||||||
- Installation via Composer
|
- Installation via Composer
|
||||||
- ionCubeLoader
|
- ionCubeLoader
|
||||||
- D3 Modul Connector
|
- D3 Modul Connector
|
||||||
|
|
||||||
Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen
|
Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen
|
||||||
Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes.
|
Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes.
|
||||||
|
|
||||||
## Installation:
|
## Installation:
|
||||||
|
|
||||||
Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets.
|
Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets.
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "5.6 - 7.0", "ext-ionCube-Loader": "*",
|
"php": "7.1 - 7.4", "ext-ionCube-Loader": "*",
|
||||||
"oxid-esales/oxideshop-ce": "6.0 - 6.5",
|
"oxid-esales/oxideshop-ce": "6.0 - 6.5",
|
||||||
"d3/modcfg": "^5.3.0.000"
|
"d3/modcfg": "^5.3.0.000"
|
||||||
},
|
},
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,39 +1,19 @@
|
||||||
<?php //006eb
|
<?php //006eb
|
||||||
// This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package ContentTabs @version 4.1.1.0 PHP56 (16.10.2020) @author Daniel Seifert support@shopmodule.com @copyright (C) 2020, D3 Data Development @see http://www.shopmodule.com
|
// This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package ContentTabs @version 4.1.1.0 PHP71 (16.10.2020) @author Daniel Seifert support@shopmodule.com @copyright (C) 2020, D3 Data Development @see http://www.shopmodule.com
|
||||||
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'<a href="http://www.ioncube.com">ionCube</a>')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'<a href="http://get-loader.ioncube.com">get-loader.ioncube.com</a>')." for install assistance.\n\n");exit(199);
|
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'<a href="http://www.ioncube.com">ionCube</a>')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'<a href="http://get-loader.ioncube.com">get-loader.ioncube.com</a>')." for install assistance.\n\n");exit(199);
|
||||||
?>
|
?>
|
||||||
HR+cPnN3OWzpBLSX2d7tB1eF7eaMSHkVMVrUpE5aS7XLFJIQQjrDBdYygZ/bI9MyamrcDIUbegZc
|
HR+cP+fW8cPyo9P9UTQtHT/46HTkOReJd4JW7Em770958Wn4sBgmvH1AlRGvybwGEWJITPr8v5Xu
|
||||||
iBWB7+iMn+7twt3EtfFRvPAw/S1vfFQoEr8ErZ9FlfRNBZ0dapzF7gquKfq8Xjn6zvDDyVuNmzBW
|
WzaAf4dZamgYx/Pb6TMh/ufPULmgsyyQbbtjK6lMK8n+DGX2XRgvw68ufCjOTGSdNpIaXbBpzxtG
|
||||||
QTLlHh/qivQNkktPM9RsAOLJs5u/XvCKqHIVeYrs4BesJz72NvsO8vYDxWUG1Px8LajTG4o9Lnr7
|
/Z0oewxINiLATUZxk9PA1/08s+GRXZf3TyXSXl4I2W5J6A3EapyRAOSUBXZjqH/gYOpkpdIjQi3+
|
||||||
xb+TYb4ir4s4YyhkqgPgMSY6gCdh0fSephZGjJqkHS2mrTA0nZ9TrPZzu/uNRLyOyRsrOrbSOd2P
|
AxjlJAOWz2593sjAAp7IcPLJHvxo0aYwWdzUCF85+Uj/9/mU6LNHDkHUvEkdPsEoXMfkxfbEIF9Q
|
||||||
9HxUPmnAWgR/8d0tSTCadQA7073oCLL3HyYpxOpjzKgpnJIjN8Iqsipuz/aWSrRIY6QGf1k3p7tO
|
o8UhJ9Wg/zwE3+RpEp+nvlHu69M/vC7Y8dBy3zbo/n6G0YsFNsl1Q4KgTe5+6PblvwckNMNup4VJ
|
||||||
zh27C62BJqtF8dCdxPke5cETXWzBesDfJowgNH2UHTUmOSNhgU5XQil9gnA9SGt35wR1e7UEfere
|
EnH0KG1KtFoH9mY3Vwd65s631GF67mE/3+V4EXqrycu7K791aihZZmeK2z6QzCEZu4uLDNTIdhDv
|
||||||
w+29ucg9+1q1PNkAh55TNJvwY2zrVoR2lrSD5WsZ+IBV4G+64SUASXTIILXyAL23YEQZZHZcpZOW
|
NEcLjbO9RJ6Q0XHlW/t9qVen3VVCUQqz5ZXJHgXByY40Apt6JPqtwKd/s8pQ4Im9/JHFoBArmkyJ
|
||||||
E5ALNfoIf53Ct18iKTxq8UxsnR4HByX7oEd61haGKUzxoPzaX8EXCtPbdvk19RYaoPpC3vePTnCM
|
/ZBLsxxnp9vwV5HrwEgBxq6i86/pkH/zb+goGZhBd/j1wf5VPJcGcjxVzawhKl8pbF1Yo7nT4WDQ
|
||||||
i/emONpRrP6GMeaE9f3Po+haIxwIc5Ern1i/RVsiKaY5U1OXia3rFNDnTXC1ieBLTYu1iEXoM48h
|
f0j3loyYg1LpkH+KzEXMKSUpbvMJWWidAwADG4BF2MIxbYG0BVTU/RTnDs+yYHqmvFwBxKmFiXZU
|
||||||
wIvOoxkyRAvwuSe26vJRNvpr94TKED68kAslpFHL/7drTrv/epRgGFk/KixXYuqxj6TD/J9olY02
|
3/ykZLH8lR3WVz06tkWSaBwE5OR6Z8G8K7k0FTNtwmhlBkeFcCLVcmRb3C0lQyIXMlKX9E7v58sV
|
||||||
OfhV7HSHML+l6suL2+PsYSD3BtiT10sPVv+6aZ7gucguQt1yJdELvz1EKp+Pog3wJI9/wVGgpHTz
|
kr3TtW0B1n0eEpHuviJdJpSDEx48FKL0B5zhS03m60C2EWBx3ZD9GOJSAFwssObKrGHFhjjgKLdQ
|
||||||
e6TdOsL+WYCM3AiHhx457l0PCNLkqmU/TajEhc/LBrhZpsi9tBYIZuXmyfo1sovCZCXmRCm94ZVM
|
t3Z+psu2ZWGMSQlnqge5mDjhQ48AIxxbwJ7KWLgGred8ZE0Zct67J5ImhclG+5ExPa2PP10aucOe
|
||||||
KhglL3JxQOr4Z5NyA2dYAJ5K19tPAOSwghalfUMTyu6ENHthSaR3BfXbnZiGuueqUdeKTxhRD3I+
|
8YRCP8MS2APZUahcgVmYz7EigADNNiTul4+Y7OPGL+H6qjMNNhJ0f8vWXvQpTftBqFxGABf2LynR
|
||||||
X2zXAllYUX5PzHt/OXTdxYS5+gaXEsq8wuw3PUed3Nezj1mGWKIBSoiNWPLWbX4wQ7asj2giY4JR
|
x0HTAUll4zEUFmG1ammdk9p9thltu9zdZyRXcnAsldd+J/aIR1LN3khx3jlvbDF5i2iAIWftZ2z5
|
||||||
wLiG8vbuO/ERXK7ClJrbBq6FimZd+1WckC6rDZD9CTcgXhRvcgfkmxlSTIps4Ja1zdSX1ZSIWkru
|
6HJIL/UUXh2j0T7k23ZVgkOm8gEvEadbRnQyiISmCW==
|
||||||
AScVyLDJaYcvPslgAqeIVsurQvNfWF70Ev/h3v3+kSZB3I2ZxZY7/pkgWCyZhAuVKRTWZLP/7572
|
|
||||||
RvvcrLJBgE2ZTg/UYsVBz+7RdpYbPgQRC61Vz3ZPH6CgZDzBy477TzOTDylG7BzS0aopDw5XjTx8
|
|
||||||
JOgcahorOPtthxq0qnQN7mHzMHu28zFKAZrUYqVWqUztc7tJ4lzZHYC1IXfFQsWM2cf1rvNR7Anu
|
|
||||||
zTYisEUCAoTOmuLzEnN/8SJ0m8Qh7LQX+CoEI1e/tZWOLAg/o32cB1StoSkgEx14YCHCsRWdmS5D
|
|
||||||
mZWUHHkrC+F1goE7GImID/WSIBe2xPt4agdwTY1T0DYgc3dX9hgBqJHFgyuV4SN+7Sirz9sxHuI8
|
|
||||||
sh+XEVAwUY8XoZAxI5cHTfn+xvcz0aV5HmcUYoMuoOn5nsxnz09MISme6MqOIayXMS1WdZLPfn8w
|
|
||||||
S7esnKcJN2mrkvU50DvhOs0Z0LUFNKeMQkhzPRsG6rEQL8MD3u7gwwOLSkEr/rtDAydvs67jbqr3
|
|
||||||
RKc0OnOFiDo59g+PffC15Yb0//zztFEO8zsCzwr72CE1gWb75NaBl4Maz/lmOT6TPKcxGBuDXqNX
|
|
||||||
0jwf5karIQSxVVxHFonezETeTa5D0bwbJu7Aw6i8q79Yyd8QRO4679vJYb9TRcVrMkDoKbLXn93C
|
|
||||||
ZN8n32l81mPMsHpRyMHCth5ESXmpufkzblUlio3J8FXDd3AcS1odJmGcV5Cpwe8BfmNlar+tK+Ef
|
|
||||||
bFETE9a03Y0HPfaGSVWba6EbOmB9Gn2KzuF5BoINPsJEcYRN51RUADpPpET0QPd0fq9HTvhPYkMb
|
|
||||||
d+644rJ6GNTA1GoYj6y0Xq9odnZ53O670XRC/YlOD+m3l/zvT2Zds9wPmuIgqLB7n4wBdI2G8asG
|
|
||||||
NjJRKfQGXimcM8t9/kiOVjhzHYnKvXxzFpl/xRgpNDuAmHJtGCrCGcT+AnEUFM8QdjBfOM2Ltk+v
|
|
||||||
77egrcJuIPtBmmwCZ8ZroUpVuqU++iW1/eCkUHvxO3tuQRLJEGToB7alTVwKtuKoniF6nvzNLuoG
|
|
||||||
WbY2Ihc1m9Vq3BCLWpSV/AII7Id7Mgq6X/7oL0GVojTeftmcN+kkeDrhWSZlwaCeypjFeT7TyDU7
|
|
||||||
hJRfRTfmQwELyPoyTCjP0knnlf9PQXgepMDrlJ+h3z+RBdrZc/5eYLhkAJ7MK1axaueE41pqPGcV
|
|
||||||
v2LNUk/xvr+B7rFeSePB180/FN7EnVUs26P8tulTUGLj+dQ8I1v/MdZX50+tFsNnXgME2NKlHRT9
|
|
||||||
0mUUGSKVijLIgKSsEieK8+d/Zi8alGXnqBokYWLwIB010cPORwnrNPotiNWZrYiR6SgT9TDFxGsQ
|
|
||||||
H0zhgw7emtmoPZw+C2Q8TYH1yKcSDutmQ3hHkOoI1E0IEdCejCg1+izWJTW7XRfn+7OPJz4DU95f
|
|
||||||
YHp8frjBNbqOyWVwGIZH0crF9RIZGzfkwDMydrHDjm==
|
|
|
@ -1,52 +0,0 @@
|
||||||
<?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 (C) D3 Data Development (Inh. Thomas Dartsch)
|
|
||||||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
|
||||||
* @link http://www.oxidmodule.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace D3\Contenttabs\Modules\Application\Component\Widget;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class d3_oxwarticledetails_contenttabs
|
|
||||||
*/
|
|
||||||
use D3\Contenttabs\Application\Model\contentTabs as TabsModel;
|
|
||||||
use D3\Contenttabs\Modules\Application\Model\d3_oxarticle_longtexts;
|
|
||||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
|
||||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
|
||||||
use Doctrine\DBAL\DBALException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
|
||||||
|
|
||||||
class d3_oxwarticledetails_contenttabs extends d3_oxwarticledetails_contenttabs_parent
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return array|null
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
*/
|
|
||||||
public function d3GetTabs()
|
|
||||||
{
|
|
||||||
/** @var d3_oxarticle_longtexts $oArticle */
|
|
||||||
$oArticle = $this->getProduct();
|
|
||||||
|
|
||||||
/** @var TabsModel $oTabs */
|
|
||||||
$oTabs = oxNew(TabsModel::class, $oArticle);
|
|
||||||
return $oTabs->getTabs();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,260 +0,0 @@
|
||||||
<?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 (C) D3 Data Development (Inh. Thomas Dartsch)
|
|
||||||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
|
||||||
* @link http://www.oxidmodule.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace D3\Contenttabs\Modules\Application\Model;
|
|
||||||
|
|
||||||
use D3\Contenttabs\Application\Model\contentTabs as TabsModel;
|
|
||||||
use D3\Contenttabs\Application\Model\contentTabs;
|
|
||||||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
|
||||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
|
||||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
|
||||||
use Doctrine\DBAL\DBALException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
||||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
|
||||||
use OxidEsales\Eshop\Core\Field;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* extends Article manager with content tab functionality
|
|
||||||
*/
|
|
||||||
class d3_oxarticle_longtexts extends d3_oxarticle_longtexts_parent
|
|
||||||
{
|
|
||||||
protected $_aD3ContentTabsSkipSaveFields = array();
|
|
||||||
|
|
||||||
private $_sModId = 'd3contenttabs';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $sOXID
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
*/
|
|
||||||
public function load($sOXID)
|
|
||||||
{
|
|
||||||
$blReturn = parent::load($sOXID);
|
|
||||||
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
||||||
/** @var contentTabs $oContentTabs */
|
|
||||||
$oContentTabs = oxNew( contentTabs::class, $this );
|
|
||||||
$oContentTabs->addTabFields();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $blReturn;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return bool
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function save()
|
|
||||||
{
|
|
||||||
$blRet = parent::save();
|
|
||||||
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
||||||
/** @var contentTabs $oContentTabs */
|
|
||||||
$oContentTabs = oxNew( contentTabs::class, $this );
|
|
||||||
$oContentTabs->saveTabFields();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $blRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Deletes record and other information related to this article such as images from DB,
|
|
||||||
* also removes variants. Returns true if entry was deleted.
|
|
||||||
*
|
|
||||||
* @param string $sOXID Article id
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function delete($sOXID = null)
|
|
||||||
{
|
|
||||||
if (!$sOXID) {
|
|
||||||
$sOXID = $this->getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive() && $sOXID) {
|
|
||||||
oxNew( TabsModel::class, $this )->deleteAllLongtexts( $sOXID );
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::delete($sOXID);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
protected function _skipSaveFields()
|
|
||||||
{
|
|
||||||
parent::_skipSaveFields();
|
|
||||||
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
||||||
$this->_aSkipSaveFields = array_merge( $this->_aSkipSaveFields, $this->_aD3ContentTabsSkipSaveFields );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function getFieldNames()
|
|
||||||
{
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
||||||
/** @var contentTabs $oContentTabs */
|
|
||||||
$oContentTabs = oxNew( contentTabs::class, $this );
|
|
||||||
|
|
||||||
foreach ( $oContentTabs->getNewArticleFields(false == $this->_blEmployMultilanguage) as $sFieldName ) {
|
|
||||||
$this->_addField( $sFieldName, (int) $oContentTabs->isMultilingualField( $oContentTabs->getTableFieldNameFromArticleField( $sFieldName ) ) );
|
|
||||||
|
|
||||||
if ( ! in_array( $sFieldName, $this->_aD3ContentTabsSkipSaveFields ) ) {
|
|
||||||
$this->_aD3ContentTabsSkipSaveFields[] = $sFieldName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::getFieldNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getSelectFields($forceCoreTableUsage = null)
|
|
||||||
{
|
|
||||||
$sFieldList = parent::getSelectFields();
|
|
||||||
|
|
||||||
$viewName = $this->getViewName($forceCoreTableUsage);
|
|
||||||
$aFieldList = explode(', ', $sFieldList);
|
|
||||||
|
|
||||||
foreach ($this->_aD3ContentTabsSkipSaveFields as $sTabField) {
|
|
||||||
if ($viewName) {
|
|
||||||
$searchField = "`$viewName`.`$sTabField`";
|
|
||||||
} else {
|
|
||||||
$searchField = ".`$sTabField`";
|
|
||||||
}
|
|
||||||
|
|
||||||
$index = array_search($searchField, $aFieldList);
|
|
||||||
|
|
||||||
if (false !== $index) {
|
|
||||||
unset( $aFieldList[ $index ] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return implode(', ', $aFieldList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return contentTabs
|
|
||||||
*/
|
|
||||||
public function d3GetContentTabs()
|
|
||||||
{
|
|
||||||
return oxNew(contentTabs::class, $this);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get article long description
|
|
||||||
*
|
|
||||||
* @return object $oField field object
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function getLongDescription()
|
|
||||||
{
|
|
||||||
if (false === d3_cfg_mod::get($this->_sModId)->isActive() || $this->d3CanShowTab(1)) {
|
|
||||||
return parent::getLongDescription();
|
|
||||||
}
|
|
||||||
|
|
||||||
return oxNew(Field::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $iTab
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function d3CanShowTab($iTab)
|
|
||||||
{
|
|
||||||
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
||||||
return $this->d3GetContentTabs()->canGetLongDescription( $iTab );
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $iTab
|
|
||||||
*
|
|
||||||
* @return mixed|object|Field|string
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function d3GetLongDescriptionTitle($iTab)
|
|
||||||
{
|
|
||||||
return $this->d3GetContentTabs()->getLongDescriptionTitleFromArticleObject($iTab);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $iTab
|
|
||||||
*
|
|
||||||
* @return mixed|object|Field
|
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DatabaseErrorException
|
|
||||||
* @throws StandardException
|
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
|
||||||
* @throws d3_cfg_mod_exception
|
|
||||||
*/
|
|
||||||
public function d3GetLongDescription($iTab)
|
|
||||||
{
|
|
||||||
if ($iTab == 1) {
|
|
||||||
return $this->getLongDescription();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->d3GetContentTabs()->getLongDescriptionFromArticleObject($iTab);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue