add conflict management

This commit is contained in:
quenousimporte 2024-03-15 15:11:51 +01:00
parent ce1867bcf0
commit 020545feb3
2 changed files with 19 additions and 2 deletions

View File

@ -35,9 +35,23 @@
function savenote($title, $content) function savenote($title, $content)
{ {
global $dir; global $dir;
file_put_contents($dir . '/' . $title, $content); $path = $dir . '/' . $title;
$lastchanged = filemtime($path);
$previous = $_POST['lastchanged'];
if ( (int)$lastchanged > (int)$previous)
{
$tempcontent = file_get_contents($path);
if ($tempcontent != $content)
{
$temptitle = $title . '_' . $lastchanged;
file_put_contents($dir . '/' . $temptitle, $tempcontent);
array_unshift($_SESSION['index'], $dir . '/' . $temptitle);
echo '<div class="grey">Conflict detected. See backup: ' . $temptitle . '</div>';
}
}
file_put_contents($path, $content);
removefromindex($title); removefromindex($title);
array_unshift($_SESSION['index'], $dir . '/' . $title); array_unshift($_SESSION['index'], $path);
} }
function linksdiv($content) function linksdiv($content)
@ -138,6 +152,8 @@
$content = file_get_contents($dir . '/' . $title); $content = file_get_contents($dir . '/' . $title);
} }
clearstatcache();
$lastchanged = filemtime($dir . '/' . $title);
$lines = substr_count($content, "\r\n"); $lines = substr_count($content, "\r\n");
$words = substr_count($content, " ") + $lines; $words = substr_count($content, " ") + $lines;
$chars = strlen($content); $chars = strlen($content);

View File

@ -6,6 +6,7 @@
<input type="submit" name="links" value="links" accesskey="l"> <input type="submit" name="links" value="links" accesskey="l">
<input type="submit" name="stats" value="stats" accesskey="i"> <input type="submit" name="stats" value="stats" accesskey="i">
<input type="submit" name="delete" value="delete" accesskey="d"> <input type="submit" name="delete" value="delete" accesskey="d">
<input hidden name="lastchanged" value="<? echo $lastchanged; ?>">
<?php <?php
if (isset($_POST['stats'])) if (isset($_POST['stats']))
{ {