17 Commits

Author SHA1 Message Date
32eba8f6fe adjust version information 2024-11-21 11:47:00 +01:00
9de7f7e096 improve manufacturer block content 2024-11-21 11:20:53 +01:00
4777681f2d fix WYSIWYG editor content 2024-11-21 10:14:12 +01:00
e3ff45716a fix CHANGELOG 2024-11-21 08:03:40 +01:00
d973b37cb6 adjust version information 2024-11-19 10:53:13 +01:00
ef59e0a090 improve code style by CS Fixer 2024-11-19 10:50:33 +01:00
e4bc788538 add noencode 2024-11-19 09:57:38 +01:00
23cfaf0c32 improve code style 2024-11-19 09:54:00 +01:00
3a04e15579 don't hide "save" button on larger input form 2024-11-19 09:48:33 +01:00
221445573c show no content if it contains only empty elements 2024-11-19 09:47:27 +01:00
0f17c8726d fix installation instructions 2024-11-19 08:53:01 +01:00
4723b6ab4d adjust version information 2024-11-18 16:02:35 +01:00
f2dbf59717 change description property name to lowercase (UC is not allowed in OXID), fix HTML entity encode 2024-11-18 15:58:13 +01:00
20d9dd83a6 make displaying manufacturer tab on details page configurable 2024-11-18 13:41:28 +01:00
bcc215238a display manufacturer content as additional tab on article details page 2024-11-18 12:04:53 +01:00
e80d8e87f3 show manufacturer on article details page if manufacturer hasn't an icon 2024-11-18 11:18:31 +01:00
214bee4a2e update installation instructions 2024-11-18 10:54:56 +01:00
26 changed files with 530 additions and 511 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;
@ -19,13 +32,12 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
{ {
parent::render(); parent::render();
/** @var Manufacturer|D3ManufacturerLongDesc $oManufacturer */
$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::getRequest()->getRequestEscapedParameter("catlang"); $d3manufacturerlang = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang");
if (!isset($d3manufacturerlang)) { if (!isset($d3manufacturerlang)) {
$d3manufacturerlang = $this->_iEditLang; $d3manufacturerlang = $this->_iEditLang;
@ -48,9 +60,9 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
} }
} }
$this->_aViewData["editor"] = $this->generateTextEditor("100%", 280, $oManufacturer, $oManufacturer->getD3LongDescTableColumnName(), "list.css"); $this->_aViewData["editor"] = $this->generateTextEditor("100%", 280, $oManufacturer, "oxmanufacturers__d3description", "list.tpl.css");
return "@d3manufacturerinformation/admin/d3manufacturerlongdesc"; return "d3manufacturerlongdesc.tpl";
} }
/** /**
@ -61,7 +73,7 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
{ {
parent::save(); parent::save();
$iManufacturerLang = intval(\OxidEsales\Eshop\Core\Registry::getRequest()->getRequestEscapedParameter("catlang")); $iManufacturerLang = intval(\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter("catlang"));
$sOXID = $this->getEditObjectId(); $sOXID = $this->getEditObjectId();
$this->setEditObjectId($sOXID); $this->setEditObjectId($sOXID);
@ -80,35 +92,18 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval"); $aParams = Registry::getRequest()->getRequestEscapedParameter("editval");
$oManufacturer->assign($aParams); $oManufacturer->assign($aParams);
if (false === is_null($this->d3GetLongdescParamValue($oManufacturer))) { if (false === is_null($this->d3GetLongdescParamValue())) {
$oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue($oManufacturer)); $oManufacturer->d3SetLongdesc($this->d3GetLongdescParamValue());
$oManufacturer->save(); $oManufacturer->save();
} }
} }
/** /**
* @param $oManufacturer
* @param $sField
* @return string * @return string
*/ */
protected function getEditValue($oManufacturer, $sField) public function d3GetLongdescParamValue(): string
{ {
$sEditObjectValue = ''; return (string) $aParams = Registry::getRequest()->getRequestEscapedParameter("editval")['oxmanufacturers__d3description'];
if ($oManufacturer and $oManufacturer->getId()) {
$sEditObjectValue = $oManufacturer->getFieldData(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME);
}
return $sEditObjectValue;
}
/**
* @param Manufacturer|D3ManufacturerLongDesc $oManufacturer
* @return string
*/
public function d3GetLongdescParamValue(Manufacturer $oManufacturer) :string
{
return (string) $aParams = Registry::getRequest()->getRequestEscapedParameter("editval")[$oManufacturer->getD3LongDescTableColumnName()];
} }
/** /**
@ -119,7 +114,7 @@ class ManufacturerInfoLongdesc extends AdminDetailsController
* *
* @return mixed * @return mixed
*/ */
protected function processLongDesc($sValue) protected function _processLongDesc($sValue)
{ {
$aSearch = ['&amp;nbsp;', '&amp;', '&quot;', '&lang=', '<p>&nbsp;</p>', '<p>&nbsp; </p>']; $aSearch = ['&amp;nbsp;', '&amp;', '&quot;', '&lang=', '<p>&nbsp;</p>', '<p>&nbsp; </p>'];
$aReplace = ['&nbsp;', '&', '"', '&amp;lang=', '', '']; $aReplace = ['&nbsp;', '&', '"', '&amp;lang=', '', ''];

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

@ -0,0 +1,26 @@
<?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',
];

View File

@ -0,0 +1,26 @@
<?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',
];

