tinycm annotate plugins/blog/blog.cgi @ rev 27
Add small blog plugin
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Jan 05 23:20:19 2014 +0000 (2014-01-05) |
parents | |
children | 09f5185ff6e0 |
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@27 | 13 <a href="$script?blogedit&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@27 | 24 <div class="post-tools"> |
pankso@27 | 25 ${d}: <a href="$script?blogedit&d=${d}">$(gettext "Edit post")</a> |
pankso@27 | 26 </div> |
pankso@27 | 27 EOT |
pankso@27 | 28 } |
pankso@27 | 29 |
pankso@27 | 30 # Display blog post: show_posts nb |
pankso@27 | 31 show_posts() { |
pankso@27 | 32 for p in $(find $blog -type f | head -n $1) |
pankso@27 | 33 do |
pankso@27 | 34 name=$(basename $p) |
pankso@27 | 35 d=${name%.txt} |
pankso@27 | 36 echo "<div class=\"blogpost\">" |
pankso@27 | 37 cat ${blog}/${d}.txt | wiki_parser |
pankso@27 | 38 echo "</div>" |
pankso@27 | 39 # Post tools for auth users |
pankso@27 | 40 if check_auth; then |
pankso@27 | 41 post_tools |
pankso@27 | 42 fi |
pankso@27 | 43 done |
pankso@27 | 44 } |
pankso@27 | 45 |
pankso@27 | 46 # |
pankso@27 | 47 # Index main page can display the lastest Blog posts |
pankso@27 | 48 # |
pankso@27 | 49 if fgrep -q '[BLOG]' $tiny/$wiki/index.txt && [ ! "$(GET)" ]; then |
pankso@27 | 50 d="Blog" |
pankso@27 | 51 index="blog" |
pankso@27 | 52 header |
pankso@27 | 53 html_header |
pankso@27 | 54 user_box |
pankso@27 | 55 echo "<h2>$(gettext "Latest blog posts")</h2>" |
pankso@27 | 56 # Post tools for auth users |
pankso@27 | 57 if check_auth; then |
pankso@27 | 58 blog_tools |
pankso@27 | 59 fi |
pankso@27 | 60 show_posts 5 |
pankso@27 | 61 echo "<p><a href='$script?blog'>$(gettext "More blog posts")</a></p>" |
pankso@27 | 62 html_footer && exit 0 |
pankso@27 | 63 fi |
pankso@27 | 64 |
pankso@27 | 65 case " $(GET) " in |
pankso@27 | 66 *\ blogedit\ *) |
pankso@27 | 67 d="$(GET d)" |
pankso@27 | 68 header |
pankso@27 | 69 html_header |
pankso@27 | 70 user_box |
pankso@27 | 71 # Blog tools for auth users |
pankso@27 | 72 if ! check_auth; then |
pankso@27 | 73 gettext "You must be logged in to create a new Blog post" |
pankso@27 | 74 html_footer && exit 0 |
pankso@27 | 75 fi |
pankso@27 | 76 # New post |
pankso@27 | 77 if [ "$d" == "new" ]; then |
pankso@27 | 78 d=$(date '+%Y%m%d') |
pankso@27 | 79 [ -f "$blog/$d.txt" ] && d=$(date '+%Y%m%d-%H%M') |
pankso@27 | 80 fi |
pankso@27 | 81 cat << EOT |
pankso@27 | 82 <h2>$(gettext "Blog post"): $d</h2> |
pankso@27 | 83 |
pankso@27 | 84 <div id="edit"> |
pankso@27 | 85 <form method="get" action="$script" name="editor"> |
pankso@27 | 86 <input type="hidden" name="blogsave" value="$d" /> |
pankso@27 | 87 <textarea name="content">$(cat "$blog/$d.txt")</textarea> |
pankso@27 | 88 <input type="submit" value="$(gettext "Post content")" /> |
pankso@27 | 89 $(gettext "Code Helper:") |
pankso@27 | 90 $(cat lib/jseditor.html) |
pankso@27 | 91 </form> |
pankso@27 | 92 </div> |
pankso@27 | 93 EOT |
pankso@27 | 94 html_footer && exit 0 ;; |
pankso@27 | 95 |
pankso@27 | 96 *\ blogsave\ *) |
pankso@27 | 97 d="$(GET blogsave)" |
pankso@27 | 98 if check_auth; then |
pankso@27 | 99 [ -d "$blog" ] || mkdir -p ${blog} |
pankso@27 | 100 sed "s/$(echo -en '\r') /\n/g" > ${blog}/${d}.txt << EOT |
pankso@27 | 101 $(GET content) |
pankso@27 | 102 EOT |
pankso@27 | 103 fi |
pankso@27 | 104 header "Location: $script?blog" ;; |
pankso@27 | 105 |
pankso@27 | 106 *\ blog\ *) |
pankso@27 | 107 d="Latest blog posts" |
pankso@27 | 108 nb="20" |
pankso@27 | 109 header |
pankso@27 | 110 html_header |
pankso@27 | 111 user_box |
pankso@27 | 112 echo "<h2>$(gettext "Latest blog posts")</h2>" |
pankso@27 | 113 # Blog tools for auth users |
pankso@27 | 114 if check_auth; then |
pankso@27 | 115 blog_tools |
pankso@27 | 116 fi |
pankso@27 | 117 # Exit if plugin is disabled |
pankso@27 | 118 if [ ! -d "$blog" ]; then |
pankso@27 | 119 echo "<p class='error box'>" |
pankso@27 | 120 gettext "Blog plugin is not yet active."; echo "</p>" |
pankso@27 | 121 html_footer && exit 0 |
pankso@27 | 122 fi |
pankso@27 | 123 show_posts ${nb} |
pankso@27 | 124 html_footer |
pankso@27 | 125 exit 0 ;; |
pankso@27 | 126 esac |