forked from Public/pics
54 lines
1.4 KiB
PHP
54 lines
1.4 KiB
PHP
|
<?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";
|
||
|
|