11 Commits

17 changed files with 432 additions and 291 deletions

1
.noencode Normal file
View File

@ -0,0 +1 @@
copyAsIsFiles=metadata.php, .php-cs-fixer.php, IntelliSenseHelper.php, migration, Application/views

34
.php-cs-fixer.php Normal file
View File

@ -0,0 +1,34 @@
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
;
$header = <<<EOF
Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
For the full copyright and license information, please view
the LICENSE file that was distributed with this source code.
https://www.d3data.de
@copyright (C) D3 Data Development (Inh. Thomas Dartsch)
@author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
@link https://www.oxidmodule.com
EOF;
$config = new PhpCsFixer\Config();
return $config->setRules([
'@PHP80Migration' => true,
'@PSR12' => true,
'header_comment' => [
'comment_type' => 'PHPDoc',
'header' => $header,
'location' => 'after_open',
'separate' => 'both',
],
'php_unit_test_class_requires_covers' => true,
'doctrine_annotation_indentation' => true,
])
->setFinder($finder)
;

View File

@ -1,5 +1,18 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Application\Controller\Admin; namespace D3\ManufacturerInformation\Application\Controller\Admin;
@ -12,120 +25,100 @@ use OxidEsales\Eshop\Core\Registry;
class ManufacturerInfoLongdesc extends AdminDetailsController class ManufacturerInfoLongdesc extends AdminDetailsController
{ {
/** /**
* @return string * @return string
*/ */
public function render() public function render()
{ {
parent::render(); parent::render();
$this->_aViewData['edit'] = $oManufacturer = oxNew(\OxidEsales\Eshop\Application\Model\Manufacturer::class); $this->_aViewData['edit'] = $oManufacturer = oxNew(\OxidEsales\Eshop\Application\Model\Manufacturer::class);
$sOXID = $this->_aViewData["oxid"] = $this->getEditObjectId(); $sOXID = $this->_aViewData["oxid"] = $this->getEditObjectId();
if (isset($sOXID) && $sOXID != "-1") { if (isset($sOXID) && $sOXID != "-1") {
// load object // load object
$d3manufacturerlang = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang"); $d3manufacturerlang = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang");
if (!isset($d3manufacturerlang)) { if (!isset($d3manufacturerlang)) {
$d3manufacturerlang = $this->_iEditLang; $d3manufacturerlang = $this->_iEditLang;
} }
$this->_aViewData["catlang"] = $d3manufacturerlang; $this->_aViewData["catlang"] = $d3manufacturerlang;
$oManufacturer->loadInLang($d3manufacturerlang, $sOXID); $oManufacturer->loadInLang($d3manufacturerlang, $sOXID);
//Disable editing for derived items //Disable editing for derived items
if ($oManufacturer->isDerived()) { if ($oManufacturer->isDerived()) {
$this->_aViewData['readonly'] = true; $this->_aViewData['readonly'] = true;
} }
foreach (\OxidEsales\Eshop\Core\Registry::getLang()->getLanguageNames() as $id => $language) { foreach (\OxidEsales\Eshop\Core\Registry::getLang()->getLanguageNames() as $id => $language) {
$oLang = new \stdClass(); $oLang = new \stdClass();
$oLang->sLangDesc = $language; $oLang->sLangDesc = $language;
$oLang->selected = ($id == $this->_iEditLang); $oLang->selected = ($id == $this->_iEditLang);
$this->_aViewData["otherlang"][$id] = clone $oLang; $this->_aViewData["otherlang"][$id] = clone $oLang;
} }
} }
$this->_aViewData["editor"] = $this->generateTextEditor("100%", 280, $oManufacturer, "oxmanufacturers__d3description", "list.tpl.css"); $this->_aViewData["editor"] = $this->generateTextEditor("100%", 280, $oManufacturer, "oxmanufacturers__d3description", "list.tpl.css");
return "d3manufacturerlongdesc.tpl"; return "d3manufacturerlongdesc.tpl";
} }
/** /**
* @return void * @return void
* @throws \Exception * @throws \Exception
*/ */
public function save() public function save()
{ {
parent::save(); parent::save();
$iManufacturerLang = intval(\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang")); $iManufacturerLang = intval(\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang"));
$sOXID = $this->getEditObjectId(); $sOXID = $this->getEditObjectId();
$this->setEditObjectId($sOXID); $this->setEditObjectId($sOXID);
if ($sOXID == "-1") { if ($sOXID == "-1") {
return; return;
} }
/** @var Manufacturer|D3ManufacturerLongDesc $oManufacturer */ /** @var Manufacturer|D3ManufacturerLongDesc $oManufacturer */
$oManufacturer = oxNew(Manufacturer::class); $oManufacturer = oxNew(Manufacturer::class);
$oManufacturer->loadInLang($iManufacturerLang, $sOXID); $oManufacturer->loadInLang($iManufacturerLang, $sOXID);
if (!$oManufacturer->load($sOXID)) { if (!$oManufacturer->load($sOXID)) {
return; return;
} }
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval"); $aParams = Registry::getRequest()->getRequestEscapedParameter("editval");
$oManufacturer->assign($aParams); $oManufacturer->assign($aParams);
if (false === is_null($this->d3GetLongdescParamValue())) { if (false === is_null($this->d3GetLongdescParamValue())) {
$oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue()); $oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue());
$oManufacturer->save(); $oManufacturer->save();
} }
} }
/** /**
* Returns string which must be edited by editor * @return string
* */
* @param \OxidEsales\Eshop\Core\Model\BaseModel $oObject object with field will be used for editing public function d3GetLongdescParamValue(): string
* @param string $sField name of editable field {
* return (string) $aParams = Registry::getRequest()->getRequestEscapedParameter("editval")['oxmanufacturers__d3description'];
* @return string }
* @deprecated underscore prefix violates PSR12, will be renamed to "getEditValue" in next major
*/ /**
protected function _getEditValue($oManufacturer, $sField) // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore * inhaltliche Uebernahme analog Article_Main
{ * wird genutzt zum Abspeichern der Artikel-Langbeschreibung
$sEditObjectValue = ''; *
* @param $sValue
if ($oManufacturer and $oManufacturer->getId()) { *
$sEditObjectValue = $this->_processEditValue($oManufacturer->getFieldData(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME)); * @return mixed
} */
protected function _processLongDesc($sValue)
return $sEditObjectValue; {
} $aSearch = ['&amp;nbsp;', '&amp;', '&quot;', '&lang=', '<p>&nbsp;</p>', '<p>&nbsp; </p>'];
$aReplace = ['&nbsp;', '&', '"', '&amp;lang=', '', ''];
/**
* @return string return str_replace($aSearch, $aReplace, $sValue);
*/ }
public function d3GetLongdescParamValue() :string }
{
return (string) $aParams = Registry::getRequest()->getRequestEscapedParameter("editval")['oxmanufacturers__d3description'];
}
/**
* inhaltliche Uebernahme analog Article_Main
* wird genutzt zum Abspeichern der Artikel-Langbeschreibung
*
* @param $sValue
*
* @return mixed
*/
protected function _processLongDesc($sValue)
{
$aSearch = ['&amp;nbsp;', '&amp;', '&quot;', '&lang=', '<p>&nbsp;</p>', '<p>&nbsp; </p>'];
$aReplace = ['&nbsp;', '&', '"', '&amp;lang=', '', ''];
return str_replace($aSearch, $aReplace, $sValue);
}
}

