mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 04:23:19 +00:00
fix : permalink creation for subdef_id=0 is now ignored (PHRAS-3280)
fix : label was not escaped for "createMany" permalinks
This commit is contained in:
@@ -397,6 +397,11 @@ class media_Permalink_Adapter implements cache_cacheableInterface
|
|||||||
$insk = ", 1, NOW(), NOW(), " . $connection->quote(self::cleanLabel($unicode, $record->get_title(['removeExtension' => true])));
|
$insk = ", 1, NOW(), NOW(), " . $connection->quote(self::cleanLabel($unicode, $record->get_title(['removeExtension' => true])));
|
||||||
// multiple rows
|
// multiple rows
|
||||||
foreach($subdef_ids as $subdef_id) {
|
foreach($subdef_ids as $subdef_id) {
|
||||||
|
// fake subdefs (icons substitution) for thumb/prev are hardcoded.
|
||||||
|
// since there is no subdef entry, we cant generate a plink
|
||||||
|
if($subdef_id === 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$inserts .= ($inserts ? ',' : '') . '('
|
$inserts .= ($inserts ? ',' : '') . '('
|
||||||
. $connection->quote($subdef_id) . ', '
|
. $connection->quote($subdef_id) . ', '
|
||||||
. $connection->quote($generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS))
|
. $connection->quote($generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS))
|
||||||
@@ -420,16 +425,25 @@ class media_Permalink_Adapter implements cache_cacheableInterface
|
|||||||
* @param Application $app
|
* @param Application $app
|
||||||
* @param databox $databox
|
* @param databox $databox
|
||||||
* @param media_subdef[] $subdefs
|
* @param media_subdef[] $subdefs
|
||||||
* @throws \InvalidArgumentException|Exception
|
* @throws InvalidArgumentException|Exception
|
||||||
*/
|
*/
|
||||||
public static function createMany(Application $app, databox $databox, $subdefs)
|
public static function createMany(Application $app, databox $databox, $subdefs)
|
||||||
{
|
{
|
||||||
|
/** @var unicode $unicode */
|
||||||
|
$unicode = $app['unicode'];
|
||||||
|
|
||||||
$databoxId = $databox->get_sbas_id();
|
$databoxId = $databox->get_sbas_id();
|
||||||
$recordIds = [];
|
$recordIds = [];
|
||||||
/** @var media_subdef[] $uniqSubdefs */
|
/** @var media_subdef[] $uniqSubdefs */
|
||||||
$uniqSubdefs = [];
|
$uniqSubdefs = [];
|
||||||
|
|
||||||
foreach ($subdefs as $media_subdef) {
|
foreach ($subdefs as $media_subdef) {
|
||||||
|
// fake subdefs (icons substitution) for thumb/prev are hardcoded.
|
||||||
|
// since there is no subdef entry, we cant generate a plink
|
||||||
|
if($media_subdef->get_subdef_id() === 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ($media_subdef->get_sbas_id() !== $databoxId) {
|
if ($media_subdef->get_sbas_id() !== $databoxId) {
|
||||||
throw new InvalidArgumentException(sprintf(
|
throw new InvalidArgumentException(sprintf(
|
||||||
'All subdefs should be from databox %d, got %d',
|
'All subdefs should be from databox %d, got %d',
|
||||||
@@ -469,7 +483,10 @@ class media_Permalink_Adapter implements cache_cacheableInterface
|
|||||||
$data[] = [
|
$data[] = [
|
||||||
'subdef_id' => $media_subdef->get_subdef_id(),
|
'subdef_id' => $media_subdef->get_subdef_id(),
|
||||||
'token' => $generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS),
|
'token' => $generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS),
|
||||||
'label' => $records[$media_subdef->get_record_id()]->get_title(['removeExtension' => true]),
|
'label' => self::cleanLabel(
|
||||||
|
$unicode,
|
||||||
|
$records[$media_subdef->get_record_id()]->get_title(['removeExtension' => true])
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user