Compare commits

..

73 Commits

Author SHA1 Message Date
df236f4bfd add phpunit dependencies 2025-03-03 13:50:51 +01:00
2af2e3bbcc update version number 2025-01-02 10:45:02 +01:00
ba123ad789 code cleanup 2024-12-19 16:28:29 +01:00
889f721279 add support for OXID 7.2 | update version number | update changelog 2024-12-19 16:28:10 +01:00
0f6c3c41af update old module installation commands 2024-12-19 16:26:23 +01:00
a4bd6d5bfd add support for OXID 7.2 2024-12-19 15:31:35 +01:00
2b0a3dc2a1 use new templaterenderer because old can't be used 2024-12-19 14:21:49 +01:00
47a0759ced import "field" | change return type declaration 2024-12-17 15:14:51 +01:00
2838ab70be add missing entry 2024-12-17 14:06:18 +01:00
3a34f0e5f5 re-add missing function 2024-12-17 13:53:15 +01:00
07224f9530 parse manufacturer longdesc through Smarty 2024-12-09 06:35:42 +01:00
b278f8a185 generate field long name by shop method, assert return type 2024-12-09 06:35:17 +01:00
bb6b465445 remove unused assignment 2024-12-09 06:34:33 +01:00
6f7acce537 remove unset logo variable 2024-12-03 09:56:42 +01:00
ed92b443f9 [Changed] Changelog 2024-11-22 22:19:09 +01:00
cb0bd3fc0b [Fixed] method usage to get setting and missing closing tag 2024-11-22 22:13:54 +01:00
3d2cb0e94b [Removed] unnecessary config get 2024-11-22 22:13:28 +01:00
99854e9409 [Fixed] wrong img 2024-11-22 22:06:04 +01:00
a790ebcb07 [Added] missing twig translation 2024-11-22 22:05:56 +01:00
ef5f4039d0 [Changed] extension of Config instead of ArticleDetails; [Fixed] wrong usage of modSetting getter
more general, global take
2024-11-22 22:00:04 +01:00
eb489933c9 [Fixed] unnecessary use 2024-11-22 21:44:06 +01:00
ce4a96c279 [Added] manufacturer to details; Component\ArticleDetails extension
method to call the settings on the details page
2024-11-22 21:38:55 +01:00
beb67d992e [Added] manufacturer longdesc to details page 2024-11-22 21:14:52 +01:00
13ee1b7340 [Changed] metadata && changelog 2024-11-22 20:20:31 +01:00
8bbe6262af rename incorrect language files by mistake ¯\(°_o)/¯ 2024-11-22 20:16:50 +01:00
ca9f9141ce change logo 2024-11-22 20:16:50 +01:00
5a6f8a1577 make displaying manufacturer information on manufacturer list page configurable 2024-11-22 20:16:40 +01:00
fcecc396df decode longdesc for manufacturer list page 2024-11-22 20:15:34 +01:00
dfdc0b1ecd [Added] 2.x changelog entries 2024-11-22 20:15:32 +01:00
7d5eeb59d2 fix links in changelog 2024-11-22 20:12:50 +01:00
bd9b8b6515 improve manufacturer block content 2024-11-22 20:12:25 +01:00
27cb316b74 fix WYSIWYG editor content 2024-11-22 20:08:47 +01:00
c99a7bc93c fix CHANGELOG 2024-11-22 20:07:59 +01:00
d7865aebe4 [Changed] potential solution manufacturer longdesc 2024-11-21 00:31:01 +01:00
febe1e7f8c [Fixed] tab pane styling; wrong config-variable 2024-11-21 00:00:31 +01:00
45e719d9f3 [Changed] clear code 2024-11-21 00:00:07 +01:00
d269745dac [Removed] unnecessary extension 2024-11-20 23:59:51 +01:00
77cb1d4594 [Changed] metadata && changelog 2024-11-20 19:28:47 +01:00
449f901976 [Added] new setting adjustments for twig 2024-11-20 19:11:15 +01:00
8794a005d7 [Fixed] missing translations 2024-11-20 18:54:00 +01:00
4c374ff39c [Fixed] empty var 2024-11-20 18:51:50 +01:00
8f046ed231 [Changed] php cs fixer adjustments 2024-11-20 18:50:18 +01:00
8d3421450b [Added] php cs fixer 2024-11-20 18:12:10 +01:00
b46175f5ab [Changed] property name to lower-case 2024-11-20 17:52:46 +01:00
99ea814987 [Added] php cs fixer 2024-11-20 17:51:07 +01:00
38b12bc3c0 add noencode 2024-11-20 17:49:43 +01:00
ebb9450812 [Fixed] dont hite "save" button on larger input form 2024-11-20 17:49:26 +01:00
64a70921c5 [Fixed] show no content on empty elements 2024-11-20 17:47:12 +01:00
ab0ea6cea7 [Fixed] installation instructions 2024-11-20 17:46:25 +01:00
fe7f3aa621 [Fixed] html entity code 2024-11-20 17:45:00 +01:00
2882aac57e make displaying manufacturer tab on details page configurable 2024-11-20 17:41:53 +01:00
8eaa97d889 display manufacturer content as additional tab on article details page 2024-11-20 17:41:28 +01:00
2ef3223e86 show manufacturer on article details page if manufacturer hasn't an icon 2024-11-20 17:40:58 +01:00
58663d9918 [Changed] readme 2024-11-20 17:40:32 +01:00
b5b4268335 [Fixed] readme 2024-11-18 19:17:13 +01:00
dfd4367066 [Added] extension 2024-11-18 19:16:05 +01:00
e61438f937 [Added] list block extension 2024-11-18 19:15:28 +01:00
1c2ee9f4f0 [Changed] README 2024-11-16 18:30:42 +01:00
1dc39f4fdd [Changed] changelog 2024-11-16 18:28:18 +01:00
c9ac21c4bb [Changed] deprecated method names 2024-11-16 18:14:54 +01:00
21e6d764cc [Changed] improved dynamization of the code 2024-11-16 17:45:20 +01:00
bf30cf85dc [Added] intellisense connection 2024-11-16 17:43:44 +01:00
56d8bbdd72 [Fixed] used stylesheet 2024-11-16 17:27:30 +01:00
c215ef5eef [Changed] to OXID 7 functionality 2024-11-16 17:27:17 +01:00
ce264a357e [Fixed] migration-yaml 2024-11-16 16:07:24 +01:00
75beb308d8 [Added] twig admin template 2024-11-16 16:03:22 +01:00
00a8017731 [Changed] template names 2024-11-16 16:03:12 +01:00
67f7bcb77f [Changed] deprecated code 2024-11-16 16:02:54 +01:00
6e960b34b2 [Added] twig admin lang files 2024-11-16 15:56:32 +01:00
67240260b2 [Fixed] missing namespace entry 2024-11-16 14:36:17 +01:00
58ef4bb533 [Fixed] missing namespace entry 2024-11-16 14:35:43 +01:00
3e30e0491b [Changed] rework for OXID 7 2024-11-16 14:33:16 +01:00
a7dfae8c5d [Changed] rework for OXID 7 2024-11-16 13:50:58 +01:00
24 changed files with 465 additions and 140 deletions