View File

@ -1,14 +1,26 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Application\Model; namespace D3\ManufacturerInformation\Application\Model;
class Constants class Constants
{ {
public const OXID_MODULE_ID = 'd3manufacturerinformation'; public const OXID_MODULE_ID = 'd3manufacturerinformation';
// Tables and Database // Tables and Database
public const D3_OXMANUFACTURERS_LONGDESC_FIELDNAME = 'd3description'; public const D3_OXMANUFACTURERS_LONGDESC_FIELDNAME = 'd3description';
} }

View File

@ -1,13 +1,26 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
$sLangName = "Deutsch"; $sLangName = "Deutsch";
// ------------------------------- // -------------------------------
// RESOURCE IDENTITFIER = STRING // RESOURCE IDENTITFIER = STRING
// ------------------------------- // -------------------------------
$aLang = array( $aLang = [
'charset' => 'UTF-8', 'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Langtext', 'mxd3manufacturerinfolongdesc' => 'Langtext',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Einstellungen', 'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Einstellungen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'vorhandene Herstellertexte auf Artikeldetails als Tab anzeigen' 'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'vorhandene Herstellertexte auf Artikeldetails als Tab anzeigen',
); ];

View File

@ -1,13 +1,26 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
$sLangName = "Deutsch"; $sLangName = "Deutsch";
// ------------------------------- // -------------------------------
// RESOURCE IDENTITFIER = STRING // RESOURCE IDENTITFIER = STRING
// ------------------------------- // -------------------------------
$aLang = array( $aLang = [
'charset' => 'UTF-8', 'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Text', 'mxd3manufacturerinfolongdesc' => 'Text',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Settings', 'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Settings',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'display existing manufacturer texts on item details as a tab' 'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'display existing manufacturer texts on item details as a tab',
); ];

