Backport asynchronous thumbnail generation from Kabuki.
This commit is contained in:
53
migrate_thumbs.php
Normal file
53
migrate_thumbs.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/*****************************************************************************
|
||||
* migrate_thumbs.php
|
||||
* Migrates old-style thumbnails (meta) to new table.
|
||||
*
|
||||
* Kabuki CMS (C) 2013-2015, Aaron van Geffen
|
||||
*****************************************************************************/
|
||||
|
||||
// Include the project's configuration.
|
||||
require_once 'config.php';
|
||||
|
||||
// Set up the autoloader.
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
// Initialise the database.
|
||||
$db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
|
||||
Registry::set('db', $db);
|
||||
|
||||
// Do some authentication checks.
|
||||
Session::start();
|
||||
Registry::set('user', Authentication::isLoggedIn() ? Member::fromId($_SESSION['user_id']) : new Guest());
|
||||
|
||||
|
||||
$res = $db->query('
|
||||
SELECT id_asset, variable, value
|
||||
FROM assets_meta
|
||||
WHERE variable LIKE {string:thumbs}',
|
||||
['thumbs' => 'thumb_%']);
|
||||
|
||||
while ($row = $db->fetch_assoc($res))
|
||||
{
|
||||
if (!preg_match('~^thumb_(?<width>\d+)x(?<height>\d+)(?:_(?<mode>c[best]?))?$~', $row['variable'], $match))
|
||||
continue;
|
||||
|
||||
echo 'Migrating ... ', $row['value'], '(#', $row['id_asset'], ")\r";
|
||||
|
||||
$db->insert('replace', 'assets_thumbs', [
|
||||
'id_asset' => 'int',
|
||||
'width' => 'int',
|
||||
'height' => 'int',
|
||||
'mode' => 'string-3',
|
||||
'filename' => 'string-255',
|
||||
], [
|
||||
'id_asset' => $row['id_asset'],
|
||||
'width' => $match['width'],
|
||||
'height' => $match['height'],
|
||||
'mode' => $match['mode'] ?? '',
|
||||
'filename' => $row['value'],
|
||||
]);
|
||||
}
|
||||
|
||||
echo "\nDone\n";
|
||||
|
||||
Reference in New Issue
Block a user