From 68618f974f8f8fc8b0db2ead9e3a1e1494082540 Mon Sep 17 00:00:00 2001 From: zlaxy Date: Mon, 2 Oct 2017 10:28:59 +0300 Subject: [PATCH] Added locked and sticky posts --- README | 3 ++- administration.php | 12 +++++++++++ index.php | 52 ++++++++++++++++++++++++++++++++++------------ settings.php | 5 ++++- settings_ru.php | 3 +++ 5 files changed, 60 insertions(+), 15 deletions(-) diff --git a/README b/README index dd5ae37..557f0ef 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -PHPCSV Guestbook version 0.99 +PHPCSV Guestbook version 0.99.2 Simple php guestbook with csv file data storage. @@ -11,6 +11,7 @@ Features: - Pagination - Categories - Replies + - Locked and sticky posts Working example: https://zlaxyi.soundragon.su/gb diff --git a/administration.php b/administration.php index a4ee664..b6f212b 100644 --- a/administration.php +++ b/administration.php @@ -104,6 +104,7 @@ function AdminEntriesView() { global $GBlinkfield; global $GBsubjectfield; global $GBcategoryfield; + global $GBstickylocked; if (isset($_SESSION["SessionStatus"])?($_SESSION["SessionStatus"]==(md5($GBadmin.$GBpassword))):false) if ($DataStatus=="empty") echo $Titles["EmptyFile"],"\n"; else if (isset($_SESSION["DeleteStatus"])) { if ($_SESSION["DeleteStatus"]=="deletion") { @@ -132,6 +133,13 @@ function AdminEntriesView() { } echo " ",$Titles["AdminMessage"],":
\n
\n"; echo " ",$Titles["Response"],":
\n
\n"; + if ($GBstickylocked) { + echo " ",$Titles["Locked"]," ",$Titles["Sticky"],"
\n"; + } echo " "; echo " "; echo "\n"; @@ -245,6 +253,10 @@ if (isset($_SESSION["SessionStatus"])?($_SESSION["SessionStatus"]==(md5($GBadmin else $AdminEntries[($_SESSION["EditStatus"]-1)][7]=""; if (isset($_POST["editcategory"])) $AdminEntries[($_SESSION["EditStatus"]-1)][8]=$_POST["editcategory"]; else $AdminEntries[($_SESSION["EditStatus"]-1)][8]=""; + if (isset($_POST["lock"])) $AdminEntries[($_SESSION["EditStatus"]-1)][11]=$_POST["lock"]; + else $AdminEntries[($_SESSION["EditStatus"]-1)][11]=""; + if (isset($_POST["sticky"])) $AdminEntries[($_SESSION["EditStatus"]-1)][12]=$_POST["sticky"]; + else $AdminEntries[($_SESSION["EditStatus"]-1)][12]=""; SaveEntries(); Unset($_SESSION["EditStatus"]); $AdminEntries=ReadEntries(); diff --git a/index.php b/index.php index 8019ffd..1d4df2c 100644 --- a/index.php +++ b/index.php @@ -208,6 +208,10 @@ function SinlgeEntry($Entry) { echo " "; if ($GBreplies&&isset($Entry[9])&&$Entry[9]) echo "
"; echo "

"; + if ($Entry[11]) echo "[",$Titles["Locked"],"] "; + if ($Entry[12]) echo "[",$Titles["Sticky"],"] "; + if ($GBreplies&&isset($Entry[9])&&$Entry[9]) echo "⤷ "; + else echo "◦ "; if ($GBshownumbers) echo $Entry[10],". "; if ($Entry[2]) echo ""; echo "",$Entry[0],""; @@ -234,7 +238,7 @@ function SinlgeEntry($Entry) { } else echo " ",nl2br($Entry[4]),"
\n"; if ($Entry[6]) echo "
",$Titles["Response"],":
\n"; if ($Entry[6]) echo nl2br($Entry[6]),"

\n"; - if ($GBreplies) { + if ($GBreplies&&!($Entry[11])) { echo "
"; echo "