View File

@ -35,7 +35,9 @@
<input type="hidden" name="catlang" value="[{$catlang}]"> <input type="hidden" name="catlang" value="[{$catlang}]">
<input type="hidden" name="editval[oxmanufacturers__d3description]" value=""> <input type="hidden" name="editval[oxmanufacturers__d3description]" value="">
[{include file="include/category_text_editor.tpl"}] <div style="margin-bottom: 40px">
[{include file="include/category_text_editor.tpl"}]
</div>
</form> </form>
[{include file="bottomnaviitem.tpl"}] [{include file="bottomnaviitem.tpl"}]

View File

@ -1,16 +1,18 @@
[{$smarty.block.parent}] [{$smarty.block.parent}]
[{assign var="oConfig" value=$oViewConf->getConfig()}]
[{assign var="oManufacturer" value=$oView->getManufacturer()}] [{assign var="oManufacturer" value=$oView->getManufacturer()}]
[{assign var="sShopURL" value=$oConfig->getConfigParam('sShopURL')}] [{if $oManufacturer && $oManufacturer->getId()}]
[{assign var="description" value=$oManufacturer->d3GetLongdesc()}] [{assign var="oConfig" value=$oViewConf->getConfig()}]
[{assign var="sShopURL" value=$oConfig->getConfigParam('sShopURL')}]
[{assign var="description" value=$oManufacturer->d3GetLongdesc()}]
[{if $oManufacturer && $oConfig->getConfigParam('d3manufacturerinformation_showManufacturertextOnDetailsPage') && $description->value}] [{if $oConfig->getConfigParam('d3manufacturerinformation_showManufacturertextOnDetailsPage') && $description->rawValue|strip_tags|trim}]
[{capture append="tabs"}]<a href="#manufacturertab" data-toggle="tab">[{oxmultilang ident="MANUFACTURER"}]</a>[{/capture}] [{capture append="tabs"}]<a href="#manufacturertab" class="nav-link[{if $blFirstTab}] active[{/if}]" data-toggle="tab">[{oxmultilang ident="MANUFACTURER"}]</a>[{/capture}]
[{capture append="tabsContent"}] [{capture append="tabsContent"}]
<div id="manufacturertab" class="tab-pane[{if $blFirstTab}] active[{/if}]"> <div id="manufacturertab" class="tab-pane[{if $blFirstTab}] active[{/if}]">
[{oxeval var=$description}] [{oxeval var=$description}]
</div> </div>
[{assign var="blFirstTab" value=false}] [{assign var="blFirstTab" value=false}]
[{/capture}] [{/capture}]
[{/if}]
[{/if}] [{/if}]

