science-ation/db/db.update.129.php

58 lines
1.5 KiB
PHP

<?
require_once ('db.update.129.user.inc.php');
function db_update_129_pre()
{
global $pdo;
/* Load all external award sources */
$source_map = array();
$q = $pdo->prepare('SELECT * FROM award_sources');
$q->execute();
while ($r = $q->fetch(PDO::FETCH_ASSOC)) {
/*
* Make a user, use the password generator to get
* a random username
*/
$u = db129_user_create('fair', db129_user_generate_password());
/* Add a Fair Entry */
$name = $r['name'];
$url = $r['url'];
$website = $r['website'];
$username = $r['username'];
$password = $r['password'];
$en = ($r['enabled'] == 'no') ? 'no' : 'yes';
$stmt = $pdo->prepare("INSERT INTO fairs (`id`,`name`,`abbrv`,`type`,
`url`,`website`,`username`,`password`,`enable_stats`,
`enable_awards`,`enable_winners`) VALUES (
'',?, '', 'ysf',?,?,
?,?,'no',?,?)");
$stmt->execute([$name,$url,$web,$username,$password,$en,$en]);
/* Link the fair to the user */
$u['fairs_id'] = $pdo->lastInsertId();
/* Record the old sources_id to new sources_id mapping */
$source_map[$r['id']] = $u['fairs_id'];
db129_user_save($u);
}
/* Map all awards to their new source IDs */
$q = $pdo->prepare('SELECT * FROM award_awards');
$q->execute();
$keys = array_keys($source_map);
while ($r = $q->fetch(PDO::FETCH_ASSOC)) {
$old_id = $r['award_sources_id'];
if (!in_array($old_id, $keys))
continue;
$qq = $pdo->prepare("UPDATE award_awards SET award_sources_id=?
WHERE id=?");
$qq->execute([$source_map[$old_id],$r['id']]);
}
}
?>