"; echo "
"; @@ -255,23 +259,45 @@ function EntriesView() { global $GBsubjectfield; global $GBcategoryfield; global $GBreplies; + global $GBstickylocked; if (isset($_SESSION["reply"])) { echo $Titles["Replying"],"
\n"; } - if ($GBreplies) { - $EntriesReplySorted=$Entries; - if (isset($Entries)) foreach($Entries as $Entry) { - if (isset($Entry[9])) { - unset($a); unset($b); - foreach($EntriesReplySorted as $n=>$EntrySort) if ($EntrySort[5]==$Entry[5]) $a=$n; - foreach($EntriesReplySorted as $n=>$EntrySort) if ($EntrySort[5]==$Entry[9]) $b=$n; - if (isset($b)) { - $out=array_splice($EntriesReplySorted, $a, 1); - array_splice($EntriesReplySorted, $b, 0, $out); - } + if ($GBstickylocked) { + if (isset($Entries)) { + $EntriesStickySorted=$Entries; + $i = count($Entries); + while (--$i >= 0) { + if (isset($EntriesStickySorted[$i][12])&&($EntriesStickySorted[$i][12]=="on")) { + $item = $EntriesStickySorted[$i]; + unset($EntriesStickySorted[$i]); + array_push($EntriesStickySorted, $item); } } - $Entries=$EntriesReplySorted; + $Entries=array_values($EntriesStickySorted); + } + } + if ($GBreplies) { + if (isset($Entries)) { + $EntriesReplySorted=$Entries; + foreach($Entries as $Entry) { + if (isset($Entry[9])) { + unset($a); unset($b); + foreach($EntriesReplySorted as $n=>$EntrySort) if ($EntrySort[5]==$Entry[5]) $a=$n; + foreach($EntriesReplySorted as $n=>$EntrySort) if ($EntrySort[5]==$Entry[9]) { + if (isset($EntrySort[12])&&$EntrySort[12]=="on") $b=$n-1; + else $b=$n; + } + if (isset($b)) { + if (!(isset($Entry[12])&&$Entry[12]=="on")) { + $out=array_splice($EntriesReplySorted, $a, 1); + array_splice($EntriesReplySorted, $b, 0, $out); + } + } + } + } + $Entries=$EntriesReplySorted; + } } if ($DataStatus=="empty") echo $Titles["EmptyFile"]; else if(isset($_POST["search"])&&isset($_POST["serachq"])) { diff --git a/settings.php b/settings.php index 1502f25..a0e0f23 100644 --- a/settings.php +++ b/settings.php @@ -13,7 +13,7 @@ $GBpassword="password"; $GBpagination=10; // pagination for entries, 0 - disabled $GBreadmore=255; // number of symbols for 'Read More' feature, 0 - shows full entries $GBsearch=true; // enable or disable search bar -$GBcaptcha=true; // enable or disable captcha +$GBcaptcha=false; // enable or disable captcha $GBupload=true; // enable or disable upload image feature $GBimagesize=1048576; // maximum image size $GBnotificationmailto=""; // leave empty if you don't want send notification @@ -32,6 +32,7 @@ $GBcategoryfield=array( $GBstriptags=true; // enable or disable strip tags function during adding new entry $GBreplies=true; // enable or disable replies to mwssages $GBshownumbers=true; // show or not show number of entries (if replies enabled - numbers will not shown anyway) +$GBstickylocked=true; // stick or lock entries in admin panel $Titles["HeadTitle"]="Guestbook"; $Titles["Page"]="Guestbook"; $Titles["Name"]="Your name"; @@ -86,4 +87,6 @@ $Titles["About"]="about"; $Titles["Reply"]="Reply"; $Titles["Replied"]="replied"; $Titles["Replying"]="Replying to this message:"; +$Titles["Locked"]="Locked"; +$Titles["Sticky"]="Sticky"; ?> diff --git a/settings_ru.php b/settings_ru.php index ff88569..1d06fd5 100644 --- a/settings_ru.php +++ b/settings_ru.php @@ -33,6 +33,7 @@ $GBcategoryfield=array( $GBstriptags=true; // включение или отключение функции обрезания тегов при добавлении новой записи $GBreplies=true; // включение или отключение ответов на сообщения $GBshownumbers=true; // показывать или не показывать номера сообщений (если включены ответы - номера сообщений не будут показываться) +$GBstickylocked=true; // приклеивать или лочить записи через панель администратора $Titles["HeadTitle"]="Гостевая книга"; $Titles["Page"]="Гостевая книга"; $Titles["Name"]="Ваше имя"; @@ -87,4 +88,6 @@ $Titles["About"]="о"; $Titles["Reply"]="Ответить"; $Titles["Replied"]="ответил"; $Titles["Replying"]="Ответ на это сообщение:"; +$Titles["Locked"]="Нельзя ответить"; +$Titles["Sticky"]="Закрепленное сверху"; ?>