diff --git a/ajax/getfoldercontents.php b/ajax/getfoldercontents.php index 1dfd28b..e7c761f 100644 --- a/ajax/getfoldercontents.php +++ b/ajax/getfoldercontents.php @@ -96,6 +96,9 @@ if ( $_SESSION["sortorder"] == SORTBYNAME ) { usort($issues, "compareNames"); $data["compath"] = $compath; +$pathparts = pathinfo($compath); +$data["parentpath"] = $pathparts['dirname']; +$data["foldername"] = $pathparts['basename']; $data["contents"] = array_merge($folders, $issues); header('Content-Type: application/json'); diff --git a/ajax/setpath.php b/ajax/setpath.php index 6987203..a6da7a2 100644 --- a/ajax/setpath.php +++ b/ajax/setpath.php @@ -10,13 +10,18 @@ $data = array(); $data["error"] = false; $data["message"] = ""; -$comicfull = realpath(COMICSDIR . urldecode($_REQUEST['path'])); -if ( ($comicfull === false) || (substr($comicfull, 0, strlen(COMICSDIR)) != COMICSDIR) ) { +$newpath = urldecode($_REQUEST['path']); + +$comicfull = realpath(COMICSDIR . $newpath); +if ( ($newpath == "/") || ($comicfull === false) || (substr($comicfull, 0, strlen(COMICSDIR)) != COMICSDIR) ) { $_SESSION['compath'] = "/"; } else { $_SESSION['compath'] = substr($comicfull, strlen(COMICSDIR)); } $data["message"] = "New comic path: {$_SESSION["compath"]}"; +$pathparts = pathinfo($_SESSION['compath']); +$data["parentpath"] = $pathparts["dirname"]; +$data["foldername"] = $pathparts["basename"]; header('Content-Type: application/json'); echo json_encode($data); diff --git a/js/comics.js b/js/comics.js index ca6a340..0a642ee 100644 --- a/js/comics.js +++ b/js/comics.js @@ -1,8 +1,10 @@ var curpath = "/"; +var parentpath = "/"; +var foldername = ""; // This function is executed after the page load completes on the client $(document).ready(function() { - $("#path").click(function() { changeFolder("/", "/"); }); + $("#path").click(function() { changeFolder(parentpath, parentpath); }); getFolderContents(); }); @@ -31,7 +33,7 @@ function updatePathNavigator() { if ( curpath == "/" ) { navpath = "/"; } else { - navpath = "/Comics"; + navpath = "/Comics" + parentpath; } $("#path").html(navpath); } @@ -46,6 +48,8 @@ function changeFolder(name, path) { success : function(data, stat, jqo) { console.log(data.message); curpath = path; + parentpath = data.parentpath; + foldername = data.foldername; getFolderContents(); } });