Compare commits
8 commits
Author | SHA1 | Date | |
---|---|---|---|
d7e796eea5 | |||
2119e62bbb | |||
e94b044d3a | |||
0876923bf5 | |||
40097be56e | |||
de816ce05c | |||
683d940f94 | |||
9238f4fea5 |
4 changed files with 49 additions and 5 deletions
|
@ -17,6 +17,8 @@ use Neos\Flow\Annotations as Flow;
|
|||
*/
|
||||
class AssetAttribute
|
||||
{
|
||||
protected const MAX_VALUE_LENGTH = 250;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
@ -39,6 +41,12 @@ class AssetAttribute
|
|||
*/
|
||||
protected array $replacementMap;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text", nullable=true)
|
||||
* @var string|null
|
||||
*/
|
||||
protected ?string $longValue = null;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
|
@ -47,9 +55,14 @@ class AssetAttribute
|
|||
public function __construct(string $name, string $value, string $urlValue = '')
|
||||
{
|
||||
$this->name = $name;
|
||||
if (\mb_strlen($value) > self::MAX_VALUE_LENGTH) {
|
||||
$this->longValue = $value;
|
||||
$this->value = \mb_substr($value, 0, 250);
|
||||
} else {
|
||||
$this->value = $value;
|
||||
}
|
||||
if (!$urlValue) {
|
||||
$urlValue = $value;
|
||||
$urlValue = $this->value;
|
||||
}
|
||||
$this->urlValue = $urlValue;
|
||||
}
|
||||
|
@ -62,7 +75,7 @@ class AssetAttribute
|
|||
\array_column($this->replacementMap, 'value'),
|
||||
$this->urlValue
|
||||
);
|
||||
$this->urlValue = \urlencode(\strtolower($this->urlValue));
|
||||
$this->urlValue = \mb_substr(\urlencode(\strtolower($this->urlValue)), 0, 250);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,7 +92,7 @@ class AssetAttribute
|
|||
*/
|
||||
public function getValue(): string
|
||||
{
|
||||
return $this->value;
|
||||
return $this->longValue ?? $this->value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"Neos.Media.Browser": "resource://Neos.Media.Browser/Private/Partials"
|
||||
|
||||
-
|
||||
requestFilter: "parentRequest.isPackage('Neos.Neos') && isFormat('html') && isPackage('Neos.Media.Browser')"
|
||||
requestFilter: "parentRequest.isPackage('Neos.Neos') && isFormat('html') && isPackage('Neos.Media.Browser') && isAction('edit')"
|
||||
options:
|
||||
templateRootPaths:
|
||||
"DigiComp.AssetAttributes": "resource://DigiComp.AssetAttributes/Private/Templates"
|
||||
|
|
28
Migrations/Mysql/Version20240625154316.php
Normal file
28
Migrations/Mysql/Version20240625154316.php
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Neos\Flow\Persistence\Doctrine\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20240625154316 extends AbstractMigration
|
||||
{
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE digicomp_assetattributes_domain_model_assetattribute ADD longvalue LONGTEXT DEFAULT NULL');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE digicomp_assetattributes_domain_model_assetattribute DROP longvalue');
|
||||
}
|
||||
}
|
|
@ -15,6 +15,9 @@
|
|||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-develop": "1.0.x-dev"
|
||||
},
|
||||
"neos": {
|
||||
"package-key": "DigiComp.AssetAttributes"
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue