splitted_url[1]) && $user->rankIsHigher("moderator")) { switch ($controller->splitted_url[1]) { case '': case 'admin': $head['title'] = "Administration"; include ($config['views_folder']."d.admin.html"); break; case 'git-pull': if ($user->rankIsHigher("administrator")) { $head['title'] = "Mise à jour"; $output = array(); chdir($config['abs_root_folder']); exec("git pull", $output); include ($config['views_folder']."d.admin.git-pull.html"); } else { $notfound = 1; } break; case 'logs': if ($user->rankIsHigher("moderator")) { $head['title'] = "Logs"; $files_list = scandir($config['logs_folder']); if (isset($controller->splitted_url[2]) && is_numeric($controller->splitted_url[2]) && intval($controller->splitted_url[2]) < count($files_list)-2) { $filenb = $controller->splitted_url[2]; } else { $filenb = 0; } chdir($config['logs_folder']); exec("tail -n 200 ".$files_list[$filenb+2]." | tac", $output); include ($config['views_folder']."d.admin.logs.html"); } else { $notfound = 1; } break; case 'wiki-files': if ($user->rankIsHigher("moderator")) { $head['title'] = "Fichiers attachés au wiki"; $rows_per_pages = 50; $files_folder = $config['medias_folder']."wiki/"; // Get the file list $files_list = scandir($files_folder); // Populate table foreach ($files_list as $file) { $file_path = $files_folder.$file; if (is_file($file_path)) { $file_info = [ 'name' => $file, 'type' => mime_content_type($file_path), 'creation_date' => date("Y-m-d H:i:s", filectime($file_path)), 'size' => filesize($file_path), ]; $files[] = $file_info; } } $filenb = count($files); // Manage sorting if(isset($_GET['orderby'])) $orderby = $_GET['orderby']; else $orderby = 'name'; if(isset($_GET['order']) && $_GET['order']=='ASC') { $order = 'ASC'; usort($files, function ($a, $b) use ($orderby) { return $a[$orderby] <=> $b[$orderby]; }); } else { $order = 'DESC'; usort($files, function ($a, $b) use ($orderby) { return $b[$orderby] <=> $a[$orderby]; }); } // Get the correct page number if (!isset($controller->splitted_url[2]) OR $controller->splitted_url[2]=="" OR $controller->splitted_url[2]=="0" OR !is_numeric($controller->splitted_url[2])) { $page = 0; } else { $page = $controller->splitted_url[2] - 1; } // In case the wanted page is too big if($rows_per_pages * $page >= $filenb) $page = 0; $first = $page*$rows_per_pages+1; $last = (($page+1)*$rows_per_pages > $filenb ? $filenb : ($page+1)*$rows_per_pages); include ($config['views_folder']."d.admin.wiki-files.html"); } else { $notfound = 1; } break; default: $notfound = 1; break; } } else if($user->rankIsHigher("moderator")) { $head['title'] = "Administration"; include ($config['views_folder']."d.admin.html"); } else { $notfound = 1; } function getFontAwesomeIcon($mimeType) { $icons = [ 'application/pdf' => 'fa-file-pdf', 'image/jpeg' => 'fa-file-image', 'image/png' => 'fa-file-image', 'application/zip' => 'fa-file-archive', 'text/plain' => 'fa-file-alt', 'application/vnd.ms-excel' => 'fa-file-excel', 'application/msword' => 'fa-file-word', 'video/mp4' => 'fa-file-video', 'audio/mpeg' => 'fa-file-audio', ]; return $icons[$mimeType] ?? 'fa-file'; // Default } ?>