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

91 lines
2.7 KiB
PHP

<?
/* This file may contain 2 functions, a db_update_$ver_pre() and a
* db_update_$ver_post(). _pre() is called before the SQL patch is
*applied, and as expected, _post() is called after.
*
* These functions are called from the main db_update.php file, and included
* once, so any global variables declared in here WILL REMAIN across both
* calls. meaning you can pull some stuff out of the database in _pre(), and
* then the patch will be applied, and they it can be inserted back into the
* database in _post().
* Also note that MULTIPLE php scripts could be included if the db update is
* large, so global variable names probably shouldn't conflict... put the version
* number in them*/
$update_62_committee = array();
function db_update_62_pre()
{
global $update_62_committee;
$q = mysql_query("SELECT * FROM committees_members");
while($r = mysql_fetch_assoc($q)) {
$update_62_committee[] = $r;
}
}
function db_update_62_post()
{
global $update_62_committee;
global $config;
foreach($update_62_committee as $c) {
list($fn, $ln) = explode(' ', $c['name'], 2);
$username = $c['email'];
$fn = mysql_escape_string($fn);
$ln = mysql_escape_string($ln);
if($config['committee_password_expiry_days'] > 0) {
$passwordexpiry = "DATE_ADD(CURDATE(),
INTERVAL {$config['committee_password_expiry_days']} DAY)";
} else {
$passwordexpiry = "NULL";
}
$deleted = ($c['deleted'] == 'Y') ? 'yes' : 'no';
$q = "INSERT INTO users
(`types`,`firstname`,`lastname`,`username`,`password`,`passwordexpiry`,
`email`,`phonehome`,`phonework`,`phonecell`,`fax`,`organization`,
`created`,`deleted`)
VALUES ('committee','$fn', '$ln', '$username',
'".mysql_escape_string($c['password'])."',
$passwordexpiry,
'{$c['email']}',
'{$c['phonehome']}',
'{$c['phonework']}',
'{$c['phonecell']}',
'{$c['fax']}',
'".mysql_escape_string($c['organization'])."',
NOW(),
'$deleted')";
mysql_query($q);
echo "$q\n";
$id = mysql_insert_id();
$access_admin = ($c['access_admin'] == 'Y') ? 'yes' : 'no';
$access_config = ($c['access_config'] == 'Y') ? 'yes' : 'no';
$access_super = ($c['access_super'] == 'Y') ? 'yes' : 'no';
$displayemail = ($c['displayemail'] == 'Y') ? 'yes' : 'no';
$q = "INSERT INTO users_committee(`users_id`,`emailprivate`,
`ord`,`displayemail`,`access_admin`,`access_config`,
`access_super`) VALUES (
'$id', '{$c['emailprivate']}',
'{$c['ord']}',
'$displayemail',
'$access_admin',
'$access_config',
'$access_super')";
mysql_query($q);
echo "$q\n";
echo mysql_error();
/* Update committee links */
$q = "UPDATE committees_link SET users_id='$id'
WHERE committees_members_id='{$c['id']}'";
mysql_query($q);
echo "$q\n";
}
}
?>