View File

@ -4,7 +4,19 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [unreleased](https://git.d3data.de/D3Public/MyModule/compare/1.1.1.0...rel_1.1.x) ## [unreleased](https://git.d3data.de/D3Public/MyModule/compare/1.1.2.1...rel_1.1.x)
## [1.1.2.1](https://git.d3data.de/D3Public/MyModule/compare/1.1.2.0...1.1.2.1) - 2024-11-21
### Fixed
- tab class for Wave based theme
- encoding error when using the WYSIWYG editor
## [1.1.2.0](https://git.d3data.de/D3Public/MyModule/compare/1.1.1.0...1.1.2.0) - 2024-11-19
### Fixed
- show hidden save button
### Added
- hide empty HTML elements content
## [1.1.1.0](https://git.d3data.de/D3Public/MyModule/compare/1.1.0.0...1.1.1.0) - 2024-11-18 ## [1.1.1.0](https://git.d3data.de/D3Public/MyModule/compare/1.1.0.0...1.1.1.0) - 2024-11-18
### Fixed ### Fixed

View File

@ -1,21 +1,23 @@
<?php <?php
/** /**
* This Software is the property of Data Development and is protected * Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
* by copyright law - it is NOT Freeware. *
* Any unauthorized use of this software without a valid license * For the full copyright and license information, please view
* is a violation of the license agreement and will be prosecuted by * the LICENSE file that was distributed with this source code.
* civil and criminal law. *
* http://www.shopmodule.com * https://www.d3data.de
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com> * @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link http://www.oxidmodule.com * @link https://www.oxidmodule.com
*/ */
namespace D3\ManufacturerInformation\Modules\Application\Model{ namespace D3\ManufacturerInformation\Modules\Application\Model{
use OxidEsales\Eshop\Application\Model\Manufacturer; use OxidEsales\Eshop\Application\Model\Manufacturer;
class D3ManufacturerLongDesc_parent extends Manufacturer {} class D3ManufacturerLongDesc_parent extends Manufacturer
} {
}
}

View File

@ -1,10 +1,22 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Modules\Application\Model; namespace D3\ManufacturerInformation\Modules\Application\Model;
use D3\ManufacturerInformation\Application\Model\Constants; use D3\ManufacturerInformation\Application\Model\Constants;
use OxidEsales\Eshop\Application\Model\Manufacturer; use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Core\Field; use OxidEsales\Eshop\Core\Field;
@ -12,30 +24,30 @@ use OxidEsales\Eshop\Core\Registry;
class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent
{ {
/** /**
* @param string $sValue * @param string $sValue
* @return void * @return void
*/ */
public function d3SetLongdesc(string $sValue) :bool public function d3SetLongdesc(string $sValue): bool
{ {
if ($this->getId() and $this->isLoaded()){ if ($this->getId() and $this->isLoaded()) {
try { try {
$this->assign([Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME => $sValue]); $this->assign([Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME => $sValue]);
$this->save(); $this->save();
}catch (\Exception $exception){ } catch (\Exception $exception) {
Registry::getLogger()->error($exception->getMessage()); Registry::getLogger()->error($exception->getMessage());
} }
} }
return true; return true;
} }
/** /**
* @return Field * @return Field
*/ */
public function d3GetLongdesc(): Field public function d3GetLongdesc(): Field
{ {
$longName = $this->getCoreTableName().'__'.strtolower(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME); $longName = $this->getCoreTableName().'__'.strtolower(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME);
return $this->$longName; return $this->$longName;
} }
} }

View File

@ -1,10 +1,22 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Modules\Application\Model; namespace D3\ManufacturerInformation\Modules\Application\Model;
use D3\ManufacturerInformation\Application\Model\Constants; use D3\ManufacturerInformation\Application\Model\Constants;
use OxidEsales\Eshop\Application\Model\Manufacturer; use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Application\Model\ManufacturerList; use OxidEsales\Eshop\Application\Model\ManufacturerList;
@ -12,14 +24,14 @@ use OxidEsales\Eshop\Core\Field;
class ManufacturerInfoList extends ManufacturerInfoList_parent class ManufacturerInfoList extends ManufacturerInfoList_parent
{ {
/** /**
* @param Manufacturer|D3ManufacturerLongDesc $oManufacturer * @param Manufacturer|D3ManufacturerLongDesc $oManufacturer
* @return void * @return void
*/ */
protected function _addCategoryFields($oManufacturer) protected function _addCategoryFields($oManufacturer)
{ {
parent::_addCategoryFields($oManufacturer); parent::_addCategoryFields($oManufacturer);
$oManufacturer->oxcategories__oxlongdesc = new Field($oManufacturer->getFieldData(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME), Field::T_RAW); $oManufacturer->oxcategories__oxlongdesc = new Field($oManufacturer->getFieldData(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME), Field::T_RAW);
} }
} }

View File

@ -15,9 +15,8 @@ Dieses Paket erfordert einen mit Composer installierten OXID eShop in einer in d
Ă–ffnen Sie eine Kommandozeile und navigieren Sie zum Stammverzeichnis des Shops (Elternverzeichnis von source und vendor). FĂĽhren Sie die folgenden Befehle aus. Passen Sie die Pfadangaben an Ihre Installationsumgebung an. Ă–ffnen Sie eine Kommandozeile und navigieren Sie zum Stammverzeichnis des Shops (Elternverzeichnis von source und vendor). FĂĽhren Sie die folgenden Befehle aus. Passen Sie die Pfadangaben an Ihre Installationsumgebung an.
```bash ```bash
composer require d3/manufacturerinformation:"~1.1" composer require d3/manufacturerinformation:"~1.1.0"
``` ```
Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code auszuführen. Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code auszuführen.
@ -34,7 +33,6 @@ Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code aus
Leeren Sie anschlieĂźend den Temp Ordner des Shops. Leeren Sie anschlieĂźend den Temp Ordner des Shops.
## Lizenz ## Lizenz
(Stand: 13.11.2024) (Stand: 13.11.2024)

View File

@ -24,13 +24,12 @@
"proprietary" "proprietary"
], ],
"require": { "require": {
"php": "~7.0 || ~8.0", "php": "~7.1 || ~8.0",
"oxid-esales/oxideshop-ce": "v6.6.0 - v6.14.3" "oxid-esales/oxideshop-ce": "v6.6.0 - v6.14.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit" : "^9.5", "oxid-esales/oxideshop-ce": "~6.14.0",
"friendsofphp/php-cs-fixer": "^3.9", "friendsofphp/php-cs-fixer": "^3.9"
"phpstan/phpstan": "^1.8"
}, },
"extra": { "extra": {
"oxideshop": { "oxideshop": {
@ -47,5 +46,9 @@
"psr-4": { "psr-4": {
"D3\\ManufacturerInformation\\": "../../../source/modules/d3/manufacturerinformation" "D3\\ManufacturerInformation\\": "../../../source/modules/d3/manufacturerinformation"
} }
},
"scripts": {
"php-cs-fixer_audit": "./vendor/bin/php-cs-fixer list-files --config=./vendor/d3/manufacturerinformation/.php-cs-fixer.php",
"php-cs-fixer_fix": "./vendor/bin/php-cs-fixer fix --config=./vendor/d3/manufacturerinformation/.php-cs-fixer.php"
} }
} }