View File

@ -25,7 +25,7 @@
<input type="hidden" name="editlanguage" value="[{$editlanguage}]"> <input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form> </form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__D3DESCRIPTION' );" style="padding: 0px;margin: 0px;height:0px;"> <form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__d3description' );" style="padding: 0;margin: 0;height:0;">
[{$oViewConf->getHiddenSid()}] [{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="d3manufacturerinfolongdesc"> <input type="hidden" name="cl" value="d3manufacturerinfolongdesc">
<input type="hidden" name="fnc" value=""> <input type="hidden" name="fnc" value="">
@ -33,9 +33,11 @@
<input type="hidden" name="voxid" value="[{$oxid}]"> <input type="hidden" name="voxid" value="[{$oxid}]">
<input type="hidden" name="editval[oxmanufacturers__oxid]" value="[{$oxid}]"> <input type="hidden" name="editval[oxmanufacturers__oxid]" value="[{$oxid}]">
<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="">
<div style="margin-bottom: 40px">
[{include file="include/category_text_editor.tpl"}] [{include file="include/category_text_editor.tpl"}]
</div>
</form> </form>
[{include file="bottomnaviitem.tpl"}] [{include file="bottomnaviitem.tpl"}]

View File

@ -1,11 +0,0 @@
<?php
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Langtext',
);

View File

@ -1,11 +0,0 @@
<?php
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Text',
);

View File

@ -1,11 +0,0 @@
<?php
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Langtext',
);

View File

@ -1,11 +0,0 @@
<?php
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
'charset' => 'UTF-8',
'mxd3manufacturerinfolongdesc' => 'Text',
);

View File

@ -0,0 +1,10 @@
[{if $oManufacturer->oxmanufacturers__oxicon->value}]
[{$smarty.block.parent}]
[{else}]
<div class="action-links text-left">
<a href="[{$oManufacturer->getLink()}]" title="[{$oManufacturer->oxmanufacturers__oxtitle->value}]">
[{oxmultilang ident="MANUFACTURER" suffix="COLON"}] [{$oManufacturer->oxmanufacturers__oxtitle->value}]
</a>
<span itemprop="brand" class="hidden">[{$oManufacturer->oxmanufacturers__oxtitle->value}]</span>
</div>
[{/if}]

View File

@ -0,0 +1,18 @@
[{$smarty.block.parent}]
[{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}]
[{capture append="tabs"}]<a href="#manufacturertab" class="nav-link[{if $blFirstTab}] active[{/if}]" data-toggle="tab">[{oxmultilang ident="MANUFACTURER"}]</a>[{/capture}]
[{capture append="tabsContent"}]
<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,9 +4,29 @@ 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).
## [2.0.0.0](https://git.d3data.de/D3Public/MyModule/compare/1.0.0.0...1.1.0.0) - 2024-11-16 ## [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 ### Added
- installability OXID 7.0 - 7.1 - 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
### Fixed
- 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
## [1.1.0.0](https://git.d3data.de/D3Public/MyModule/compare/1.0.0.0...1.1.0.0) - 2024-11-13 ## [1.1.0.0](https://git.d3data.de/D3Public/MyModule/compare/1.0.0.0...1.1.0.0) - 2024-11-13
### Added ### Added

View File

@ -1,24 +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;
use OxidEsales\Eshop\Application\Model\ManufacturerList;
class D3ManufacturerLongDesc_parent extends Manufacturer {} class D3ManufacturerLongDesc_parent extends Manufacturer
{
class ManufacturerInfoList_parent extends ManufacturerList {} }
} }

View File

@ -1,12 +1,25 @@
<?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\Registry; use OxidEsales\Eshop\Core\Registry;
class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent
@ -30,18 +43,11 @@ class D3ManufacturerLongDesc extends D3ManufacturerLongDesc_parent
} }
/** /**
* @return string * @return Field
*/ */
public function d3GetLongdesc(): string public function d3GetLongdesc(): Field
{ {
return $this->getFieldData(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME); $longName = $this->getCoreTableName().'__'.strtolower(Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME);
} return $this->$longName;
/**
* @return string
*/
public function getD3LongDescTableColumnName() :string
{
return $sParamName = $this->getViewName(true).'__'.Constants::D3_OXMANUFACTURERS_LONGDESC_FIELDNAME;
} }
} }

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;
@ -16,9 +28,9 @@ 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,26 +15,26 @@ 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:"~2" composer require d3/manufacturerinformation:"~1.1.0"
./vendor/bin/oe-eshop-db_migrate migrations:migrate d3manufacturerinformation
./vendor/bin/oe-console oe:module:install ./vendor/d3/manufacturerinformation/
./vendor/bin/oe-console oe:module:activate d3manufacturerinformation
./vendor/bin/oe-console oe:module:deactivate d3manufacturerinformation
``` ```
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.
Aktivieren Sie das Modul im Shopadmin unter "Erweiterungen -> Module". ```bash
./vendor/bin/oe-eshop-db_migrate migrations:migrate d3manufacturerinformation
Aktualisieren Sie anschlieĂźend die Datenbank-Views und leeren den Temp Ordner des Shops. ./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-eshop-db_views_generate
```
Leeren Sie anschlieĂźend den Temp Ordner des Shops.
## Lizenz ## Lizenz
(Stand: 16.11.2024) (Stand: 13.11.2024)
``` ```
Copyright (c) D3 Data Development (Inh. Thomas Dartsch) Copyright (c) D3 Data Development (Inh. Thomas Dartsch)

