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