<?php
/* OPTIONAL UPDATE SCRIPT FOR kOOL RELEASE R33
 * 
 * Set values for the new columns crdate and cruserid using the values found in ko_log.
 * You can set any crdate/cruserid for entries which you imported manually or otherwise don't show up in ko_log.
 * Just set $manualUpdate_crdate and $manualUpdate_cruserid accordingly and enable the manual update.
 *
 * IMPORTANT: Only run this script in your kOOL web directory after you've updated your database by applying changesR33.sql
 *
 */


/* Settings */

$TEST TRUE;
$enableManualUpdate FALSE;
$manualUpdate_crdate "2008-07-01 12:00:00";
$manualUpdate_cruserid 3;
//Set to TRUE if the plugin leute_crdate has been installed
$plugin_leute_crdate FALSE;
//Read in DB settings
require_once("config/ko-config.inc");

/* End of Settings */





//DB connection
require_once("DB.php");
$dsn "mysql://$mysql_user:$mysql_pass@$mysql_server/$mysql_db";
$db DB::connect($dsn);


//Set crdate according to the value set in ko_leute.erfasst (only if plugin leute_crdate has been installed)
$plugin = array();
if(
$plugin_leute_crdate) {
    
$result $db->query("SELECT * FROM `ko_leute` WHERE `erfasst` != '0000-00-00'");
    while(
$row $result->fetchRow(DB_FETCHMODE_ASSOC)) {
        if(!
$TEST$db->query("UPDATE `ko_leute` SET `crdate` = '".$row["erfasst"]." 12:00:00' WHERE `id` = '".$row["id"]."'");
        
$plugin[] = $row["id"];
    }
}

//Get all log entries of type "new_person"
$result $db->query("SELECT * FROM `ko_log` WHERE `type` = 'new_person'");
$cruser $crdate = array();
while(
$row $result->fetchRow(DB_FETCHMODE_ASSOC)) {
    
//Get ID from comment
    
list($id$t) = explode(":"$row["comment"]);
    
$id intval($id);
    if(!
$id) continue;

    
//Get current entry from ko_leute
    
$resultP $db->query("SELECT * FROM `ko_leute` WHERE `id` = '$id'");
    if(
$resultP->numRows() == 0) continue;
    
$person $resultP->fetchRow(DB_FETCHMODE_ASSOC);

    
//Set cruserid for this record in ko_leute
    
if(!$person["cruserid"]) {
        if(!
$TEST$db->query("UPDATE `ko_leute` SET `cruserid` = '".$row["user_id"]."' WHERE `id` = '$id'");
        
$cruser[] = $id;
    }

    
//Only update crdate if not set yet
    
if($person["crdate"] != "0000-00-00 00:00:00") continue;

    
//Set crdate for this record in ko_leute
    
if(!$TEST$db->query("UPDATE `ko_leute` SET `crdate` = '".$row["date"]."' WHERE `id` = '$id'");
    
$crdate[] = $id;
}



//Manually set crdate and cruserid for all imported address
$manual = array();
if(
$enableManualUpdate) {
    
$result $db->query("SELECT * FROM `ko_leute` WHERE `crdate` = '0000-00-00 00:00:00'");
    while(
$row $result->fetchRow(DB_FETCHMODE_ASSOC)) {
        if(!
$TEST$db->query("UPDATE `ko_leute` SET `crdate` = '$manualUpdate_crdate', `cruserid` = '$manualUpdate_cruserid' WHERE `id` = '".$row["id"]."'");
        
$manual[] = $row["id"];
    }
}

print 
"\nUpdate completed:\n\n";
if(
$plugin_leute_crdate) print "updated from plugin: ".sizeof($plugin)."\n";
print 
"cruserid updated: ".sizeof($cruser)."\n";
print 
"crdate updated: ".sizeof($crdate)."\n";
if(
$enableManualUpdate) print "manually updated: ".sizeof($manual)."\n";
if(
$TEST) print "\nTHIS WAS ONLY A TEST RUN. SET \$TEST TO FALSE TO REALLY UPDATE YOUR DATABASE NOW\n";
print 
"\n";
?>