View File

@ -6,9 +6,7 @@
"oxid", "oxid",
"modules", "modules",
"eShop", "eShop",
"d3", "d3"
"manufacturer",
"information"
], ],
"authors": [ "authors": [
{ {
@ -26,12 +24,31 @@
"proprietary" "proprietary"
], ],
"require": { "require": {
"php": "^8.0", "php": "~7.1 || ~8.0",
"oxid-esales/oxideshop-ce": "7.0 - 7.1" "oxid-esales/oxideshop-ce": "v6.6.0 - v6.14.3"
},
"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"
}
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"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

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,13 +1,15 @@
<?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
*/ */
@ -22,32 +24,52 @@ use OxidEsales\Eshop\Application\Model\ManufacturerList as OEManufacturerList;
$sMetadataVersion = '2.1'; $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 * Module information
*/ */
$aModule = [ $aModule = [
'id' => Constants::OXID_MODULE_ID, 'id' => $sModuleId,
'title' => [ 'title' => $logo.' Herstellerinformationen',
'de' => '(D3) Herstellerinformationen',
'en' => '(D3) Manufacturer information',
],
'description' => [ 'description' => [
'de' => 'fĂĽgt Informationen der Hersteller zur Artikelliste hinzu', 'de' => 'fĂĽgt Informationen der Hersteller zur Artikelliste hinzu',
'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' => '2.0.0.0', 'version' => '1.1.2.1',
'author' => '(D3) 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' => [
'@' . Constants::OXID_MODULE_ID . '/admin/d3manufacturerlongdesc.tpl' => 'views/smarty/admin/d3manufacturerlongdesc.tpl', 'd3manufacturerlongdesc.tpl' => 'd3/manufacturerinformation/Application/views/admin/tpl/d3manufacturer_longdesc.tpl',
],
'settings' => [
[
'group' => $sModuleId.'_main',
'name' => $sModuleId.'_showManufacturertextOnDetailsPage',
'type' => 'bool',
'value' => true,
],
],
'blocks' => [
[
'template' => 'page/details/inc/productmain.tpl',
'block' => 'details_productmain_manufacturersicon',
'file' => 'Application/views/blocks/page/details/inc/details_productmain_manufacturersicon.html.tpl',
],
[
'template' => 'page/details/inc/tabs.tpl',
'block' => 'details_tabs_invite',
'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;
@ -26,14 +39,16 @@ final class Version20241023154223 extends AbstractMigration
} }
public function down(Schema $schema): void public function down(Schema $schema): void
{} {
}
/** /**
* @param Schema $schema * @param Schema $schema
* @return void * @return void
* @throws \Doctrine\DBAL\Schema\SchemaException * @throws \Doctrine\DBAL\Schema\SchemaException
*/ */
public function d3AddLongdescColumnToOxmanufacturers(Schema $schema){ public function d3AddLongdescColumnToOxmanufacturers(Schema $schema)
{
$table = !$schema->hasTable('oxmanufacturers') ? $table = !$schema->hasTable('oxmanufacturers') ?
$schema->createTable('oxmanufacturers') : $schema->createTable('oxmanufacturers') :
$schema->getTable('oxmanufacturers'); $schema->getTable('oxmanufacturers');

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;
@ -26,14 +39,16 @@ final class Version20241028172608 extends AbstractMigration
} }
public function down(Schema $schema): void public function down(Schema $schema): void
{} {
}
/** /**
* @param Schema $schema * @param Schema $schema
* @return void * @return void
* @throws \Doctrine\DBAL\Schema\SchemaException * @throws \Doctrine\DBAL\Schema\SchemaException
*/ */
public function d3AddLongdescMultilangColumnsToOxmanufacturers(Schema $schema){ public function d3AddLongdescMultilangColumnsToOxmanufacturers(Schema $schema)
{
$table = !$schema->hasTable('oxmanufacturers') ? $table = !$schema->hasTable('oxmanufacturers') ?
$schema->createTable('oxmanufacturers') : $schema->createTable('oxmanufacturers') :
$schema->getTable('oxmanufacturers'); $schema->getTable('oxmanufacturers');

View File

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

View File

@ -1,41 +0,0 @@
{% 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

@ -1,126 +0,0 @@
{% 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 %}