*/ //------------------------------------------------------------------------------ // Include files //------------------------------------------------------------------------------ // Include config file $fileName = __DIR__ . DIRECTORY_SEPARATOR . 'epub-loader-config.php'; if (!file_exists($fileName)) { die ('Missing configuration file: ' . $fileName); } require_once($fileName); // Include Calibre database loader class $fileName = $gConfig['cops_directory'] . '/resources/epub-loader/CalibreDbLoader.class.php'; if (!file_exists($fileName)) { die ('Incorrect include file: ' . $fileName); } require_once($fileName); // Include book export class $fileName = $gConfig['cops_directory'] . '/resources/epub-loader/BookExport.class.php'; if (!file_exists($fileName)) { die ('Incorrect include file: ' . $fileName); } require_once($fileName); //------------------------------------------------------------------------------ // Start application //------------------------------------------------------------------------------ // Global vars $gErrorArray = array(); // Get the url parameters $action = isset($_GET['action']) ? $_GET['action'] : null; $dbNum = isset($_GET['dbnum']) ? (int)$_GET['dbnum'] : null; // Include html header require_once(__DIR__ . DIRECTORY_SEPARATOR . 'header.php'); /** * Recursive get files * * @param string Base directory to search in * @param string Search pattern */ function RecursiveGlob($inPath = '', $inPattern = '*') { $res = array(); // Check path if (!is_dir($inPath)) { return $res; } // Get the list of directories if (substr($inPath, -1) != DIRECTORY_SEPARATOR) { $inPath .= DIRECTORY_SEPARATOR; } // Add files from the current directory $files = glob($inPath . $inPattern, GLOB_MARK | GLOB_NOSORT); foreach ($files as $item) { if (substr($item, -1) == DIRECTORY_SEPARATOR) { continue; } $res[] = $item; } // Scan sub directories $paths = glob($inPath . '*', GLOB_MARK | GLOB_ONLYDIR | GLOB_NOSORT); foreach ($paths as $path) { $res = array_merge($res, RecursiveGlob($path, $inPattern)); } return $res; } // Html content if (isset($action) && isset($dbNum)) { if (!isset($gConfig['databases'][$dbNum])) { die ('Incorrect database num: ' . $dbNum); } $dbConfig = $gConfig['databases'][$dbNum]; $dbPath = $dbConfig['db_path']; if (!is_dir($dbPath)) { if (!mkdir($dbPath, 0755, true)) { die ('Cannot create directory: ' . $dbPath); } } $fileName = sprintf('%s%saction_%s.php', __DIR__, DIRECTORY_SEPARATOR, $action); if (!file_exists($fileName)) { die ('Incorrect action file: ' . $fileName); } require_once($fileName); } else { if (!isset($action)) { // Display the available actions $str = ''; $str .= '
' . 'Select action' . '
' . "\n"; $str .= ' ' . "\n"; echo $str; } else { // Display databases $str = ''; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $actionTitle = $gConfig['actions'][$action]; foreach ($gConfig['databases'] as $dbNum => $dbConfig) { $fileList = RecursiveGlob($dbConfig['epub_path'], '*.epub'); $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $str .= '' . "\n"; $numWork++; } $str .= '
' . 'Db num' . '' . 'Db name' . '' . 'Action' . '' . 'Db Path' . '' . 'Epub path' . '' . 'Nb Files' . '
' . $dbNum . '' . $dbConfig['name'] . '' . '' . $actionTitle . '' . '' . $dbConfig['db_path'] . '' . $dbConfig['epub_path'] . '' . count($fileList) . '
' . "\n"; echo $str; } } // Include html footer require_once(__DIR__ . DIRECTORY_SEPARATOR . 'footer.php'); ?>