tinycm annotate plugins/community/community.cgi @ rev 98
Samall fix to have a page title
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Feb 19 23:58:18 2017 +0100 (2017-02-19) |
parents | a7f76c79d13f |
children | 95673a3de4e4 |
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@88 | 15 # Wall is only for logged users |
pankso@92 | 16 if [ "$WALL_MODE" == "private" ] && ! check_auth; then |
pankso@92 | 17 gettext "Private Wall - You must be logged in to read the wall" |
pankso@88 | 18 html_footer && exit 0 |
pankso@88 | 19 fi |
pankso@88 | 20 |
pankso@84 | 21 # Save any new message first |
pankso@84 | 22 if [ "$(GET message)" ] && check_auth; then |
pankso@84 | 23 # Prevent more than one message by minute peer user |
pankso@84 | 24 file="$(date '+%Y-%m-%d_%H:%M')_$user.txt" |
pankso@84 | 25 [ -d "$wall" ] || mkdir -p ${wall} |
pankso@84 | 26 # Write content to file |
pankso@84 | 27 sed "s/$(echo -en '\r') /\n/g" > ${wall}/${file} << EOT |
pankso@84 | 28 $(GET message) |
pankso@84 | 29 EOT |
pankso@84 | 30 fi |
pankso@84 | 31 |
pankso@84 | 32 # Delete message if requested |
pankso@84 | 33 if [ "$(GET delmsg)" ] && check_auth; then |
pankso@84 | 34 m=$(GET delmsg) |
pankso@84 | 35 author=$(echo ${m} | cut -d "_" -f 3) |
pankso@84 | 36 if [ "$user" == "${author%.txt}" ] || admin_user; then |
pankso@84 | 37 rm -f ${wall}/${m} |
pankso@84 | 38 fi |
pankso@84 | 39 fi |
pankso@84 | 40 |
pankso@84 | 41 # Message form |
pankso@92 | 42 echo "<h2>$d</h2>" |
pankso@92 | 43 if check_auth; then |
pankso@92 | 44 cat << EOT |
pankso@84 | 45 |
pankso@97 | 46 <form method="get" action="$script" id="wall-form" name="wall" onsubmit="return checkWall();"> |
pankso@84 | 47 <input type="hidden" name="wall" /> |
pankso@92 | 48 <textarea name="message" maxlength="${WALL_MESSAGES_LENGTH}"></textarea> |
pankso@84 | 49 <div> |
pankso@84 | 50 <input type="submit" value="$(gettext 'Send message')" /> |
pankso@92 | 51 $(eval_gettext "Date: $date - Max char:") ${WALL_MESSAGES_LENGTH} - |
pankso@84 | 52 $(gettext "Wiki syntax is supported:") |
pankso@84 | 53 <a href="?d=en/help">$(gettext "Help page")</a> |
pankso@84 | 54 </div> |
pankso@84 | 55 </form> |
pankso@84 | 56 |
pankso@84 | 57 <h2>$(gettext "Latest Messages")</h2> |
pankso@84 | 58 EOT |
pankso@92 | 59 fi |
pankso@84 | 60 # Display messages &nb=40 |
pankso@84 | 61 msg_nb=40 |
pankso@84 | 62 if [ "$(GET nb)" ]; then |
pankso@84 | 63 msg_nb=$(GET nb) |
pankso@84 | 64 fi |
pankso@84 | 65 for m in $(ls -r $wall | head -n ${msg_nb}) |
pankso@84 | 66 do |
pankso@84 | 67 author=$(echo ${m} | cut -d "_" -f 3) |
pankso@84 | 68 pubdate=$(echo ${m} | cut -d "_" -f 1-2 | sed s"/_/ /") |
pankso@84 | 69 cat << EOT |
pankso@84 | 70 <div class="wall-message"> |
pankso@84 | 71 <div>By <a href='?user=${author%.txt}'>${author%.txt}</a> |
pankso@84 | 72 - <span class="date">${pubdate}</span> |
pankso@84 | 73 EOT |
pankso@84 | 74 if [ "$user" == "${author%.txt}" ] || admin_user; then |
pankso@84 | 75 echo " - <span class='del'><a href='?wall&delmsg=$m'>Delete</a></span>" |
pankso@84 | 76 fi |
pankso@84 | 77 echo "</div><p>" |
pankso@84 | 78 cat ${wall}/${m} | wiki_parser |
pankso@84 | 79 echo "</p></div>" |
pankso@84 | 80 done |
pankso@93 | 81 if check_auth; then |
pankso@93 | 82 cat << EOT |
pankso@84 | 83 <div id="tools"> |
pankso@84 | 84 <a href="$script?community">$(gettext "Community Tools")</a> |
pankso@84 | 85 </div> |
pankso@84 | 86 EOT |
pankso@93 | 87 fi |
pankso@84 | 88 html_footer && exit 0 ;; |
pankso@84 | 89 |
pankso@97 | 90 *\ twitter\ *) |
pankso@98 | 91 d="Tweets by @${TWITTER_USER}" |
pankso@97 | 92 header |
pankso@97 | 93 html_header |
pankso@97 | 94 user_box |
pankso@97 | 95 cat << EOT |
pankso@97 | 96 <a class="twitter-timeline" |
pankso@97 | 97 href="https://twitter.com/${TWITTER_USER}">Tweets by ${TWITTER_USER}</a> |
pankso@97 | 98 <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> |
pankso@97 | 99 EOT |
pankso@97 | 100 html_footer && exit 0 ;; |
pankso@97 | 101 |
pankso@84 | 102 *\ community\ *) |
pankso@84 | 103 d="Community Tools" |
pankso@84 | 104 header |
pankso@84 | 105 html_header |
pankso@84 | 106 user_box |
pankso@93 | 107 echo '<div id="tools">' |
pankso@93 | 108 if check_auth; then |
pankso@93 | 109 echo "<a href='$script?dashboard'>Dashboard</a>" |
pankso@93 | 110 fi |
pankso@84 | 111 cat << EOT |
pankso@93 | 112 <a href="$script?wall">Community Wall</a> |
pankso@97 | 113 <a href="$script?twitter">Twitter Timeline</a> |
pankso@92 | 114 </div> |
pankso@84 | 115 <h2>$d</h2> |
pankso@84 | 116 <p>$SHORT_DESC</p> |
pankso@84 | 117 EOT |
pankso@94 | 118 if admin_user; then |
pankso@94 | 119 cat << EOT |
pankso@94 | 120 <h3>Plugin config</h3> |
pankso@94 | 121 <pre> |
pankso@97 | 122 Wall mode : $WALL_MODE |
pankso@97 | 123 Messages length : $WALL_MESSAGES_LENGTH |
pankso@97 | 124 Twitter user : $TWITTER_USER |
pankso@94 | 125 </pre> |
pankso@94 | 126 EOT |
pankso@94 | 127 fi |
pankso@84 | 128 html_footer && exit 0 ;; |
pankso@84 | 129 esac |