function check_work($folder_id, $work_url, $work_table, $base_work_dir) {
    $uniq_id = uniqid();
    //Looking for subfolders
    $sql 	= "SELECT * FROM $work_table WHERE parent_id = $folder_id AND filetype ='folder'";             
    $result = Database::query($sql);

    if (Database::num_rows($result)) {
        while ($row = Database::fetch_array($result, 'ASSOC')) {
            check_work($row['id'], $row['url'], $work_table, $base_work_dir);
        }
    }

    //Moving the subfolder in the root
    $new_url = '/'.basename($work_url).'_mv_'.$uniq_id;              
    $new_url = Database::escape_string($new_url);
    $sql = "UPDATE $work_table SET url = '$new_url', parent_id = 0 WHERE id = $folder_id";
    iDatabase::query($sql);

    if (is_dir($base_work_dir.$work_url)) {
        rename($base_work_dir.$work_url, $base_work_dir.$new_url);

        //Rename all files inside the folder                        
        $sql 	= "SELECT * FROM $work_table WHERE parent_id = $folder_id AND filetype ='file'";             
        $result = Database::query($sql);

        if (Database::num_rows($result)) {
            while ($row = Database::fetch_array($result, 'ASSOC')) {                                
                $new_url = "work".$new_url.'/'.basename($row['url']);     
                $new_url = Database::escape_string($new_url);
                $sql = "UPDATE $work_table SET url = '$new_url', parent_id = $folder_id, contains_file = '1' WHERE id = {$row['id']}";                                
                iDatabase::query($sql);
            }
        }
    }
}
/**
 * @param $mainConnection
 * @param $folder_id
 * @param $work_url
 * @param $work_table
 * @param $base_work_dir
 * @param $courseId
 */
function check_work($mainConnection, $folder_id, $work_url, $work_table, $base_work_dir, $courseId)
{
    $uniq_id = uniqid();
    // Looking for subfolders
    $sql = "SELECT * FROM {$work_table} WHERE parent_id = {$folder_id} AND filetype ='folder' AND c_id = {$courseId}";
    $result = $mainConnection->executeQuery($sql);
    $rows = $result->fetchAll();
    if (!empty($rows)) {
        foreach ($rows as $row) {
            check_work($mainConnection, $row['id'], $row['url'], $work_table, $base_work_dir, $courseId);
        }
    }
    // Moving the subfolder in the root.
    $new_url = '/' . basename($work_url) . '_mv_' . $uniq_id;
    $new_url = Database::escape_string($new_url);
    $sql = "UPDATE {$work_table} SET url = '{$new_url}', parent_id = 0 WHERE id = {$folder_id} AND c_id = {$courseId}";
    $mainConnection->executeQuery($sql);
    if (is_dir($base_work_dir . $work_url)) {
        rename($base_work_dir . $work_url, $base_work_dir . $new_url);
        //Rename all files inside the folder
        $sql = "SELECT * FROM {$work_table} WHERE parent_id = {$folder_id} AND filetype ='file' AND c_id = {$courseId}";
        $result = $mainConnection->executeQuery($sql);
        $rows = $result->fetchAll();
        if (!empty($rows)) {
            foreach ($rows as $row) {
                $new_url = "work" . $new_url . '/' . basename($row['url']);
                $sql = "UPDATE {$work_table}\n                        SET url = '{$new_url}', parent_id = {$folder_id}, contains_file = '1'\n                        WHERE id = {$row['id']} AND c_id = {$courseId}";
                $mainConnection->executeQuery($sql);
            }
        }
    }
}
示例#3
0
文件: history.php 项目: taqfu/rla-old
<?php

require_once "../php/config.php";
require_once "../php/work.php";
require_once "../php/actions.php";
require_once "../php/achievements.php";
$connection = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PWD);
$today = 0;
$last_time = 0;
if (!has_work_been_checked()) {
    check_work();
}
$statement = $connection->query("select * from work where action_id!=0 and active=1 order by created desc");
$statement->execute();
while ($work = $statement->fetchObject()) {
    $action = fetch_action($work->action_id);
    $achievement = fetch_achievement($action->achievement_id);
    if ($today != date("m/d/y", strtotime($work->created))) {
        echo "<h2>" . date("m/d/y l", strtotime($work->created)) . "</h2>";
        $today = date("m/d/y", strtotime($work->created));
    }
    if ($last_time != date("H:i", strtotime($work->created))) {
        echo "<div style='margin-top:24px'>" . date("H:i", strtotime($work->created)) . "</div>";
        $last_time = date("H:i", strtotime($work->created));
    }
    echo "<div style='margin-top:8px'>";
    if (!strtotime($work->updated) && $work->worked) {
        echo " <input style='margin-right:8px;' type='button' value='X' onclick=\"cancelWork({$action->id});\" />";
    }
    echo $work->worked ? "Finished " : "<span style='color:red;'>Incompleted </span> ";
    echo strtolower(convert_work_num_to_caption($work->work)) . " work on \"{$action->name}\"";