diff --git a/index.php b/index.php index c8a94d5..af9703d 100644 --- a/index.php +++ b/index.php @@ -18,6 +18,21 @@ exit; } + session_start(); + + function savenote($title, $content) + { + global $dir; + file_put_contents($dir . '/' . $title, $content); + $key = array_search($dir . '/' . $title, $_SESSION['index']); + if ($key) + { + // handle the rename case + array_splice($_SESSION['index'], $key, 1); + array_unshift($_SESSION['index'], $dir . '/' . $title); + } + } + $action = ''; if (isset($_GET['open'])) @@ -61,14 +76,14 @@ if ($action == 'clip' && $_GET['param']) { $content = $_GET['param'] . "\r\n" . file_get_contents($dir . '/todo'); - file_put_contents($dir . '/todo', $content); + savenote('todo', $content); $_GET['param'] = ''; } if ($action == 'save') { $title = $_POST['title']; $content = $_POST['content']; - file_put_contents($dir . '/' . $title, $content); + savenote($title, $content); $previoustitle = $_POST['previoustitle']; if ($title != $previoustitle) @@ -76,18 +91,21 @@ rename($dir . '/' . $previoustitle, $dir . '/' . $previoustitle . '.del'); } - $action = 'open'; - $_GET['param'] = $title; - if (isset($_POST['home'])) { - header('Location: index.php'); + $action = ''; + } + else + { + $action = 'open'; + $_GET['param'] = $title; } } else if ($action == 'delete') { $title = $_POST['title']; rename($dir . '/' . $title, $dir . '/' . $title . '.del'); + // reindex! } if ($action == 'preview') @@ -116,7 +134,7 @@ if (!file_exists($dir . '/' . $title)) { $content = "---\r\ndate: " . substr($now, 0, 10) . "\r\ntags: \r\n---\r\n"; - file_put_contents($dir . '/' . $title, $content); + savenote($title, $content); } else if (!$content) { @@ -165,14 +183,19 @@ } require('home.php'); - echo '
'; - $files = glob($dir . '/*'); - usort($files, function($a, $b) - { - return filemtime($b) - filemtime($a); - }); + echo '
'; - foreach($files as $path) + if (!isset($_SESSION['index']) || isset($_GET['reindex'])) + { + $files = glob($dir . '/*'); + usort($files, function($a, $b) + { + return filemtime($b) - filemtime($a); + }); + $_SESSION['index'] = $files; + } + + foreach($_SESSION['index'] as $path) { $tags = ''; $name = basename($path);