Comparer les révisions

...

12 Révisions
1.0.0 ... main

16 fichiers modifiés avec 411 ajouts et 58 suppressions

Voir le fichier

@ -0,0 +1,87 @@
<?php
namespace D3\CategoryLongtext\Application\Controllers\Admin;
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Application\Model\Manufacturer;
use stdClass;
abstract class d3manufacturerlongtext extends AdminDetailsController
{
public $sFieldName = 'd3longdesc1';
public $_sThisTemplate = 'd3_manufacturer_longtext.tpl';
public function render()
{
$tpl = parent::render();
$this->_aViewData['edit'] = $oManufacturer = oxNew(Manufacturer::class);
$soxId = $this->_aViewData["oxid"] = $this->getEditObjectId();
if (isset($soxId) && $soxId != "-1") {
// load object
$selectedLang = Registry::getRequest()->getRequestEscapedParameter( "selectedlang");
if (!isset($selectedLang)) {
$selectedLang = $this->_iEditLang;
}
$this->_aViewData["selectedlang"] = $selectedLang;
$oManufacturer->loadInLang($selectedLang, $soxId);
//Disable editing for derived items
if ($oManufacturer->isDerived()) {
$this->_aViewData['readonly'] = true;
}
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%", 300, $oManufacturer, "oxmanufacturers__".$this->sFieldName, "list.tpl.css");
return $tpl;
}
public function save()
{
parent::save();
$soxId = $this->getEditObjectId();
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval");
$manufacturer = oxNew( Manufacturer::class);
$selectedLang = Registry::getRequest()->getRequestEscapedParameter( "selectedlang");
$selectedLang = $selectedLang ?: 0;
if ($soxId != "-1") {
$manufacturer->loadInLang($selectedLang, $soxId);
} else {
$aParams['oxmanufacturers__oxid'] = null;
}
//Disable editing for derived items
if ($manufacturer->isDerived()) {
return;
}
$manufacturer->setLanguage(0);
$manufacturer->assign($aParams);
$manufacturer->setLanguage($selectedLang);
$manufacturer->save();
// set oxid if inserted
$this->setEditObjectId($manufacturer->getId());
}
public function getFieldName()
{
return $this->sFieldName;
}
}

Voir le fichier

@ -0,0 +1,8 @@
<?php
namespace D3\CategoryLongtext\Application\Controllers\Admin;
class d3manufacturerlongtext1 extends d3manufacturerlongtext
{
public $sFieldName = 'd3longdesc1';
}

Voir le fichier

@ -0,0 +1,8 @@
<?php
namespace D3\CategoryLongtext\Application\Controllers\Admin;
class d3manufacturerlongtext2 extends d3manufacturerlongtext
{
public $sFieldName = 'd3longdesc2';
}

Voir le fichier

@ -24,4 +24,6 @@ $aLang = [
//Navigation
'charset' => 'UTF-8',
'd3categorylongtext' => $logo.' zweiter Langtext',
'd3manufacturerlongtext1' => $logo.' Langtext 1',
'd3manufacturerlongtext2' => $logo.' Langtext 2',
];

Voir le fichier

@ -21,13 +21,13 @@
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="d3_categories_longdesc">
<input type="hidden" name="cl" value="d3clcategorylongtext">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxcategories__d3longdesc2' );" style="padding: 0px;margin: 0px;height:0px;">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="d3_categories_longdesc">
<input type="hidden" name="cl" value="d3clcategorylongtext">
<input type="hidden" name="fnc" value="">
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="voxid" value="[{$oxid}]">

Voir le fichier

@ -0,0 +1,59 @@
[{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}]
<script type="text/javascript">
<!--
function loadLang(obj)
{
var langvar = document.getElementById("selectedlang");
if (langvar != null )
langvar.value = obj.value;
document.myedit.submit();
}
//-->
</script>
[{if $readonly}]
[{assign var="readonly" value="readonly disabled"}]
[{else}]
[{assign var="readonly" value=""}]
[{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post" onSubmit="copyLongDesc( 'oxmanufacturers__[{$oView->getFieldName()}]' );" style="padding: 0;margin: 0;height:0;">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<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="selectedlang" value="[{$selectedlang}]">
<input type="hidden" value="" name="editval[oxmanufacturers__[{$oView->getFieldName()}]]">
[{$editor}]
<table cellspacing="0" cellpadding="0" border="0" style="width:99%;">
<tr>
<td valign="top" class="edittext">
[{if $languages}]<strong>[{oxmultilang ident="GENERAL_LANGUAGE"}]</strong>
<select name="selectedlang" class="editinput" onchange="loadLang(this)" [{$readonly}]>
[{foreach key=key item=item from=$languages}]
<option value="[{$key}]"[{if $selectedlang == $key}] SELECTED[{/if}]>[{$item->name}]</option>
[{/foreach}]
</select>
[{/if}]
</td>
<tr>
<td>
<input type="submit" class="edittext" name="save" value="[{oxmultilang ident="CATEGORY_TEXT_SAVE"}]" onClick="document.myedit.fnc.value='save'">
</td>
</tr>
</table>
</form>
[{include file="bottomnaviitem.tpl"}]
[{include file="bottomitem.tpl"}]

Voir le fichier

@ -1,5 +1,23 @@
[{assign var="oPageNavigation" value=$oView->getPageNavigation()}]
[{if $oViewConf->getActiveClassName() == 'manufacturerlist' &&
$actCategory && $actCategory->oxmanufacturers__d3longdesc1->value &&
$oPageNavigation->actPage == 1
}]
<div class="manufacturerDescription desc1" id="mnfLongDesc1">[{oxeval var=$actCategory->oxmanufacturers__d3longdesc1}]</div>
[{/if}]
[{$smarty.block.parent}]
[{if $actCategory && $actCategory->oxcategories__d3longdesc2->value }]
[{if $oViewConf->getActiveClassName() == 'alist' &&
$actCategory && $actCategory->oxcategories__d3longdesc2->value &&
$oPageNavigation->actPage == 1
}]
<div class="categoryDescription" id="catLongDesc">[{oxeval var=$actCategory->oxcategories__d3longdesc2}]</div>
[{/if}]
[{if $oViewConf->getActiveClassName() == 'manufacturerlist' &&
$actCategory && $actCategory->oxmanufacturers__d3longdesc2->value &&
$oPageNavigation->actPage == 1
}]
<div class="manufacturerDescription desc2" id="mnfLongDesc2">[{oxeval var=$actCategory->oxmanufacturers__d3longdesc2}]</div>
[{/if}]

37
CHANGELOG.md Fichier normal
Voir le fichier

@ -0,0 +1,37 @@
# Changelog
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/SecondLongDesc/compare/1.4.0...rel_1.x)
## [1.5.0](https://git.d3data.de/D3Private/SecondLongDesc/compare/1.4.0...1.5.0) - 2023-08-02
### Added
- 2 longtexts for manufacturers
## [1.4.0](https://git.d3data.de/D3Private/SecondLongDesc/compare/1.3.0...1.4.0) - 2023-04-04
### Removed
- composer.json version entry
### Added
- composer.json php requirement
## [1.3.0](https://git.d3data.de/D3Private/SecondLongDesc/compare/1.2.1...1.3.0) - 2023-04-03
### Removed
- migration additional method
## [1.2.1](https://git.d3data.de/D3Private/SecondLongDesc/compare/1.1.0...1.2.1) - 2023-04-03
### Fixed
- migration-file
- wrong class call in migration-file
- file extension use-call
## [1.1.0](https://git.d3data.de/D3Private/SecondLongDesc/compare/1.0.0...1.1.0) - 2023-04-03
### Added
- changelog
### Fixed
- wrong cl-call in templates
## [1.0.0](https://git.d3data.de/D3Private/SecondLongDesc/releases/tag/1.0.0) - 2023-04-03
### Added
- implemented module

Voir le fichier

@ -2,11 +2,12 @@
# ![D3 Logo](https://logos.oxidmodule.com/d3logo_24x24.svg) Zweiter Langtext für OXID eShop
Zweiter Kategorielangtext
zusätzliche Langtexte
## Inhaltsverzeichnis
- [Installation](#installation)
- [Changelog](#changelog)
- [Beitragen](#beitragen)
- [Lizenz](#lizenz)
@ -18,14 +19,17 @@ Dieses Paket erfordert einen mit Composer installierten OXID eShop in einer in d
```bash
php composer config repositories.hele vcs gitfhfac@git.d3data.de:Customers/hele.de.git
php composer require d3/categorylongtext:"dev-modules/rel_categorylongtext"
php composer require d3/categorylongtext:"^1"
```
Sofern nötig, bestätigen Sie bitte, dass Sie `package-name` erlauben, Code auszuführen.
Aktivieren Sie das Modul im Shopadmin unter "Erweiterungen -> Module".
## Changelog
Siehe [CHANGELOG](CHANGELOG.md) für weitere Informationen.
## Beitragen
Wenn Sie eine Verbesserungsvorschlag haben, legen Sie einen Fork des Repositories an und erstellen Sie einen Pull Request. Alternativ können Sie einfach ein Issue erstellen. Fügen Sie das Projekt zu Ihren Favoriten hinzu. Vielen Dank.

Voir le fichier

@ -2,4 +2,16 @@ ALTER TABLE `oxcategories`
ADD `D3LONGDESC2` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_1` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_2` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_3` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL;
ALTER TABLE `oxmanufacturers`
ADD `D3LONGDESC1` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC1_1` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC1_2` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC1_3` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL;
ALTER TABLE `oxmanufacturers`
ADD `D3LONGDESC2` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_1` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_2` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ,
ADD `D3LONGDESC2_3` TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL;

Voir le fichier

@ -1,8 +1,7 @@
{
"name": "d3/categorylongtext",
"description": "2. Kategorie Langtext",
"description": "weitere Langtexte",
"type": "oxideshop-module",
"version": "1.0.0",
"keywords": [
"oxid",
"modules",
@ -30,6 +29,7 @@
}
},
"require": {
"php": "^7",
"oxid-esales/oxideshop-ce":"^6"
},
"autoload": {

Voir le fichier

@ -6,5 +6,11 @@
<TAB id="d3categorylongtext" cl="d3clcategorylongtext"/>
</SUBMENU>
</MAINMENU>
<MAINMENU id="mxmainmenu">
<SUBMENU id="mxmanufacturer" cl="manufacturer" list="manufacturer_list">
<TAB id="d3manufacturerlongtext1" cl="d3manufacturerlongtext1"/>
<TAB id="d3manufacturerlongtext2" cl="d3manufacturerlongtext2"/>
</SUBMENU>
</MAINMENU>
</OXMENU>
</OX>

Voir le fichier

@ -13,43 +13,59 @@
declare(strict_types=1);
use D3\CategoryLongtext\Application\Controllers\Admin\AdminDetailsController;
use D3\CategoryLongtext\Application\Controllers\Admin\d3manufacturerlongtext1;
use D3\CategoryLongtext\Application\Controllers\Admin\d3manufacturerlongtext2;
$sMetadataVersion = '2.1';
$sModuleId = 'd3categorylongtext';
$logo = '<img src="https://logos.oxidmodule.com/d3logo.svg" alt="(D3)" style="height:1em;width:1em">';
$logo = '<img src="https://logos.oxidmodule.com/d3logo_individual.svg" alt="(D3)" style="height:1em;width:1em">';
$aModule = array(
$features = <<<FEATURES
<ul>
<li><a href="https://manager.oxidmodule.com/view.php?id=11735">#11735 - 2. Kategorielangtext</a>
<quote>
<strong>Hinweise:</strong>
<b>Voraussetzungen:</b><br>
Datenbank-Felder: <br>
- oxcategories__d3longdesc2<br>
- oxcategories__d3longdesc2_1<br>
- oxcategories__d3longdesc2_2<br>
- oxcategories__d3longdesc2_3<br>
Diese Erweiterung bietet einen zweiten Kategorielangtext.<br>
Angezeigt wird der zweite Langtext unter der Artikelauflistung in der Listenansicht.
</quote>
</li>
<li><a href="https://manager.oxidmodule.com/view.php?id=12128">#12128 - Herstellerlangtexte</a></li>
</ul>
FEATURES;
$aModule = [
'id' => $sModuleId,
'title' => $logo.' zweiter Kategorielangtext',
'description' => '<strong>Hinweise:</strong>'
. '<b>Voraussetzungen:</b><br>'
. 'Datenbank-Felder: <br>'
. '- oxcategories__d3longdesc2<br>'
. '- oxcategories__d3longdesc2_1<br>'
. '- oxcategories__d3longdesc2_2<br>'
. '- oxcategories__d3longdesc2_3<br>'
. 'Diese Erweiterung bietet einen zweiten Kategorielangtext.<br>' //
. 'Angezeigt wird der zweite Langtext unter der Artikelauflistung in der Listenansicht.',
'title' => $logo.' weitere Kategorie- und Herstellerlangtexte',
'description' => $features,
'thumbnail' => 'picture.png',
'version' => '1.0.0',
'version' => '1.5.0',
'author' => $logo.' Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'https://www.oxidmodule.com/',
'controllers' => [
'd3clcategorylongtext' => AdminDetailsController::class
'd3clcategorylongtext' => AdminDetailsController::class,
'd3manufacturerlongtext1' => d3manufacturerlongtext1::class,
'd3manufacturerlongtext2' => d3manufacturerlongtext2::class,
],
'templates' => [
'd3_categories_longtext.tpl' => 'd3/categorylongtext/Application/views/admin/tpl/d3_categories_longtext.tpl',
'd3_manufacturer_longtext.tpl' => 'd3/categorylongtext/Application/views/admin/tpl/d3_manufacturer_longtext.tpl',
],
'blocks' => [
[
'template' => 'page/list/list.tpl',
'block' => 'page_list_listbody',
'file' => 'Application/views/blocks/list_second_longdescription.tpl',
],
]
],
'events' => [
'onActivate' => '\D3\CategoryLongtext\Setup\Events::onActivate',
//'onDeactivate' => '\D3\CategoryLongtext\Events\Events::onDeactivate'
]
);
];

Voir le fichier

@ -5,11 +5,11 @@ declare(strict_types=1);
namespace D3\CategoryLongtext\Migrations;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Types\Type;
use Doctrine\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\TextType;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
@ -26,8 +26,6 @@ final class Version20230403083243 extends AbstractMigration
/**
* @throws SchemaException
* @throws DBALException
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function up(Schema $schema) : void
{
@ -35,46 +33,22 @@ final class Version20230403083243 extends AbstractMigration
$table = $schema->getTable('oxcategories');
$table->hasColumn('D3LONGDESC2') ?:
$table->addColumn('D3LONGDESC2', (new TextType::class)->getName())
if (!$table->hasColumn('D3LONGDESC2')){
$table->addColumn('D3LONGDESC2', (Type::getType('text')->getName()))
->setNotnull(true);
}
$table->hasColumn('D3LONGDESC2_1') ?:
$table->addColumn('D3LONGDESC2_1', (new TextType::class)->getName())
$table->addColumn('D3LONGDESC2_1', (Type::getType('text')->getName()))
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_2') ?:
$table->addColumn('D3LONGDESC2_2', (new TextType::class)->getName())
$table->addColumn('D3LONGDESC2_2', (Type::getType('text')->getName()))
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_3') ?:
$table->addColumn('D3LONGDESC2_3', (new TextType::class)->getName())
$table->addColumn('D3LONGDESC2_3', (Type::getType('text')->getName()))
->setNotnull(true);
$this->postProcesses();
}
/**
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function postProcesses(){
$sAltering = 'ALTER TABLE oxcategories MODIFY
? text
CHARACTER SET latin1
COLLATE latin1_swedish_ci;';
$aAlterColumns = [
'D3LONGDESC2',
'D3LONGDESC2_1',
'D3LONGDESC2_2',
'D3LONGDESC2_3'
];
foreach ($aAlterColumns as $column){
DatabaseProvider::getDb()->execute($sAltering, $column);
}
}
public function down(Schema $schema) : void

Voir le fichier

@ -0,0 +1,61 @@
<?php
declare(strict_types=1);
namespace D3\CategoryLongtext\Migrations;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\TextType;
use Doctrine\DBAL\Types\Type;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20230802094023 extends AbstractMigration
{
public function getDescription() : string
{
return 'add longtext 1 field in manufacturer table';
}
/**
* @throws SchemaException
* @throws DBALException
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function up(Schema $schema) : void
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$table = $schema->getTable('oxmanufacturers');
$table->hasColumn('D3LONGDESC1') ?:
$table->addColumn('D3LONGDESC1', (Type::getType('text')->getName()))
->setNotnull(true);
$table->hasColumn('D3LONGDESC1_1') ?:
$table->addColumn('D3LONGDESC1_1', (Type::getType('text')->getName()))
->setNotnull(true);
$table->hasColumn('D3LONGDESC1_2') ?:
$table->addColumn('D3LONGDESC1_2', (Type::getType('text')->getName()))
->setNotnull(true);
$table->hasColumn('D3LONGDESC1_3') ?:
$table->addColumn('D3LONGDESC1_3', (Type::getType('text')->getName()))
->setNotnull(true);
}
public function down(Schema $schema) : void
{
// this down() migration is auto-generated, please modify it to your needs
}
}

Voir le fichier

@ -0,0 +1,61 @@
<?php
declare(strict_types=1);
namespace D3\CategoryLongtext\Migrations;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\TextType;
use Doctrine\DBAL\Types\Type;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20230802094252 extends AbstractMigration
{
public function getDescription() : string
{
return 'add longtext 2 field in manufacturer table';
}
/**
* @throws SchemaException
* @throws DBALException
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function up(Schema $schema) : void
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$table = $schema->getTable('oxmanufacturers');
$table->hasColumn('D3LONGDESC2') ?:
$table->addColumn('D3LONGDESC2', (Type::getType('text'))->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_1') ?:
$table->addColumn('D3LONGDESC2_1', (Type::getType('text'))->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_2') ?:
$table->addColumn('D3LONGDESC2_2', (Type::getType('text'))->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_3') ?:
$table->addColumn('D3LONGDESC2_3', (Type::getType('text'))->getName())
->setNotnull(true);
}
public function down(Schema $schema) : void
{
// this down() migration is auto-generated, please modify it to your needs
}
}