View File

@ -1,10 +1,10 @@
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
;
$header = <<<EOF
$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
@ -16,19 +16,19 @@ https://www.d3data.de
@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)
$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

@ -17,11 +17,12 @@ declare(strict_types=1);
namespace D3\ManufacturerInformation\Application\Controller\Admin;
use D3\ManufacturerInformation\Application\Model\Constants;
use D3\ManufacturerInformation\Modules\Application\Model\D3ManufacturerLongDesc;
use Exception;
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Core\Registry;
use stdClass;
class ManufacturerInfoLongdesc extends AdminDetailsController
{
@ -32,12 +33,13 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
{
parent::render();
$this->_aViewData['edit'] = $oManufacturer = oxNew(\OxidEsales\Eshop\Application\Model\Manufacturer::class);
/** @var Manufacturer|D3ManufacturerLongDesc $oManufacturer */
$this->_aViewData['edit'] = $oManufacturer = oxNew(Manufacturer::class);
$sOXID = $this->_aViewData["oxid"] = $this->getEditObjectId();
if (isset($sOXID) && $sOXID != "-1") {
// load object
$d3manufacturerlang = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang");
$d3manufacturerlang = Registry::getRequest()->getRequestEscapedParameter("catlang");
if (!isset($d3manufacturerlang)) {
$d3manufacturerlang = $this->_iEditLang;
@ -52,28 +54,28 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
$this->_aViewData['readonly'] = true;
}
foreach (\OxidEsales\Eshop\Core\Registry::getLang()->getLanguageNames() as $id => $language) {
$oLang = new \stdClass();
foreach (Registry::getLang()->getLanguageNames() as $id => $language) {
$oLang = new stdClass();
$oLang->sLangDesc = $language;
$oLang->selected = ($id == $this->_iEditLang);
$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, $oManufacturer->getD3LongDescTableColumnName(), "list.css");
return "d3manufacturerlongdesc.tpl";
return "@d3manufacturerinformation/admin/d3manufacturerlongdesc";
}
/**
* @return void
* @throws \Exception
* @throws Exception
*/
public function save()
public function save(): void
{
parent::save();
$iManufacturerLang = intval(\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang"));
$iManufacturerLang = intval(Registry::getRequest()->getRequestEscapedParameter("catlang"));
$sOXID = $this->getEditObjectId();
$this->setEditObjectId($sOXID);
@ -92,8 +94,8 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval");
$oManufacturer->assign($aParams);
if (false === is_null($this->d3GetLongdescParamValue())) {
$oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue());
if (false === is_null($this->d3GetLongdescParamValue($oManufacturer))) {
$oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue($oManufacturer));
$oManufacturer->save();
}
}
@ -101,7 +103,7 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
/**
* @return string
*/
public function d3GetLongdescParamValue(): string
public function d3GetLongdescParamValue(Manufacturer $oManufacturer): string
{
return (string) Registry::getRequest()->getRequestEscapedParameter("editval")['oxmanufacturers__d3description'];
}
@ -114,7 +116,7 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
*
* @return mixed
*/
protected function _processLongDesc($sValue)
protected function processLongDesc($sValue): mixed
{
$aSearch = ['&amp;nbsp;', '&amp;', '&quot;', '&lang=', '<p>&nbsp;</p>', '<p>&nbsp; </p>'];
$aReplace = ['&nbsp;', '&', '"', '&amp;lang=', '', ''];

View File

@ -18,10 +18,10 @@ $sLangName = "Deutsch";
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = [
'charset' => 'UTF-8',
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Text',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Settings',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'show existing manufacturer texts on item details page as a tab',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'show manufacturer texts on manufacturer page',
'mxd3manufacturerinfolongdesc' => 'Langtext',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Einstellungen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'vorhandene Herstellertexte auf Artikeldetails als Tab anzeigen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'Herstellertexte auf Herstellerseite anzeigen',
];

View File

@ -18,10 +18,10 @@ $sLangName = "Deutsch";
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = [
'charset' => 'UTF-8',
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Langtext',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Einstellungen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'vorhandene Herstellertexte auf Artikeldetails als Tab anzeigen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'Herstellertexte auf Herstellerseite anzeigen',
'mxd3manufacturerinfolongdesc' => 'Text',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Settings',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'show existing manufacturer texts on item details page as a tab',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'show manufacturer texts on manufacturer page',
];

View File

@ -0,0 +1,27 @@
<?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";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = [
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Langtext',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Einstellungen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'vorhandene Herstellertexte auf Artikeldetails als Tab anzeigen',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'Herstellertexte auf Herstellerseite anzeigen',
];

View File

@ -0,0 +1,27 @@
<?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";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = [
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Text',
'SHOP_MODULE_GROUP_d3manufacturerinformation_main' => 'Settings',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnDetailsPage' => 'display existing manufacturer texts on item details as a tab',
'SHOP_MODULE_d3manufacturerinformation_showManufacturertextOnManufacturerPage' => 'show manufacturer texts on manufacturer page',
];

View File

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

View File

@ -4,35 +4,52 @@ 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/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [unreleased](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.4.1...rel_1.1.x)
## [unreleased](https://git.d3data.de/D3Private/manufacturer-information/compare/2.1.0.0...rel_2.x)
## [1.1.4.1](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.4.0...1.1.4.1) - 2024-12-12
## [2.0.3.0](https://git.d3data.de/D3Private/manufacturer-information/compare/2.0.2.0...2.0.3.0) - 2024-12-19
### Added
- Dynamic Template Renderer Support
- Support for OXID 7.2
## [2.0.2.0](https://git.d3data.de/D3Private/manufacturer-information/compare/2.0.1.0...2.0.2.0) - 2024-11-22
### Fixed
- fix wrong admin menu section
- template code
- module image file
### Added
- Config method and extension
- missing twig translation
## [1.1.4.0](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.3.1...1.1.4.0) - 2024-12-05
## [2.0.1.0](https://git.d3data.de/D3Private/manufacturer-information/compare/2.0.0.0...2.0.1.0) - 2024-11-20
### Fixed
- show hidden save button
- installation instructions
- show manufacturer link on article details page, if manufacturer hasn't an icon
- prevent encoding HTML entities
### Added
- longdesc will parsed by Smarty
## [1.1.3.1](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.3.0...1.1.3.1) - 2024-11-26
### Fixed
- rename language files
### Changed
- switch to open source
## [1.1.3.0](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.2.1...1.1.3.0) - 2024-11-22
### Fixed
- content encoding on manufacturers list page
- display manufacturer content as additional tab on article details page
- make displaying manufacturer tab on details page configurable
- hide empty HTML elements content
## [2.0.0.0](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.2.1...2.0.0.0) - 2024-11-16
### Added
- displaying content on manufacturers list page configurable
- installability OXID 7.0 - 7.1
## [1.1.2.1](https://git.d3data.de/D3Private/manufacturer-information/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
- show hidden save button
- installation instructions
- show manufacturer link on article details page, if manufacturer hasn't an icon
- prevent encoding HTML entities
### Added
- display manufacturer content as additional tab on article details page
- make displaying manufacturer tab on details page configurable
- hide empty HTML elements content
## [2.0.0.0](https://git.d3data.de/D3Public/MyModule/compare/1.0.0.0...1.1.0.0) - 2024-11-16
### Added
- installability OXID 7.0 - 7.1
## [1.1.2.0](https://git.d3data.de/D3Private/manufacturer-information/compare/1.1.1.0...1.1.2.0) - 2024-11-19
### Fixed

View File

@ -16,8 +16,22 @@
namespace D3\ManufacturerInformation\Modules\Application\Model{
use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Application\Model\ManufacturerList;
class D3ManufacturerLongDesc_parent extends Manufacturer
{
}
class ManufacturerInfoList_parent extends ManufacturerList
{
}
}
namespace D3\ManufacturerInformation\Modules\Core{
use OxidEsales\Eshop\Core\Config;
class ManufacturerConfig_parent extends Config
{
}
}

View File

@ -18,7 +18,6 @@ declare(strict_types=1);
namespace D3\ManufacturerInformation\Modules\Application\Model;
use D3\ManufacturerInformation\Application\Model\Constants;
use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Core\Field;
use OxidEsales\Eshop\Core\Registry;
@ -26,7 +25,7 @@ class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent
{
/**
* @param string $sValue
* @return void
* @return bool
*/
public function d3SetLongdesc(string $sValue): bool
{
@ -43,11 +42,20 @@ class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent
}
/**
* @return Field
* @return field
*/
public function d3GetLongdesc(): Field
public function d3GetLongdesc(): field
{
$longName = $this->_getFieldLongName(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME);
$longName = $this->getFieldLongName(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME);
return $this->$longName ?: oxNew(Field::class);
}
/**
* @return string
*/
public function getD3LongDescTableColumnName(): string
{
return $this->getViewName(true).'__'.Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME;
}
}

View File

@ -17,11 +17,15 @@ declare(strict_types=1);
namespace D3\ManufacturerInformation\Modules\Application\Model;
use D3\ManufacturerInformation\Application\Model\Constants;
use OxidEsales\Eshop\Application\Model\Manufacturer;
use OxidEsales\Eshop\Application\Model\ManufacturerList;
use OxidEsales\Eshop\Core\Field;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\UtilsView;
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingService;
use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface;
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererBridgeInterface;
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererInterface;
class ManufacturerInfoList extends ManufacturerInfoList_parent
{
@ -29,27 +33,33 @@ class ManufacturerInfoList extends ManufacturerInfoList_parent
* @param Manufacturer|D3ManufacturerLongDesc $oManufacturer
* @return void
*/
protected function _addCategoryFields($oManufacturer)
protected function addCategoryFields($oManufacturer): void
{
parent::_addCategoryFields($oManufacturer);
parent::addCategoryFields($oManufacturer);
if (Registry::getConfig()->getConfigParam('d3manufacturerinformation_showManufacturertextOnManufacturerPage')) {
/** @var \OxidEsales\Eshop\Core\UtilsView $oUtilsView */
/** @var ModuleSettingService $setting */
$setting = ContainerFactory::getInstance()->getContainer()->get(ModuleSettingServiceInterface::class);
if ($setting->getBoolean('d3manufacturerinformation_showManufacturertextOnManufacturerPage', 'd3manufacturerinformation')) {
/** @var UtilsView $oUtilsView */
$oUtilsView = Registry::getUtilsView();
$longdesc = $oManufacturer->d3GetLongdesc()->getRawValue() ?? '';
$longdesc = $oManufacturer->d3GetLongdesc( )->getRawValue() ?? '';
$deactivateSmarty = Registry::getConfig()->getConfigParam('deactivateSmartyForCmsContent');
$processLongDescriptions = Registry::getConfig()->getConfigParam('bl_perfParseLongDescinSmarty');
if (!$deactivateSmarty && $processLongDescriptions) {
$longdesc = $oUtilsView->parseThroughSmarty(
$longdesc = $this->getRenderer()->renderFragment(
$longdesc,
$oManufacturer->getId() . $oManufacturer->getLanguage(),
null,
[],
true
) ?? '';
}
$oManufacturer->oxcategories__oxlongdesc = new Field(html_entity_decode($longdesc), Field::T_RAW);
}
}
private function getRenderer(): TemplateRendererInterface
{
return $this->getContainer()->get(TemplateRendererBridgeInterface::class)->getTemplateRenderer();
}
}

View File

@ -0,0 +1,36 @@
<?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);
namespace D3\ManufacturerInformation\Modules\Core;
use D3\ManufacturerInformation\Application\Model\Constants;
use OxidEsales\EshopCommunity\Core\Di\ContainerFacade;
use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface;
class ManufacturerConfig extends ManufacturerConfig_parent
{
/**
* @param string $sName
* @return bool
*/
public function d3GetBoolModuleSettingByName(string $sName): bool
{
$moduleSettingService = ContainerFacade::get(ModuleSettingServiceInterface::class);
return $moduleSettingService->getBoolean(Constants::OXID_MODULE_ID.$sName, Constants::OXID_MODULE_ID);
}
}

View File

@ -2,10 +2,7 @@
# ![D3 Logo](https://logos.oxidmodule.com/d3logo_24x24.svg) Herstellerinformationen fĂĽr OXID eShop
Fügt die Möglichkeit zur Langtextbeschreibung den Herstellern hinzu. Die Anzeige der Informationen erfolgt einstellbar auf der Herstellerübersicht und/oder als Infotab an den Artikeln der Herstellers.
**Diese Software wird unter einer kommerziellen Lizenz vertrieben.**
Kontaktieren Sie uns fĂĽr eine Nutzungslizenz vor der Installation.
Fügt die Möglichkeit zur Langtextbeschreibung den Hersteller hinzu
## Inhaltsverzeichnis
@ -18,9 +15,10 @@ 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.
```bash
composer config repositories.d3manufacturerinformation vcs https://git.d3data.de/D3Public/manufacturer-information.git
composer require d3/manufacturerinformation:"~1.1.0"
composer require d3/manufacturerinformation:"~2.0.0"
```
Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code auszuführen.
@ -28,17 +26,18 @@ Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code aus
```bash
./vendor/bin/oe-eshop-db_migrate migrations:migrate d3manufacturerinformation
./vendor/bin/oe-console o:m:i source/modules/d3/manufacturerinformation
./vendor/bin/oe-console o:m:deact d3manufacturerinformation
./vendor/bin/oe-console o:m:act d3manufacturerinformation
./vendor/bin/oe-console oe:module:install source/modules/d3/manufacturerinformation
./vendor/bin/oe-console oe:module:deactivate d3manufacturerinformation
./vendor/bin/oe-console oe:module:activate d3manufacturerinformation
./vendor/bin/oe-eshop-db_views_generate
```
Leeren Sie anschlieĂźend den Temp Ordner des Shops.
## Lizenz
(Stand: 13.11.2024)
(Stand: 19.12.2024)
```
Copyright (c) D3 Data Development (Inh. Thomas Dartsch)

View File

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -6,7 +6,9 @@
"oxid",
"modules",
"eShop",
"d3"
"d3",
"manufacturer",
"information"
],
"authors": [
{
@ -24,30 +26,21 @@
"proprietary"
],
"require": {
"php": "~7.1 || ~8.0",
"oxid-esales/oxideshop-ce": "v6.6.0 - v6.14.3"
"php": "^8.0",
"oxid-esales/oxideshop-ce": "7.0 - 7.2"
},
"require-dev": {
"oxid-esales/oxideshop-ce": "~6.14.0",
"friendsofphp/php-cs-fixer": "^3.9"
},
"extra": {
"oxideshop": {
"blacklist-filter": [
"*.md",
"composer.json",
".php-cs-fixer.php",
"*.neon"
],
"target-directory": "d3/manufacturerinformation"
}
"friendsofphp/php-cs-fixer": "^3.9",
"phpunit/phpunit": "^9.1.1"
},
"autoload": {
"psr-4": {
"D3\\ManufacturerInformation\\": "../../../source/modules/d3/manufacturerinformation"
"D3\\ManufacturerInformation\\": ""
}
},
"scripts": {
"phpunit": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --config=vendor/d3/manufacturerinformation/Tests/ --no-coverage",
"phpunit-coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --config=vendor/d3/manufacturerinformation/Tests/ --coverage-html=vendor/d3/manufacturerinformation/tests/result/coverage",
"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,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-15"?>
<OX>
<OXMENU id="NAVIGATION_ESHOPADMIN">
<MAINMENU id="mxmainmenu">
<MAINMENU id="mxuadmin">
<SUBMENU id="mxmanufacturer" cl="manufacturer" list="manufacturer_list">
<TAB id="mxd3manufacturerinfolongdesc" cl="d3manufacturerinfolongdesc" />
</SUBMENU>

View File

@ -19,40 +19,43 @@ use D3\ManufacturerInformation\Application\Controller\Admin\ManufacturerInfoLong
use D3\ManufacturerInformation\Application\Model\Constants;
use D3\ManufacturerInformation\Modules\Application\Model\D3ManufacturerLongDesc;
use D3\ManufacturerInformation\Modules\Application\Model\ManufacturerInfoList;
use D3\ManufacturerInformation\Modules\Core\ManufacturerConfig;
use OxidEsales\Eshop\Application\Model\Manufacturer as OEManufacturer;
use OxidEsales\Eshop\Application\Model\ManufacturerList as OEManufacturerList;
use OxidEsales\Eshop\Core\Config as OEConfig;
$sMetadataVersion = '2.1';
$sModuleId = Constants::OXID_MODULE_ID;
$logo = '<img src="https://logos.oxidmodule.com/d3logo.svg" alt="(D3)" style="height:1em;width:1em">';
/**
* Module information
*/
$aModule = [
'id' => $sModuleId,
'title' => $logo.' Herstellerinformationen',
'description' => [
'id' => $sModuleId,
'title' => [
'de' => '(D3) Herstellerinformationen',
'en' => '(D3) Manufacturer information',
],
'description' => [
'de' => 'fĂĽgt Informationen der Hersteller zur Artikelliste hinzu',
'en' => 'adds manufacturer information to the article list',
],
'thumbnail' => 'picture.svg',
'version' => '1.1.4.1',
'author' => $logo.' Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'https://www.oxidmodule.com/',
'controllers' => [
"d3manufacturerinfolongdesc" => ManufacturerInfoLongdesc::class,
'thumbnail' => 'picture.svg',
'version' => '2.0.3.0',
'author' => '(D3) Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'https://www.oxidmodule.com/',
'controllers' => [
"d3manufacturerinfolongdesc" => ManufacturerInfoLongdesc::class,
],
'extend' => [
OEManufacturer::class => D3ManufacturerLongDesc::class,
OEManufacturerList::class => ManufacturerInfoList::class,
'extend' => [
OEManufacturer::class => D3ManufacturerLongDesc::class,
OEManufacturerList::class => ManufacturerInfoList::class,
OEConfig::class => ManufacturerConfig::class,
],
'templates' => [
'd3manufacturerlongdesc.tpl' => 'd3/manufacturerinformation/Application/views/admin/tpl/d3manufacturer_longdesc.tpl',
'templates' => [
'@' . Constants::OXID_MODULE_ID . '/admin/d3manufacturerlongdesc.tpl' => 'views/smarty/admin/d3manufacturerlongdesc.tpl',
],
'settings' => [
'settings' => [
[
'group' => $sModuleId.'_main',
'name' => $sModuleId.'_showManufacturertextOnDetailsPage',
@ -66,7 +69,7 @@ $aModule = [
'value' => true,
],
],
'blocks' => [
'blocks' => [
[
'template' => 'page/details/inc/productmain.tpl',
'block' => 'details_productmain_manufacturersicon',

View File

@ -28,7 +28,7 @@ final class Version20241023154223 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add the D3 manufacturer longdesc column';
return 'Adds the D3 manufacturer longdesc column';
}
public function up(Schema $schema): void

View File

@ -28,7 +28,7 @@ final class Version20241028172608 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add multilang tables for the D3 manufacturer longdesc';
return 'Adds multilang tables for the D3 manufacturer longdesc';
}
public function up(Schema $schema): void

View File

@ -1,4 +1,4 @@
name: D3 manufacturerinformation
migrations_namespace: D3\ManufacturerInformation\Migrations
table_name: d3migrations_manufacturerinformation
migrations_directory: data
table_storage:
table_name: d3migrations_manufacturerinformation
migrations_paths:
'D3\ManufacturerInformation\Migrations': data

View File

@ -25,7 +25,7 @@
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__d3description' );" style="padding: 0;margin: 0;height:0;">
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__d3description' );" style="padding: 0px;margin: 0px;height:0px;">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="d3manufacturerinfolongdesc">
<input type="hidden" name="fnc" value="">

View File

@ -0,0 +1,41 @@
{% include "headitem.html.twig" with {title: "GENERAL_ADMIN_TITLE"|translate} %}
<script type="text/javascript">
function loadLang(obj)
{
var langvar = document.getElementById("catlang");
if (langvar != null )
langvar.value = obj.value;
document.myedit.submit();
}
</script>
{% if readonly %}
{% set readonly = "readonly disabled" %}
{% else %}
{% set readonly = "" %}
{% endif %}
<form name="transfer" id="transfer" action="{{ oViewConf.getSelfLink() }}" method="post">
{{ oViewConf.getHiddenSid()|raw }}
<input type="hidden" name="oxid" value="{{ oxid }}">
<input type="hidden" name="cl" value="d3manufacturerinfolongdesc">
<input type="hidden" name="editlanguage" value="{{ editlanguage }}">
</form>
<form name="myedit" id="myedit" action="{{ oViewConf.getSelfLink() }}" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__d3description' );" style="padding: 0px;margin: 0px;height:0px;">
{{ oViewConf.getHiddenSid()|raw }}
<input type="hidden" name="cl" value="d3manufacturerinfolongdesc">
<input type="hidden" name="fnc" value="">
<input type="hidden" name="oxid" value="{{ oxid }}">
<input type="hidden" name="voxid" value="{{ oxid }}">
<input type="hidden" name="editval[oxmanufacturers__oxid]" value="{{ oxid }}">
<input type="hidden" name="catlang" value="{{ catlang }}">
<input type="hidden" name="editval[oxmanufacturers__d3description]" value="">
{% include "include/category_text_editor.html.twig" %}
</form>
{% include "bottomnaviitem.html.twig" %}
{% include "bottomitem.html.twig" %}

View File

@ -0,0 +1,20 @@
{% extends "page/details/inc/accordeon.html.twig" %}
{% block details_longdescription %}
{{ parent() }}
{% set oManufacturer = oView.getManufacturer() %}
{% set sShopURL = config.getConfigParam('sShopURL') %}
{% set description = oManufacturer.d3GetLongdesc() %}
{% if oManufacturer and config.d3GetBoolModuleSettingByName('_showManufacturertextOnDetailsPage') and description|striptags|trim %}
<div class="col-12 col-md-6">
<div id="manufacturer-collapsible" class="h4" data-bs-target="#manufacturer" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="manufacturer">
{{ translate({ ident: "D3_MANUFACTURERINFO_TAB" }) }}
</div>
<div id="manufacturer" class="collapse" aria-labelledby="manufacturer-collapsible">
{{ include(template_from_string(description)) }}
</div>
</div>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,126 @@
{% extends "page/list/list.html.twig" %}
{% block page_list_listhead %}
{% if listType=='manufacturer' or listType=='vendor'%}
<div class="bg-white list-header mb-4">
<div class="container-xxl">
<div class="row">
<div class="col-12{% if actCategory.getIconUrl() %} col-md-6 order-2 order-md-1 {% endif %}">
{% if showPopBreadcrump %}
<div class="row">
{% include "widget/breadcrumb.html.twig" %}
</div>
{% endif %}
<h1{% if actCategory.oxcategories__oxthumb.value and actCategory.getThumbUrl() %} class="text-white"{% endif %}>
{{ actCategory.getTitle() }}
</h1>
{% if actCategory and actCategory.getShortDescription() and oPageNavigation.actPage == 1 %}
<div id="catDescLocator" class="categoryDescription pb-5">
{{ actCategory.getShortDescription()|raw() }}
</div>
{% endif %}
{% if actCategory.oxcategories__oxlongdesc.value and oPageNavigation.actPage == 1 %}
{% block d3_page_list_long_desc %}
<div id="d3catLongDescLocator" class="categoryDescription">
{{ include(template_from_string(actCategory.oxcategories__oxlongdesc)) }}
</div>
{% endblock %}
{% endif %}
</div>
{% if actCategory.getIconUrl() %}
<div class="col-12 col-md-6 order-1 order-md-1 py-4">
<img src="{{ actCategory.getIconUrl()|raw }}" alt="{{ translate({ ident: "MANUFACTURER_IMAGE_ALT", args: actCategory.getTitle() }) }}">
</div>
{% endif %}
</div>
</div>
</div>
{% else %}
<div class="bg-white list-header mb-4">
<div class="container-xxl">
<div class="row">
<div class="col-12{% if actCategory.oxcategories__oxthumb.value and actCategory.getThumbUrl() %} col-md-6 order-2 order-md-1 {% endif %}">
{% if showPopBreadcrump %}
<div class="row">
{% include "widget/breadcrumb.html.twig" %}
</div>
{% endif %}
<h1 class="h2">
{{ oView.getTitle() }}
</h1>
{% if actCategory and actCategory.getShortDescription() and oPageNavigation.actPage == 1 %}
<div id="catDescLocator" class="categoryDescription pb-3">
{{ actCategory.getShortDescription()|raw() }}
</div>
{% endif %}
{% if actCategory.oxcategories__oxlongdesc.value and oPageNavigation.actPage == 1 %}
{% block page_list_long_desc %}
<div id="catLongDescLocator" class="categoryDescription">
{{ include(template_from_string(actCategory.oxcategories__oxlongdesc)) }}
</div>
{% endblock %}
{% endif %}
</div>
{% if actCategory.oxcategories__oxthumb.value and actCategory.getThumbUrl() %}
<div class="col-12 col-md-6 order-1 order-md-1 py-4 text-right">
<img src="{{ actCategory.getThumbUrl()|raw }}" alt="{{ translate({ ident: "CATEGORY_IMAGE_ALT", args: actCategory.oxcategories__oxtitle.value }) }}" class="w-100 img-fluid">
</div>
{% endif %}
</div>
</div>
</div>
{% endif %}
{% if oView.hasVisibleSubCats() %}
<div class="container-xxl">
{% set iSubCategoriesCount = 0 %}
<div class="cat-list mb-4 pb-3">
{% for category in oView.getSubCatList() %}
{% if category.getIsVisible() %}
{% set iSubCategoriesCount = iSubCategoriesCount+1 %}
{% set iconUrl = category.getIconUrl() %}
{% if listType=='manufacturer' or listType=='vendor' %}
{% set iconAltAttribute = translate({ ident: "MANUFACTURER_IMAGE_ALT", args: category.oxcategories__oxtitle.value }) %}
{% else %}
{% set iconAltAttribute = translate({ ident: "CATEGORY_IMAGE_ALT", args: category.oxcategories__oxtitle.value }) %}
{% endif %}
<a href="{{ category.getLink()|raw }}" class="cat-list-item">
{% if iconUrl %}
<img loading="lazy" src="{{ category.getIconUrl()|raw }}" alt="{{ iconAltAttribute }}" class="cat-list-item-img">
{% else %}
<img loading="lazy" src="{{ oViewConf.getImageUrl('subcat-placeholder.png')|raw }}" alt="{{ iconAltAttribute }}" class="cat-list-item-img">
{% endif %}
<span class="cat-list-item-name">
{{ category.oxcategories__oxtitle.value }}
{% if oView.showCategoryArticlesCount() and (category.getNrOfArticles() > 0) %}
<span class="text-muted">({{ category.getNrOfArticles() }})</span>
{% endif %}
</span>
</a>
{% endif %}
{% if category.getContentCats() %}
{% for ocont in category.getContentCats() %}
<a href="{{ ocont.getLink()|raw }}" class="cat-list-item">
{% if listType=='manufacturer' or listType=='vendor' %}
{% set iconAltAttribute = translate({ ident: "MANUFACTURER_IMAGE_ALT", args: category.oxcategories__oxtitle.value }) %}
{% else %}
{% set iconAltAttribute = translate({ ident: "CATEGORY_IMAGE_ALT", args: category.oxcategories__oxtitle.value }) %}
{% endif %}
<img loading="lazy" src="{{ oViewConf.getImageUrl('subcat-placeholder.png')|raw }}" alt="{{ iconAltAttribute }}" class="cat-list-item-img">
<span class="cat-list-item-name">
{{ ocont.oxcontents__oxtitle.value }}
</span>
</a>
{% endfor %}
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
{% endblock %}