View File

@ -1,18 +1,20 @@
<?php <?php
/** /**
* For the full copyright and license information, please view the LICENSE * Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
* file that was distributed with this source code. *
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
* *
* https://www.d3data.de * https://www.d3data.de
* *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com> * @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com * @link https://www.oxidmodule.com
*/ */
declare(strict_types=1); declare(strict_types=1);
use D3\ManufacturerInformation\Application\Controller\Admin\ManufacturerInfoLongdesc; use D3\ManufacturerInformation\Application\Controller\Admin\ManufacturerInfoLongdesc;
use D3\ManufacturerInformation\Application\Model\Constants; use D3\ManufacturerInformation\Application\Model\Constants;
use D3\ManufacturerInformation\Modules\Application\Model\D3ManufacturerLongDesc; use D3\ManufacturerInformation\Modules\Application\Model\D3ManufacturerLongDesc;
@ -36,26 +38,26 @@ $aModule = [
'en' => 'adds manufacturer information to the article list', 'en' => 'adds manufacturer information to the article list',
], ],
'thumbnail' => 'image-file.png', 'thumbnail' => 'image-file.png',
'version' => '1.1.1.0', 'version' => '1.1.2.1',
'author' => $logo.' Data Development (Inh.: Thomas Dartsch)', 'author' => $logo.' Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com', 'email' => 'support@shopmodule.com',
'url' => 'https://www.oxidmodule.com/', 'url' => 'https://www.oxidmodule.com/',
'controllers' => [ 'controllers' => [
"d3manufacturerinfolongdesc" => ManufacturerInfoLongdesc::class "d3manufacturerinfolongdesc" => ManufacturerInfoLongdesc::class,
], ],
'extend' => [ 'extend' => [
OEManufacturer::class => D3ManufacturerLongDesc::class, OEManufacturer::class => D3ManufacturerLongDesc::class,
OEManufacturerList::class => ManufacturerInfoList::class OEManufacturerList::class => ManufacturerInfoList::class,
], ],
'templates' => [ 'templates' => [
'd3manufacturerlongdesc.tpl' => 'd3/manufacturerinformation/Application/views/admin/tpl/d3manufacturer_longdesc.tpl', 'd3manufacturerlongdesc.tpl' => 'd3/manufacturerinformation/Application/views/admin/tpl/d3manufacturer_longdesc.tpl',
], ],
'settings' => [ 'settings' => [
[ [
'group' => $sModuleId.'_main', 'group' => $sModuleId.'_main',
'name' => $sModuleId.'_showManufacturertextOnDetailsPage', 'name' => $sModuleId.'_showManufacturertextOnDetailsPage',
'type' => 'bool', 'type' => 'bool',
'value' => true 'value' => true,
], ],
], ],
'blocks' => [ 'blocks' => [
@ -69,5 +71,5 @@ $aModule = [
'block' => 'details_tabs_invite', 'block' => 'details_tabs_invite',
'file' => 'Application/views/blocks/page/details/inc/details_tabs_invite.html.tpl', 'file' => 'Application/views/blocks/page/details/inc/details_tabs_invite.html.tpl',
], ],
] ],
]; ];

