tinycm view plugins/community/community.cgi @ rev 84

Small fixes and add community plugin
author Christophe Lincoln <pankso@slitaz.org>
date Sat Feb 11 21:14:02 2017 +0100 (2017-02-11)
parents
children b3511ea2c6a6
line source
1 #!/bin/sh
2 #
3 # TinyCM/TazBug Plugin - Community Tools
4 #
6 case " $(GET) " in
7 *\ wall\ *)
8 d="Community Wall"
9 wall="$tiny/$content/wall"
10 date=$(date '+%Y-%m-%d %H:%M')
11 header
12 html_header
13 user_box
15 # Save any new message first
16 if [ "$(GET message)" ] && check_auth; then
17 # Prevent more than one message by minute peer user
18 file="$(date '+%Y-%m-%d_%H:%M')_$user.txt"
19 [ -d "$wall" ] || mkdir -p ${wall}
20 # Write content to file
21 sed "s/$(echo -en '\r') /\n/g" > ${wall}/${file} << EOT
22 $(GET message)
23 EOT
24 fi
26 # Delete message if requested
27 if [ "$(GET delmsg)" ] && check_auth; then
28 m=$(GET delmsg)
29 author=$(echo ${m} | cut -d "_" -f 3)
30 if [ "$user" == "${author%.txt}" ] || admin_user; then
31 rm -f ${wall}/${m}
32 fi
33 fi
35 # Message form
36 cat << EOT
37 <h2>$d</h2>
39 <form method="get" action="$script" id="wall-form" name ="wall" onsubmit="return checkWall();">
40 <input type="hidden" name="wall" />
41 <textarea name="message" maxlength="${MESSAGE_LENGTH}"></textarea>
42 <div>
43 <input type="submit" value="$(gettext 'Send message')" />
44 $(eval_gettext "Date: $date - Max char:") ${MESSAGE_LENGTH} -
45 $(gettext "Wiki syntax is supported:")
46 <a href="?d=en/help">$(gettext "Help page")</a>
47 </div>
48 </form>
50 <h2>$(gettext "Latest Messages")</h2>
51 EOT
52 # Display messages &nb=40
53 msg_nb=40
54 if [ "$(GET nb)" ]; then
55 msg_nb=$(GET nb)
56 fi
57 for m in $(ls -r $wall | head -n ${msg_nb})
58 do
59 author=$(echo ${m} | cut -d "_" -f 3)
60 pubdate=$(echo ${m} | cut -d "_" -f 1-2 | sed s"/_/ /")
61 cat << EOT
62 <div class="wall-message">
63 <div>By <a href='?user=${author%.txt}'>${author%.txt}</a>
64 - <span class="date">${pubdate}</span>
65 EOT
66 if [ "$user" == "${author%.txt}" ] || admin_user; then
67 echo " - <span class='del'><a href='?wall&amp;delmsg=$m'>Delete</a></span>"
68 fi
69 echo "</div><p>"
70 cat ${wall}/${m} | wiki_parser
71 echo "</p></div>"
72 done
73 cat << EOT
74 <div id="tools">
75 <a href="$script?community">$(gettext "Community Tools")</a>
76 </div>
77 EOT
78 html_footer && exit 0 ;;
80 *\ community\ *)
81 d="Community Tools"
82 header
83 html_header
84 user_box
85 cat << EOT
86 <h2>$d</h2>
87 <p>$SHORT_DESC</p>
88 <div id="tools">
89 <a href="$script?wall">Community Wall</a>
90 </div>
91 EOT
93 html_footer && exit 0 ;;
94 esac