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