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); } } } }
<?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}\"";