View File

@ -1,5 +1,18 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Migrations; namespace D3\ManufacturerInformation\Migrations;
@ -13,36 +26,38 @@ use Doctrine\Migrations\AbstractMigration;
*/ */
final class Version20241023154223 extends AbstractMigration final class Version20241023154223 extends AbstractMigration
{ {
public function getDescription() : string public function getDescription(): string
{ {
return 'Adds the D3 manufacturer longdesc column'; return 'Adds the D3 manufacturer longdesc column';
} }
public function up(Schema $schema) : void
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$this->d3AddLongdescColumnToOxmanufacturers($schema);
}
public function down(Schema $schema) : void public function up(Schema $schema): void
{} {
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
/**
* @param Schema $schema $this->d3AddLongdescColumnToOxmanufacturers($schema);
* @return void }
* @throws \Doctrine\DBAL\Schema\SchemaException
*/ public function down(Schema $schema): void
public function d3AddLongdescColumnToOxmanufacturers(Schema $schema){ {
$table = !$schema->hasTable('oxmanufacturers') ? }
$schema->createTable('oxmanufacturers') :
$schema->getTable('oxmanufacturers'); /**
* @param Schema $schema
// Beschreibung * @return void
if (!$table->hasColumn('D3DESCRIPTION')) { * @throws \Doctrine\DBAL\Schema\SchemaException
$table->addColumn('D3DESCRIPTION', (new TextType())->getName()) */
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT) public function d3AddLongdescColumnToOxmanufacturers(Schema $schema)
->setNotnull(true); {
} $table = !$schema->hasTable('oxmanufacturers') ?
} $schema->createTable('oxmanufacturers') :
$schema->getTable('oxmanufacturers');
// Beschreibung
if (!$table->hasColumn('D3DESCRIPTION')) {
$table->addColumn('D3DESCRIPTION', (new TextType())->getName())
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT)
->setNotnull(true);
}
}
} }

