tinycm annotate plugins/blog/blog.cgi @ rev 60
Improve dashboard and plugin integration
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Feb 01 01:28:51 2014 +0100 (2014-02-01) |
parents | 6400421b49c9 |
children | 03338ebb4d86 |
rev | line source |
---|---|
pankso@27 | 1 #!/bin/sh |
pankso@27 | 2 # |
pankso@27 | 3 # TinyCM Plugin - Blog |
pankso@27 | 4 # |
pankso@27 | 5 . /usr/lib/slitaz/httphelper |
pankso@27 | 6 |
pankso@27 | 7 blog="$tiny/$content/blog" |
pankso@27 | 8 |
pankso@27 | 9 # Blog tools |
pankso@27 | 10 blog_tools() { |
pankso@27 | 11 cat << EOT |
pankso@27 | 12 <div id="tools"> |
pankso@60 | 13 <a href="$script?blog=edit&d=new">$(gettext "New post")</a> |
pankso@27 | 14 <a href="$script?dashboard">Dashboard</a> |
pankso@27 | 15 $([ "$index" == "blog" ] && echo "<a href='$script?d=index'>Index</a>") |
pankso@27 | 16 $([ "$HG" == "yes" ] && echo "<a href='$script?hg'>Hg Log</a>") |
pankso@27 | 17 </div> |
pankso@27 | 18 EOT |
pankso@27 | 19 } |
pankso@27 | 20 |
pankso@27 | 21 # Post tools |
pankso@27 | 22 post_tools() { |
pankso@27 | 23 cat << EOT |
pankso@28 | 24 - <a href="$script?blogedit&d=${d}">$(gettext "Edit it!")</a> |
pankso@27 | 25 EOT |
pankso@48 | 26 #<a href="$script?blogrm=${d}">$(gettext "Remove")</a> |
pankso@27 | 27 } |
pankso@27 | 28 |
pankso@27 | 29 # Display blog post: show_posts nb |
pankso@28 | 30 show_post() { |
pankso@28 | 31 d=${1%.txt} |
pankso@28 | 32 date=$(fgrep 'DATE=' ${blog}/${d}.txt | cut -d '"' -f 2) |
pankso@28 | 33 # Get post author |
pankso@28 | 34 author=$(fgrep 'AUTHOR=' ${blog}/${d}.txt | cut -d '"' -f 2) |
pankso@28 | 35 if [ -f "${PEOPLE}/${author}/account.conf" ]; then |
pankso@28 | 36 . ${PEOPLE}/${author}/account.conf |
pankso@28 | 37 else |
pankso@48 | 38 echo "ERROR: ${PEOPLE}/${author}/account.conf" |
pankso@28 | 39 fi |
pankso@28 | 40 echo "<div class=\"blogpost\">" |
pankso@28 | 41 cat ${blog}/${d}.txt | sed -e '/AUTHOR=/'d -e '/DATE=/'d | wiki_parser |
pankso@28 | 42 cat << EOT |
pankso@28 | 43 <div class="post-tools"> |
pankso@28 | 44 <a href="$script?user=$USER">$(get_gravatar $MAIL 24)</a> |
pankso@28 | 45 <span class="date">$date</span> |
pankso@28 | 46 EOT |
pankso@48 | 47 # Post tools for admin users |
pankso@48 | 48 if check_auth && admin_user; then |
pankso@28 | 49 post_tools |
pankso@28 | 50 echo "</div>" |
pankso@28 | 51 else |
pankso@28 | 52 echo "</div>" |
pankso@28 | 53 fi |
pankso@28 | 54 echo "</div>" |
pankso@28 | 55 } |
pankso@28 | 56 |
pankso@28 | 57 # Display blog post: show_posts count |
pankso@27 | 58 show_posts() { |
pankso@49 | 59 for p in $(ls $blog | sort -r -n | head -n $1) |
pankso@27 | 60 do |
pankso@28 | 61 show_post ${p} |
pankso@27 | 62 done |
pankso@27 | 63 } |
pankso@27 | 64 |
pankso@27 | 65 # |
pankso@27 | 66 # Index main page can display the lastest Blog posts |
pankso@27 | 67 # |
pankso@27 | 68 if fgrep -q '[BLOG]' $tiny/$wiki/index.txt && [ ! "$(GET)" ]; then |
pankso@28 | 69 d="Blog posts" |
pankso@27 | 70 index="blog" |
pankso@27 | 71 header |
pankso@27 | 72 html_header |
pankso@27 | 73 user_box |
pankso@27 | 74 # Post tools for auth users |
pankso@30 | 75 if admin_user; then |
pankso@27 | 76 blog_tools |
pankso@27 | 77 fi |
pankso@27 | 78 show_posts 5 |
pankso@27 | 79 echo "<p><a href='$script?blog'>$(gettext "More blog posts")</a></p>" |
pankso@27 | 80 html_footer && exit 0 |
pankso@27 | 81 fi |
pankso@27 | 82 |
pankso@60 | 83 # |
pankso@60 | 84 # Handle GET requests |
pankso@60 | 85 # |
pankso@60 | 86 |
pankso@60 | 87 if [ "$(GET blog)" ]; then |
pankso@60 | 88 case " $(GET blog) " in |
pankso@60 | 89 *\ edit\ *) |
pankso@60 | 90 d="$(GET d)" |
pankso@60 | 91 header |
pankso@60 | 92 html_header |
pankso@60 | 93 user_box |
pankso@60 | 94 if ! check_auth && admin_user; then |
pankso@60 | 95 gettext "You must be admin to create a new Blog post" |
pankso@60 | 96 html_footer && exit 0 |
pankso@60 | 97 fi |
pankso@60 | 98 # New post |
pankso@60 | 99 if [ "$d" == "new" ]; then |
pankso@60 | 100 date=$(date '+%Y-%m-%d') |
pankso@60 | 101 last=$(ls $blog | sort -r -n | head -n 1) |
pankso@60 | 102 nb=${last%.txt} |
pankso@60 | 103 d=$(($nb + 1)) |
pankso@60 | 104 conf=$(echo -e "\n\nAUTHOR=\"$user\"\nDATE=\"$date\"\n\n====Title====") |
pankso@60 | 105 fi |
pankso@60 | 106 cat << EOT |
pankso@27 | 107 <h2>$(gettext "Blog post"): $d</h2> |
pankso@27 | 108 |
pankso@27 | 109 <div id="edit"> |
pankso@60 | 110 <form method="get" action="$script?" name="editor"> |
pankso@60 | 111 <input type="hidden" name="blog" value="save" /> |
pankso@60 | 112 <input type="hidden" name="d" value="$d" /> |
pankso@48 | 113 <textarea name="content">${conf}$(cat "$blog/$d.txt")</textarea> |
pankso@27 | 114 <input type="submit" value="$(gettext "Post content")" /> |
pankso@27 | 115 $(gettext "Code Helper:") |
pankso@27 | 116 $(cat lib/jseditor.html) |
pankso@27 | 117 </form> |
pankso@27 | 118 </div> |
pankso@27 | 119 EOT |
pankso@60 | 120 html_footer && exit 0 ;; |
pankso@60 | 121 |
pankso@60 | 122 *\ save\ *) |
pankso@60 | 123 d="$(GET d)" |
pankso@60 | 124 if check_auth && admin_user; then |
pankso@60 | 125 [ -d "$blog" ] || mkdir -p ${blog} |
pankso@60 | 126 # New post ? |
pankso@60 | 127 if [ ! -f "${blog}/${d}.txt" ]; then |
pankso@60 | 128 echo "New Blog post: <a href='$script?blog=$d'>Read it!</a>" \ |
pankso@60 | 129 | log_activity |
pankso@60 | 130 fi |
pankso@60 | 131 # Write content to file |
pankso@60 | 132 sed "s/$(echo -en '\r') /\n/g" > ${blog}/${d}.txt << EOT |
pankso@27 | 133 $(GET content) |
pankso@27 | 134 EOT |
pankso@60 | 135 fi |
pankso@60 | 136 header "Location: $script?blog" ;; |
pankso@60 | 137 |
pankso@60 | 138 *) |
pankso@60 | 139 d="Blog posts" |
pankso@60 | 140 count="20" |
pankso@60 | 141 header |
pankso@60 | 142 html_header |
pankso@60 | 143 user_box |
pankso@60 | 144 # Blog tools for admin users |
pankso@60 | 145 if check_auth && admin_user; then |
pankso@60 | 146 blog_tools |
pankso@60 | 147 fi |
pankso@60 | 148 # Exit if plugin is disabled |
pankso@60 | 149 if [ ! -d "$blog" ]; then |
pankso@60 | 150 echo "<p class='error box'>" |
pankso@60 | 151 gettext "Blog plugin is not yet active."; echo "</p>" |
pankso@60 | 152 html_footer && exit 0 |
pankso@60 | 153 fi |
pankso@60 | 154 # Single post |
pankso@60 | 155 if [ "$(GET blog)" != "blog" ]; then |
pankso@60 | 156 show_post "$(GET blog)" |
pankso@60 | 157 else |
pankso@60 | 158 show_posts ${count} |
pankso@60 | 159 fi ;; |
pankso@60 | 160 esac |
pankso@60 | 161 html_footer && exit 0 |
pankso@60 | 162 fi |