View File

@ -1,5 +1,18 @@
<?php <?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe, Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1); declare(strict_types=1);
namespace D3\ManufacturerInformation\Migrations; namespace D3\ManufacturerInformation\Migrations;
@ -13,50 +26,52 @@ use Doctrine\Migrations\AbstractMigration;
*/ */
final class Version20241028172608 extends AbstractMigration final class Version20241028172608 extends AbstractMigration
{ {
public function getDescription() : string public function getDescription(): string
{ {
return 'Adds multilang tables for the D3 manufacturer longdesc'; return 'Adds multilang tables for the D3 manufacturer longdesc';
} }
public function up(Schema $schema) : void
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$this->d3AddLongdescMultilangColumnsToOxmanufacturers($schema);
}
public function down(Schema $schema) : void public function up(Schema $schema): void
{} {
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
/**
* @param Schema $schema $this->d3AddLongdescMultilangColumnsToOxmanufacturers($schema);
* @return void }
* @throws \Doctrine\DBAL\Schema\SchemaException
*/ public function down(Schema $schema): void
public function d3AddLongdescMultilangColumnsToOxmanufacturers(Schema $schema){ {
$table = !$schema->hasTable('oxmanufacturers') ? }
$schema->createTable('oxmanufacturers') :
$schema->getTable('oxmanufacturers'); /**
* @param Schema $schema
// lang 1 * @return void
if (!$table->hasColumn('D3DESCRIPTION_1')) { * @throws \Doctrine\DBAL\Schema\SchemaException
$table->addColumn('D3DESCRIPTION_1', (new TextType())->getName()) */
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT) public function d3AddLongdescMultilangColumnsToOxmanufacturers(Schema $schema)
->setNotnull(true); {
} $table = !$schema->hasTable('oxmanufacturers') ?
$schema->createTable('oxmanufacturers') :
// lang 2 $schema->getTable('oxmanufacturers');
if (!$table->hasColumn('D3DESCRIPTION_2')) {
$table->addColumn('D3DESCRIPTION_2', (new TextType())->getName()) // lang 1
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT) if (!$table->hasColumn('D3DESCRIPTION_1')) {
->setNotnull(true); $table->addColumn('D3DESCRIPTION_1', (new TextType())->getName())
} ->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT)
->setNotnull(true);
// lang 3 }
if (!$table->hasColumn('D3DESCRIPTION_3')) {
$table->addColumn('D3DESCRIPTION_3', (new TextType())->getName()) // lang 2
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT) if (!$table->hasColumn('D3DESCRIPTION_2')) {
->setNotnull(true); $table->addColumn('D3DESCRIPTION_2', (new TextType())->getName())
} ->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT)
} ->setNotnull(true);
}
// lang 3
if (!$table->hasColumn('D3DESCRIPTION_3')) {
$table->addColumn('D3DESCRIPTION_3', (new TextType())->getName())
->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT)
->setNotnull(true);
}
}
} }