tdiary-contrib 3.2.2.20130518
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +35 -0
- data/README.en.md +12 -0
- data/README.md +13 -0
- data/Rakefile +41 -0
- data/doc/en/filter/spambayes.txt +3 -0
- data/doc/en/plugin.txt +1 -0
- data/doc/en/style/hatena.txt +10 -0
- data/doc/en/style/markdown.txt +16 -0
- data/doc/en/util.txt +1 -0
- data/doc/ja/filter/antirefspam.history.txt +59 -0
- data/doc/ja/filter/antirefspam.txt +86 -0
- data/doc/ja/filter/comment_key.ja.html +182 -0
- data/doc/ja/filter/spambayes.txt +3 -0
- data/doc/ja/plugin/add_bookmark.txt +50 -0
- data/doc/ja/plugin/category_to_tag.txt +21 -0
- data/doc/ja/plugin/cocoment.txt +31 -0
- data/doc/ja/plugin/google_adsense.txt +25 -0
- data/doc/ja/plugin/google_analytics.txt +7 -0
- data/doc/ja/plugin/image_detail.txt +69 -0
- data/doc/ja/plugin/image_gps.txt +36 -0
- data/doc/ja/plugin/image_gps2.txt +41 -0
- data/doc/ja/plugin/livedoor_weather.txt +105 -0
- data/doc/ja/plugin/opensearch_ad.txt +16 -0
- data/doc/ja/plugin/section_footer.txt +84 -0
- data/doc/ja/plugin/select_theme.txt +1 -0
- data/doc/ja/plugin.txt +13 -0
- data/doc/ja/style/hatena.txt +10 -0
- data/doc/ja/style/markdown.txt +13 -0
- data/doc/ja/util.txt +12 -0
- data/filter/antirefspam.rb +263 -0
- data/filter/commentkey.rb +29 -0
- data/filter/commentsize.rb +18 -0
- data/filter/hidecomment.rb +13 -0
- data/filter/iplookup.rb +55 -0
- data/filter/plugin/antirefspam.rb +59 -0
- data/filter/plugin/commentkey.rb +58 -0
- data/filter/plugin/commentsize.rb +12 -0
- data/filter/plugin/en/iplookup.rb +9 -0
- data/filter/plugin/en/spambayes.rb +123 -0
- data/filter/plugin/iplookup.rb +39 -0
- data/filter/plugin/ja/antirefspam.rb +91 -0
- data/filter/plugin/ja/commentkey.rb +17 -0
- data/filter/plugin/ja/commentsize.rb +6 -0
- data/filter/plugin/ja/iplookup.rb +9 -0
- data/filter/plugin/ja/spambayes.rb +124 -0
- data/filter/plugin/spambayes.rb +501 -0
- data/filter/plugin/zh/iplookup.rb +9 -0
- data/filter/rblcheck.rb +36 -0
- data/filter/spambayes.rb +535 -0
- data/filter/spamlookup.rb +37 -0
- data/io/dbi_io/ChangeLog +19 -0
- data/io/dbi_io/README.ja +39 -0
- data/io/dbi_io/dbi_io.rb +181 -0
- data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
- data/io/dbi_io/tdiary_table.sql +42 -0
- data/js/appstore.js +109 -0
- data/js/datepicker.js +69 -0
- data/js/editor.js +82 -0
- data/js/flickr.js +157 -0
- data/js/image_ex.js +79 -0
- data/js/jquery.socialbutton.js +842 -0
- data/js/nicovideo.js +17 -0
- data/js/picasa.js +322 -0
- data/js/plugin_checker.js +71 -0
- data/js/prettify/lang-apollo.js +2 -0
- data/js/prettify/lang-clj.js +18 -0
- data/js/prettify/lang-css.js +2 -0
- data/js/prettify/lang-go.js +1 -0
- data/js/prettify/lang-hs.js +2 -0
- data/js/prettify/lang-lisp.js +3 -0
- data/js/prettify/lang-lua.js +2 -0
- data/js/prettify/lang-ml.js +2 -0
- data/js/prettify/lang-n.js +4 -0
- data/js/prettify/lang-proto.js +1 -0
- data/js/prettify/lang-scala.js +2 -0
- data/js/prettify/lang-sql.js +2 -0
- data/js/prettify/lang-tex.js +1 -0
- data/js/prettify/lang-vb.js +2 -0
- data/js/prettify/lang-vhdl.js +3 -0
- data/js/prettify/lang-wiki.js +2 -0
- data/js/prettify/lang-xq.js +3 -0
- data/js/prettify/lang-yaml.js +2 -0
- data/js/prettify/prettify.css +1 -0
- data/js/prettify/prettify.js +28 -0
- data/js/referer.js +17 -0
- data/js/show_and_hide.js +39 -0
- data/js/socialbutton.js +126 -0
- data/js/twitter_anywhere.js +28 -0
- data/js/yahoo_kousei.js +21 -0
- data/lib/bayes/convert.rb +34 -0
- data/lib/bayes.rb +232 -0
- data/lib/exifparser/BUGS +1 -0
- data/lib/exifparser/ChangeLog +169 -0
- data/lib/exifparser/README +15 -0
- data/lib/exifparser/install.rb +1015 -0
- data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
- data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
- data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
- data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
- data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
- data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
- data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
- data/lib/exifparser/lib/exifparser/scan.rb +278 -0
- data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
- data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
- data/lib/exifparser/lib/exifparser/utils.rb +88 -0
- data/lib/exifparser/lib/exifparser.rb +265 -0
- data/lib/exifparser/sample/exifview.rb +279 -0
- data/lib/tdiary-contrib.rb +19 -0
- data/lib/wgs2tky.rb +93 -0
- data/misc/section_footer2/buzzurl.yaml +6 -0
- data/misc/section_footer2/fc2.yaml +6 -0
- data/misc/section_footer2/ldc.yaml +6 -0
- data/misc/section_footer2/retweet.yaml +7 -0
- data/misc/section_footer2/twitter.yaml +7 -0
- data/misc/section_footer2/yahoo.yaml +6 -0
- data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
- data/plugin/add_bookmark.rb +89 -0
- data/plugin/apple_webclip.rb +26 -0
- data/plugin/appstore.rb +47 -0
- data/plugin/bigpresen.rb +86 -0
- data/plugin/bitly.rb +39 -0
- data/plugin/bootstrap-navi.rb +54 -0
- data/plugin/canonical.rb +9 -0
- data/plugin/category_similar.rb +73 -0
- data/plugin/category_to_tag.rb +60 -0
- data/plugin/category_to_tagcloud.rb +172 -0
- data/plugin/cocomment.rb +37 -0
- data/plugin/code-prettify.rb +23 -0
- data/plugin/coderwall.rb +34 -0
- data/plugin/datepicker.rb +28 -0
- data/plugin/day2section.rb +20 -0
- data/plugin/del_footer.rb +111 -0
- data/plugin/description_from_body.rb +23 -0
- data/plugin/development.rb +16 -0
- data/plugin/editor.rb +11 -0
- data/plugin/en/add_bookmark.rb +20 -0
- data/plugin/en/del_footer.rb +10 -0
- data/plugin/en/git-register.rb +3 -0
- data/plugin/en/livedoor_weather.rb +25 -0
- data/plugin/en/microsummary.rb +18 -0
- data/plugin/en/nicovideo.rb +38 -0
- data/plugin/en/openid.rb +8 -0
- data/plugin/en/section_footer.rb +6 -0
- data/plugin/en/section_footer2.rb +3 -0
- data/plugin/en/socialbutton.rb +5 -0
- data/plugin/everytrail.rb +39 -0
- data/plugin/facebook_comments.rb +59 -0
- data/plugin/flickr.rb +209 -0
- data/plugin/gist.rb +16 -0
- data/plugin/git-register.rb +240 -0
- data/plugin/github_badge.rb +27 -0
- data/plugin/github_link.rb +9 -0
- data/plugin/goo_gl.rb +42 -0
- data/plugin/google_adsense.rb +132 -0
- data/plugin/google_analytics.rb +39 -0
- data/plugin/google_map.rb +168 -0
- data/plugin/google_sitemaps.rb +60 -0
- data/plugin/google_webmaster.rb +22 -0
- data/plugin/hatena_bookmark_nocomment.rb +9 -0
- data/plugin/hatena_star.rb +66 -0
- data/plugin/hb_footer.rb +255 -0
- data/plugin/hb_footer4sec.rb +244 -0
- data/plugin/hb_footer4sec_js.rb +30 -0
- data/plugin/hide_comment_form.rb +4 -0
- data/plugin/hide_sidebar_iphone.rb +21 -0
- data/plugin/iddy.rb +81 -0
- data/plugin/image_detail.rb +143 -0
- data/plugin/image_ex.rb +462 -0
- data/plugin/image_gps.rb +128 -0
- data/plugin/inline_wiki.rb +6 -0
- data/plugin/instagr.rb +64 -0
- data/plugin/ja/add_bookmark.rb +20 -0
- data/plugin/ja/del_footer.rb +10 -0
- data/plugin/ja/flickr.rb +62 -0
- data/plugin/ja/git-register.rb +3 -0
- data/plugin/ja/google_sitemaps.rb +35 -0
- data/plugin/ja/livedoor_weather.rb +25 -0
- data/plugin/ja/microsummary.rb +18 -0
- data/plugin/ja/nicovideo.rb +41 -0
- data/plugin/ja/openid.rb +7 -0
- data/plugin/ja/section_footer.rb +6 -0
- data/plugin/ja/section_footer2.rb +4 -0
- data/plugin/ja/socialbutton.rb +6 -0
- data/plugin/jdate.rb +20 -0
- data/plugin/jholiday.rb +16 -0
- data/plugin/jmonth.rb +20 -0
- data/plugin/jquery_ui_theme.rb +55 -0
- data/plugin/jroku.rb +28 -0
- data/plugin/jyear.rb +37 -0
- data/plugin/latlonglab_route.rb +25 -0
- data/plugin/lazy_referer.rb +38 -0
- data/plugin/livedoor_weather.rb +180 -0
- data/plugin/make_link.rb +44 -0
- data/plugin/makerss_category.rb +43 -0
- data/plugin/makerss_comment.rb +35 -0
- data/plugin/microsummary.rb +62 -0
- data/plugin/mm_footer.rb +215 -0
- data/plugin/monthly_autopagerize.rb +67 -0
- data/plugin/my_hotentry.rb +132 -0
- data/plugin/navi_day.rb +118 -0
- data/plugin/navi_this_month.rb +15 -0
- data/plugin/nicovideo.rb +115 -0
- data/plugin/notify_miniblog.rb +134 -0
- data/plugin/ogp.rb +55 -0
- data/plugin/ohmsha_estore.rb +71 -0
- data/plugin/openid.rb +90 -0
- data/plugin/opensearch_ad.rb +33 -0
- data/plugin/picasa.rb +56 -0
- data/plugin/plugin_checker.rb +41 -0
- data/plugin/popit.rb +22 -0
- data/plugin/prettify.rb +19 -0
- data/plugin/prezi.rb +10 -0
- data/plugin/profile.rb +222 -0
- data/plugin/puboo.rb +93 -0
- data/plugin/pygments_css.rb +76 -0
- data/plugin/rating.rb +419 -0
- data/plugin/recent_estraier.rb +50 -0
- data/plugin/recent_tweet.rb +71 -0
- data/plugin/retweet.rb +86 -0
- data/plugin/rubykaigi.rb +99 -0
- data/plugin/search-bing.rb +87 -0
- data/plugin/search-default.rb +264 -0
- data/plugin/search-google-custom.rb +60 -0
- data/plugin/search-yahoo-websearch.rb +121 -0
- data/plugin/search-yahoo.rb +109 -0
- data/plugin/section_footer.rb +195 -0
- data/plugin/section_footer2.rb +278 -0
- data/plugin/section_permalink.rb +73 -0
- data/plugin/section_permalink_anchor.rb +39 -0
- data/plugin/select_style.rb +42 -0
- data/plugin/select_theme.rb +90 -0
- data/plugin/show_and_hide.rb +77 -0
- data/plugin/slideshare.rb +10 -0
- data/plugin/socialbutton.rb +60 -0
- data/plugin/tatsu_zine.rb +93 -0
- data/plugin/tdiarygraph_flashstyle.rb +296 -0
- data/plugin/tdiarytimes.rb +166 -0
- data/plugin/tdiarytimes2.rb +406 -0
- data/plugin/tdiarytimes_flashstyle.rb +263 -0
- data/plugin/tdiarytimes_textstyle.rb +290 -0
- data/plugin/title_anchor.rb +16 -0
- data/plugin/tweet_quote.rb +106 -0
- data/plugin/twitpic.rb +10 -0
- data/plugin/twitter.rb +46 -0
- data/plugin/twitter_anywhere.rb +209 -0
- data/plugin/twitter_badge.rb +42 -0
- data/plugin/twitter_js.rb +59 -0
- data/plugin/ustream.rb +19 -0
- data/plugin/vimeo.rb +14 -0
- data/plugin/volatile.rb +89 -0
- data/plugin/vote.rb +100 -0
- data/plugin/wikiloc.rb +27 -0
- data/plugin/windex.rb +512 -0
- data/plugin/yahoo_kousei.rb +79 -0
- data/plugin/yahoo_map.rb +97 -0
- data/plugin/youtube.rb +33 -0
- data/plugin/yshop.rb +189 -0
- data/plugin/zenback.rb +46 -0
- data/spec/apple_webclip_spec.rb +46 -0
- data/spec/fixtures/friendfeed.xml +2 -0
- data/spec/fixtures/github.json +1 -0
- data/spec/fixtures/twitter.xml +73 -0
- data/spec/gist_spec.rb +16 -0
- data/spec/github_link_spec.rb +39 -0
- data/spec/google_analytics_spec.rb +60 -0
- data/spec/jdate_spec.rb +23 -0
- data/spec/jmonth_spec.rb +28 -0
- data/spec/jyear_spec.rb +21 -0
- data/spec/my_hotentry_spec.rb +78 -0
- data/spec/openid_spec.rb +246 -0
- data/spec/opensearch_ad_spec.rb +50 -0
- data/spec/profile_spec.rb +88 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec_helper.rb +223 -0
- data/spec/title_anchor_spec.rb +39 -0
- data/spec/twitter_js_spec.rb +116 -0
- data/spec/youtube_spec.rb +20 -0
- data/style/hatena_style.rb +1011 -0
- data/style/markdown_style.rb +239 -0
- data/style/wikiext_style.rb +21 -0
- data/tdiary-contrib.gemspec +25 -0
- data/util/clean-spam/README.ja +1 -0
- data/util/clean-spam/tdiary-comment-clean +46 -0
- data/util/clean-spam/tdiary-comment-clean2 +81 -0
- data/util/clean-spam/tdiary-referer-clean +46 -0
- data/util/convert_pstore.rb +82 -0
- data/util/estraier-search/ChangeLog +36 -0
- data/util/estraier-search/README.ja +114 -0
- data/util/estraier-search/en/estraier-register.rb +3 -0
- data/util/estraier-search/estraier-register.rb +298 -0
- data/util/estraier-search/estraier-search.rb +273 -0
- data/util/estraier-search/estraier.rhtml +73 -0
- data/util/estraier-search/estraier.rxml +23 -0
- data/util/estraier-search/i.estraier.rhtml +31 -0
- data/util/estraier-search/ja/estraier-register.rb +3 -0
- data/util/image-gallery/README.ja +27 -0
- data/util/image-gallery/image-gallery.rb +523 -0
- data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
- data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
- data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
- data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
- data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
- data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
- data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
- data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
- data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
- data/util/image-gallery/skel/gallery.rhtml +154 -0
- data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
- data/util/image-gallery/tdiary.conf.igsample +8 -0
- data/util/image-gallery/theme/image-gallery.css +85 -0
- data/util/image2flickr.rb +282 -0
- data/util/posttdiary/README.ja +12 -0
- data/util/posttdiary/posttdiary-ex.rb +1155 -0
- data/util/posttdiary/posttdiary.rb +245 -0
- data/util/rast-search/ChangeLog +55 -0
- data/util/rast-search/README.ja +99 -0
- data/util/rast-search/en/rast-register.rb +3 -0
- data/util/rast-search/i.rast.rhtml +33 -0
- data/util/rast-search/ja/rast-register.rb +3 -0
- data/util/rast-search/rast-register.rb +326 -0
- data/util/rast-search/rast-search.rb +249 -0
- data/util/rast-search/rast.rhtml +66 -0
- data/util/rast-search/rast.rxml +21 -0
- data/util/section_link/README +11 -0
- data/util/section_link/misc/plugin/section_link.rb +68 -0
- data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
- data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
- data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
- data/util/section_link/tdiary/wikiext_style.rb +36 -0
- data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
- data/util/tdiary-grep/README +4 -0
- data/util/tdiary-grep/grep.rb +445 -0
- data/util/tdiary-mode/http.el +130 -0
- data/util/tdiary-mode/tdiary-mode.el +613 -0
- data/util/tdiary-vim/ChangeLog +25 -0
- data/util/tdiary-vim/README +60 -0
- data/util/tdiary-vim/tdiary.vim +350 -0
- data/util/tdiarysearch/README.en +53 -0
- data/util/tdiarysearch/README.ja +99 -0
- data/util/tdiarysearch/search.rb +504 -0
- metadata +497 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# select_style.rb: a plugin for selecting styles
|
4
|
+
# Distributed under the GPL
|
5
|
+
#
|
6
|
+
# [CAUTION] You need to insert a line to tdiary.conf after "load_cgi_conf"
|
7
|
+
# @style = @options2['style'] if @options2['style']
|
8
|
+
#
|
9
|
+
|
10
|
+
# styles
|
11
|
+
def saveconf_style
|
12
|
+
if @mode == 'saveconf' then
|
13
|
+
@conf['style'] = @cgi.params['style'][0]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
if @mode =~ /^(conf|saveconf)$/ then
|
18
|
+
@conf_style_list = []
|
19
|
+
Dir::glob( "#{::TDiary::PATH}/tdiary/{style/,}*_style.rb" ) do |style_file|
|
20
|
+
style = File::basename( style_file ).sub( /_style\.rb$/, '' )
|
21
|
+
@conf_style_list << style
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
add_conf_proc( 'style', 'スタイル' ) do
|
26
|
+
saveconf_style
|
27
|
+
|
28
|
+
r = <<-HTML
|
29
|
+
<h3 class="subtitle">スタイルの指定</h3>
|
30
|
+
#{"<p>スタイル (日記の文法) を指定します。</p>" unless @conf.mobile_agent?}
|
31
|
+
<p>
|
32
|
+
<select name="style">
|
33
|
+
HTML
|
34
|
+
@conf_style_list.each do |style|
|
35
|
+
r << %Q|<option value="#{style}"#{if (style == @conf['style']) or (!@conf['style'] && style == 'tdiary') then " selected" end}>#{style}</option>|
|
36
|
+
end
|
37
|
+
r << <<-HTML
|
38
|
+
</select>
|
39
|
+
</p>
|
40
|
+
#{"<p>スタイルについての詳細は<a href=\"http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?%A5%B9%A5%BF%A5%A4%A5%EB\">スタイル - tDiary の記法</a>をごらんください。</p>" unless @conf.mobile_agent?}
|
41
|
+
HTML
|
42
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# Copyright (C) 2005 akira yamada
|
2
|
+
# You can redistribute it and/or modify it under GPL2.
|
3
|
+
|
4
|
+
THEME_BASE = File.join(::TDiary::PATH, 'theme')
|
5
|
+
CACHE_FILE = File.join(@cache_path, 'theme_list')
|
6
|
+
|
7
|
+
def get_theme_list
|
8
|
+
if FileTest.exist?(CACHE_FILE) &&
|
9
|
+
File.mtime(CACHE_FILE) >= File.mtime(THEME_BASE)
|
10
|
+
File.open(CACHE_FILE, 'r') do |i|
|
11
|
+
i.flock(File::LOCK_EX)
|
12
|
+
return Marshal.load(i.read)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
list = []
|
17
|
+
Dir.glob(File.join(THEME_BASE, '*')).sort.each do |dir|
|
18
|
+
theme = dir.sub(%r[.*/theme/], '')
|
19
|
+
next unless FileTest::file?("#{dir}/#{theme}.css".untaint)
|
20
|
+
name = theme.split(/_/).collect{|s| s.capitalize}.join(' ')
|
21
|
+
list << [theme, name]
|
22
|
+
end
|
23
|
+
|
24
|
+
File.open(CACHE_FILE, 'w') do |o|
|
25
|
+
o.flock(File::LOCK_EX)
|
26
|
+
o.puts Marshal.dump(list)
|
27
|
+
end
|
28
|
+
|
29
|
+
return list
|
30
|
+
end
|
31
|
+
|
32
|
+
def select_theme_form
|
33
|
+
options = ''
|
34
|
+
get_theme_list.each do |theme, name|
|
35
|
+
options << %Q!\t<option value="#{h theme}"#{' selected' if theme == @conf.theme}>#{h name}</option>\n!
|
36
|
+
if theme == DEFAULT_THEME
|
37
|
+
options = %Q!\t<option value="#{h theme}">(default)</option>\n! + options
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
<<HTML
|
42
|
+
<form class="comment" method="get" action="#{h @index}">
|
43
|
+
<select name="select_theme">
|
44
|
+
#{options}
|
45
|
+
</select>
|
46
|
+
<input type="submit" value="#{label}">
|
47
|
+
</form>
|
48
|
+
HTML
|
49
|
+
end
|
50
|
+
|
51
|
+
def label
|
52
|
+
'use'
|
53
|
+
end
|
54
|
+
|
55
|
+
def check_theme(name)
|
56
|
+
return false if name.nil? || name.empty?
|
57
|
+
FileTest.file?(File.join(THEME_BASE, name, name + '.css'))
|
58
|
+
end
|
59
|
+
|
60
|
+
with_cgiparam = false
|
61
|
+
theme = nil
|
62
|
+
if @cgi.params['select_theme'] && @cgi.params['select_theme'][0]
|
63
|
+
tmp = @cgi.params['select_theme'][0].gsub(/[^-.\w]/, '')
|
64
|
+
tmp.untaint
|
65
|
+
if check_theme(tmp)
|
66
|
+
theme = tmp
|
67
|
+
with_cgiparam = true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
if theme.nil? && @cgi.cookies && @cgi.cookies.include?('tdiary_select_theme')
|
71
|
+
tmp = @cgi.cookies['tdiary_select_theme'][0].gsub(/[^-.\w]/, '')
|
72
|
+
tmp.untaint
|
73
|
+
theme = tmp if check_theme(tmp)
|
74
|
+
end
|
75
|
+
if theme.nil?
|
76
|
+
theme = @conf.theme
|
77
|
+
end
|
78
|
+
|
79
|
+
cookie_path = File::dirname( @cgi.script_name )
|
80
|
+
cookie_path += '/' if cookie_path !~ /\/$/
|
81
|
+
cookie = CGI::Cookie::new(
|
82
|
+
'name' => 'tdiary_select_theme',
|
83
|
+
'value' => theme,
|
84
|
+
'path' => cookie_path,
|
85
|
+
'expires' => Time::now.gmtime + 90*24*60*60) # 90days
|
86
|
+
add_cookie(cookie)
|
87
|
+
|
88
|
+
# XXX: OK?
|
89
|
+
DEFAULT_THEME = @conf.theme
|
90
|
+
@conf.theme = theme
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# show_and_hide.rb - Show or hide the elements with a sliding motion using jQuery.
|
4
|
+
#
|
5
|
+
# Copyright (C) 2011, tamoot <tamoot+tdiary@gmail.com>
|
6
|
+
# You can redistribute it and/or modify it under GPL2.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'digest/md5'
|
10
|
+
|
11
|
+
if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
|
12
|
+
enable_js('show_and_hide.js')
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
def show_and_hide(contents, title = 'Show contents',
|
17
|
+
type = :link,
|
18
|
+
rss_title = '(Hide contents on RSS. See my page...)')
|
19
|
+
|
20
|
+
data_id = show_and_hide_id(contents)
|
21
|
+
|
22
|
+
toggle_attr = {:class => 'show_and_hide_toggle',
|
23
|
+
:"data-showandhideid" => data_id}
|
24
|
+
|
25
|
+
dom_contents = ''
|
26
|
+
|
27
|
+
if feed? # RSS
|
28
|
+
dom_contents = h(rss_title)
|
29
|
+
|
30
|
+
elsif type.to_s == 'button'
|
31
|
+
toggle_attr.merge!(:value => title, :type => "button")
|
32
|
+
dom_contents = %Q|<input #{hash2attr(toggle_attr)}>| +
|
33
|
+
show_and_hide_contents(contents, data_id)
|
34
|
+
|
35
|
+
else
|
36
|
+
toggle_attr.merge!(:href => 'javascript:void(0)')
|
37
|
+
dom_contents = %Q|<a #{hash2attr(toggle_attr)}>#{h(title)}</a>| +
|
38
|
+
show_and_hide_contents(contents, data_id)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
dom_contents
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
def show_and_hide_id(contents)
|
47
|
+
@@show_and_hide_counter ||= 0
|
48
|
+
@@show_and_hide_counter += 1
|
49
|
+
|
50
|
+
"#{Time::now.strftime("%s")}_#{@@show_and_hide_counter}_#{ Digest::MD5.hexdigest(contents)}"
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def show_and_hide_contents(contents, id)
|
55
|
+
%Q|<pre class="show_and_hide" id="#{id}">#{h(contents)}</pre>|
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
def hash2attr(hash)
|
60
|
+
attrs = []
|
61
|
+
|
62
|
+
hash.keys.each do |k|
|
63
|
+
attrs << %Q|#{k}="#{hash[k]}"|
|
64
|
+
end
|
65
|
+
|
66
|
+
attrs.join(" ")
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
# Local Variables:
|
71
|
+
# mode: ruby
|
72
|
+
# indent-tabs-mode: t
|
73
|
+
# tab-width: 3
|
74
|
+
# ruby-indent-level: 3
|
75
|
+
# End:
|
76
|
+
# vim: ts=3
|
77
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#
|
2
|
+
# slideshare.rb - insert some services of slideshare.net
|
3
|
+
#
|
4
|
+
# Copyright (C) 2011, Kiwamu Okabe <kiwamu@debian.or.jp>.
|
5
|
+
# You can redistribute it and/or modify it under GPL2.
|
6
|
+
#
|
7
|
+
|
8
|
+
def slideshare( embed_code )
|
9
|
+
%Q|<iframe src="http://www.slideshare.net/slideshow/embed_code/#{embed_code}" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>|
|
10
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# socialbutton.rb
|
2
|
+
#
|
3
|
+
# Copyright (c) 2011 MATSUOKA Kohei <kmachu@gmail.com>
|
4
|
+
# You can redistribute it and/or modify it under GPL2.
|
5
|
+
#
|
6
|
+
|
7
|
+
# enable social button names
|
8
|
+
@conf['socialbutton.enables'] ||= 'twitter,hatena,facebook_like'
|
9
|
+
# screen name of the user to attribute the tweet to
|
10
|
+
@conf['socialbutton.twitter.via'] ||= ''
|
11
|
+
|
12
|
+
def socialbutton_js_settings
|
13
|
+
enable_js('jquery.socialbutton.js')
|
14
|
+
enable_js('socialbutton.js')
|
15
|
+
add_js_setting('$tDiary.plugin.socialbutton')
|
16
|
+
# convert array to json
|
17
|
+
add_js_setting('$tDiary.plugin.socialbutton.enables',
|
18
|
+
%Q|["#{@conf['socialbutton.enables'].split(',').join('", "')}"]|)
|
19
|
+
|
20
|
+
if @conf['socialbutton.twitter.via'] != ''
|
21
|
+
options = "{ twitter: { via: '#{@conf['socialbutton.twitter.via']}' } }"
|
22
|
+
else
|
23
|
+
options = "{}"
|
24
|
+
end
|
25
|
+
add_js_setting('$tDiary.plugin.socialbutton.options', options)
|
26
|
+
end
|
27
|
+
|
28
|
+
socialbutton_footer = Proc.new { %Q|<div class="socialbuttons"></div>| }
|
29
|
+
if blogkit?
|
30
|
+
add_body_leave_proc(socialbutton_footer)
|
31
|
+
else
|
32
|
+
add_section_leave_proc(socialbutton_footer)
|
33
|
+
end
|
34
|
+
|
35
|
+
add_conf_proc('socialbutton', @socialbutton_label_conf) do
|
36
|
+
@conf['socialbutton.enables'] ||= []
|
37
|
+
if @mode == 'saveconf'
|
38
|
+
@conf['socialbutton.enables'] = @cgi.params['socialbutton.enables'].join(",")
|
39
|
+
@conf['socialbutton.twitter.via'] = @cgi.params['socialbutton.twitter.via'][0]
|
40
|
+
end
|
41
|
+
|
42
|
+
result = <<-HTML
|
43
|
+
<h3>#{@socialbutton_label_enables}</h3>
|
44
|
+
<ul>
|
45
|
+
HTML
|
46
|
+
['twitter', 'hatena', 'evernote', 'facebook_like', 'google_plusone', 'pinterest'].each do |service|
|
47
|
+
checked = @conf['socialbutton.enables'].index(service) ? 'checked' : ''
|
48
|
+
id = "socialbutton.enables.#{service}"
|
49
|
+
result << %Q|<li><input id="#{id}" name="socialbutton.enables" type="checkbox" value="#{service}" #{checked}>|
|
50
|
+
result << %Q|<label for="#{id}">#{service}</label></li>|
|
51
|
+
end
|
52
|
+
result << <<-HTML
|
53
|
+
</ul>
|
54
|
+
<h3>#{@socialbutton_label_twitter_via}</h3>
|
55
|
+
<p><input name="socialbutton.twitter.via" value="#{h(@conf['socialbutton.twitter.via'])}"></p>
|
56
|
+
HTML
|
57
|
+
end
|
58
|
+
|
59
|
+
# load javascript
|
60
|
+
socialbutton_js_settings()
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2011, KADO Masanori <kdmsnr@gmail.com>
|
3
|
+
# You can redistribute it and/or modify it under GPL.
|
4
|
+
#
|
5
|
+
# display book info in http://tatsu-zine.com/ like amazon.rb
|
6
|
+
# USAGE: {{tatsu_zine 1}}
|
7
|
+
|
8
|
+
require 'open-uri'
|
9
|
+
|
10
|
+
def tatsu_zine_cache_dir
|
11
|
+
cache = "#{@cache_path}/tatsu-zine"
|
12
|
+
Dir.mkdir( cache ) unless File.directory?( cache )
|
13
|
+
cache
|
14
|
+
end
|
15
|
+
|
16
|
+
def tatsu_zine_cache_set( id, result )
|
17
|
+
File.open( "#{tatsu_zine_cache_dir}/#{id}", "w" ) do |f|
|
18
|
+
f.write result
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def tatsu_zine_cache_get( id )
|
23
|
+
File.open( "#{tatsu_zine_cache_dir}/#{id}", "r" ) do |f|
|
24
|
+
f.read
|
25
|
+
end
|
26
|
+
rescue
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def tatsu_zine( id, doc = nil )
|
31
|
+
if !@conf.secure and !(result = tatsu_zine_cache_get(id)).nil?
|
32
|
+
return result
|
33
|
+
end
|
34
|
+
|
35
|
+
link = "http://tatsu-zine.com/books/#{id}"
|
36
|
+
doc ||= open( link ).read
|
37
|
+
title = doc.match(%r|<meta property="og:title" content="(.*)">|).to_a[1]
|
38
|
+
image = doc.match(%r|<meta property="og:image" content="(.*)">|).to_a[1]
|
39
|
+
price = doc.match(%r|<p class="price">[\r\n]?(.*?)[\r\n]?</p>|m).to_a[1].
|
40
|
+
gsub(/\s/, '')
|
41
|
+
author = doc.match(%r|<p class="author">(.*)</p>|).to_a[1]
|
42
|
+
|
43
|
+
result = <<-EOS
|
44
|
+
<a class="amazon-detail" href="#{h link}"><span class="amazon-detail">
|
45
|
+
<img class="amazon-detail left" src="#{h image}"
|
46
|
+
height="150" width="100"
|
47
|
+
alt="#{h title}">
|
48
|
+
<span class="amazon-detail-desc">
|
49
|
+
<span class="amazon-title">#{h title}</span><br>
|
50
|
+
<span class="amazon-author">#{h author}</span><br>
|
51
|
+
<span class="amazon-price">#{h price}</span>
|
52
|
+
</span><br style="clear: left">
|
53
|
+
</span></a>
|
54
|
+
EOS
|
55
|
+
|
56
|
+
tatsu_zine_cache_set( id, result ) unless @conf.secure
|
57
|
+
result
|
58
|
+
rescue
|
59
|
+
link
|
60
|
+
end
|
61
|
+
|
62
|
+
if __FILE__ == $0
|
63
|
+
require 'test/unit'
|
64
|
+
class TestTatsuZine < Test::Unit::TestCase
|
65
|
+
def setup
|
66
|
+
@conf = Struct.new("Conf", :secure).new(true)
|
67
|
+
def h(str); str; end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_tatsu_zine
|
71
|
+
expect = <<-EOS
|
72
|
+
<a class="amazon-detail" href="http://tatsu-zine.com/books/winrubybuild"><span class="amazon-detail">
|
73
|
+
<img class="amazon-detail left" src="http://tatsu-zine.com/images/books/1/cover_s.jpg"
|
74
|
+
height="150" width="100"
|
75
|
+
alt="Ruby環境構築講座 Windows編">
|
76
|
+
<span class="amazon-detail-desc">
|
77
|
+
<span class="amazon-title">Ruby環境構築講座 Windows編</span><br>
|
78
|
+
<span class="amazon-author">arton</span><br>
|
79
|
+
<span class="amazon-price">1,000円(税込)</span>
|
80
|
+
</span><br style="clear: left">
|
81
|
+
</span></a>
|
82
|
+
EOS
|
83
|
+
assert_equal expect, tatsu_zine('winrubybuild')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# Local Variables:
|
89
|
+
# mode: ruby
|
90
|
+
# indent-tabs-mode: t
|
91
|
+
# tab-width: 3
|
92
|
+
# ruby-indent-level: 3
|
93
|
+
# End:
|
@@ -0,0 +1,296 @@
|
|
1
|
+
# tdiarygraph_flashstyle.rb $Revision: 1.3 $
|
2
|
+
#
|
3
|
+
# Copyright (c) 2004 phonondrive <tdiary@phonondrive.com>
|
4
|
+
# Distributed under the GPL
|
5
|
+
#
|
6
|
+
# プラグイン配布ページ:
|
7
|
+
# http://phonondrive.com/trd/
|
8
|
+
# --------------------------------------------------------------------
|
9
|
+
#
|
10
|
+
#
|
11
|
+
#
|
12
|
+
# Abstract:
|
13
|
+
# --------------------------------------------------------------------
|
14
|
+
# counter.rb のカウンタログ (counter.log) をグラフ化した
|
15
|
+
# Flash アプレットを表示します。
|
16
|
+
#
|
17
|
+
#
|
18
|
+
# Usage:
|
19
|
+
# --------------------------------------------------------------------
|
20
|
+
# プラグインは、プラグインフォルダに入れてください。
|
21
|
+
# tdiarygraph*.swf を tdiary.rb と同じフォルダにアップロードします。
|
22
|
+
# ヘッダ、フッタ部に記述した <%= tdiarygraph_flashstyle %> の部分に、
|
23
|
+
# Flash アプレットが表示されます。
|
24
|
+
# counter.log は日記登録時に .swf と同じフォルダにコピーされます。
|
25
|
+
#
|
26
|
+
# ※ counter.rb を使用しており、かつカウンタログ (counter.log) の出力を
|
27
|
+
# オンにしている必要があります。
|
28
|
+
#
|
29
|
+
#
|
30
|
+
# Options:
|
31
|
+
# --------------------------------------------------------------------
|
32
|
+
# グラフの色、透明度、サイズなどは、プリファレンス画面で設定できます。
|
33
|
+
#
|
34
|
+
#
|
35
|
+
# In secure mode:
|
36
|
+
# --------------------------------------------------------------------
|
37
|
+
# たぶん動作しません。
|
38
|
+
#
|
39
|
+
#
|
40
|
+
# Acknowledgements:
|
41
|
+
# --------------------------------------------------------------------
|
42
|
+
# counter.rb (counter.log)
|
43
|
+
#
|
44
|
+
# Copyright (c) 2002 MUTOH Masao <mutoh@highway.ne.jp>
|
45
|
+
# Distributed under the GPL2.
|
46
|
+
# http://ponx.s5.xrea.com/hiki/ja/counter.rb.html
|
47
|
+
#
|
48
|
+
#
|
49
|
+
=begin ChangeLog
|
50
|
+
2004.04.27 phonondrive <tdiary@phonondrive.com>
|
51
|
+
* version 1.3.0
|
52
|
+
キャッシュ対策としてユニークIDを付加してファイル取得するオプションを追加
|
53
|
+
対応 Flash ファイルを e 系列に変更
|
54
|
+
フォントを _sans から 04b03b に変更
|
55
|
+
04b03b.ttf, copyright (c) 1998-2001 YUJI OSHIMOTO
|
56
|
+
http://www.04.jp.org/
|
57
|
+
2004.04.10 phonondrive <tdiary@phonondrive.com>
|
58
|
+
* version 1.2.1
|
59
|
+
レポート書式で改行タグが機能しない不具合を修正
|
60
|
+
背景の枠線を表示しないオプションを追加
|
61
|
+
対応 Flash ファイルを d 系列に変更
|
62
|
+
2004.04.09 phonondrive <tdiary@phonondrive.com>
|
63
|
+
* version 1.2.0
|
64
|
+
ログファイルが転送されない不具合を修正
|
65
|
+
作成するログのデフォルト名を変更 (tdiarygraph.log → counter.log)
|
66
|
+
線幅を絶対値で指定出来るオプションを追加
|
67
|
+
レポート書式のカスタマイズオプションを追加
|
68
|
+
対応 Flash ファイルを c 系列に変更
|
69
|
+
2004.04.05 phonondrive <tdiary@phonondrive.com>
|
70
|
+
* version 1.1.1
|
71
|
+
線の太さを変更するオプションを追加
|
72
|
+
対応 Flash ファイルに b 系列を追加
|
73
|
+
2004.04.05 phonondrive <tdiary@phonondrive.com>
|
74
|
+
* version 1.1.0
|
75
|
+
Ruby 1.6.x に対応 (1.6.7 で動作確認)
|
76
|
+
作成するログのデフォルト名を変更 (counter.log → tdiarygraph.log)
|
77
|
+
2004.04.04 phonondrive <tdiary@phonondrive.com>
|
78
|
+
* version 1.0.0
|
79
|
+
=end
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
# --------------------------------------------------------------------
|
85
|
+
# プラグインの表示
|
86
|
+
# --------------------------------------------------------------------
|
87
|
+
|
88
|
+
def tdiarygraph_flashstyle
|
89
|
+
if @conf['tdiarygraph_f.templete'] == nil or @conf['tdiarygraph_f.templete'] == ""
|
90
|
+
%Q|使用を開始するには、<a href="./#{h @update}?conf=tdiarygraph_f">プリファレンス画面</a>にて一度設定を完了して下さい。(tdiarygraph-flashstyle)|
|
91
|
+
else
|
92
|
+
logname = ((@conf['tdiarygraph_f.log_path'] != "" and @conf['tdiarygraph_f.log_path'] != nil) ? @conf['tdiarygraph_f.log_path'] : "counter.log")
|
93
|
+
@conf['tdiarygraph_f.templete'].sub(/&uid/, "\\&=#{File.mtime(logname.untaint).to_i}")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
# --------------------------------------------------------------------
|
99
|
+
# 日記登録時の処理 (counter.log のコピー)
|
100
|
+
# --------------------------------------------------------------------
|
101
|
+
|
102
|
+
if /\A(?:append|replace)\z/ =~ @mode and @cgi.params['hide'][0] != 'true' then
|
103
|
+
logname = ((@conf['tdiarygraph_f.log_path'] != "" and @conf['tdiarygraph_f.log_path'] != nil) ? @conf['tdiarygraph_f.log_path'] : "counter.log")
|
104
|
+
|
105
|
+
open("#{@cache_path}/counter/counter.log"){|input|
|
106
|
+
open(logname, "w"){|output|
|
107
|
+
output.write(input.read)
|
108
|
+
}
|
109
|
+
}
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
# --------------------------------------------------------------------
|
114
|
+
# プリファレンス画面での設定
|
115
|
+
# --------------------------------------------------------------------
|
116
|
+
|
117
|
+
add_conf_proc( 'tdiarygraph_f', 'tdiarygraph-flashstyle の設定' ) do
|
118
|
+
|
119
|
+
if @mode == 'saveconf' then
|
120
|
+
|
121
|
+
filename = "tdiarygraph468x60e.swf"
|
122
|
+
width = "468"
|
123
|
+
height = "60"
|
124
|
+
argvs = ""
|
125
|
+
|
126
|
+
argv = Array.new
|
127
|
+
|
128
|
+
@conf['tdiarygraph_f.uid'] = @cgi.params['uid'][0]
|
129
|
+
argv << "#{Time.now.to_i}&uid" if @conf['tdiarygraph_f.uid'] == "1"
|
130
|
+
|
131
|
+
@conf['tdiarygraph_f.type'] = @cgi.params['type'][0]
|
132
|
+
@conf['tdiarygraph_f.filename'] = @cgi.params['filename'][0]
|
133
|
+
@conf['tdiarygraph_f.width'] = @cgi.params['width'][0]
|
134
|
+
@conf['tdiarygraph_f.height'] = @cgi.params['height'][0]
|
135
|
+
|
136
|
+
@conf['tdiarygraph_f.log_path'] = @cgi.params['log_path'][0]
|
137
|
+
argv << "log_path=#{@cgi.params['log_path'][0]}" if @cgi.params['log_path'][0] != ""
|
138
|
+
@conf['tdiarygraph_f.init_num'] = @cgi.params['init_num'][0]
|
139
|
+
argv << "init_num=#{@cgi.params['init_num'][0]}" if @cgi.params['init_num'][0] != ""
|
140
|
+
|
141
|
+
@conf['tdiarygraph_f.text_text'] = @cgi.params['text_text'][0].upcase
|
142
|
+
argv << "text_text=#{h NKF::nkf('-s', @cgi.params['text_text'][0].upcase)}" if @cgi.params['text_text'][0] != ""
|
143
|
+
@conf['tdiarygraph_f.text_rgb'] = @cgi.params['text_rgb'][0]
|
144
|
+
argv << "text_rgb=0x#{@cgi.params['text_rgb'][0]}" if @cgi.params['text_rgb'][0] != ""
|
145
|
+
@conf['tdiarygraph_f.text_report'] = @cgi.params['text_report'][0]
|
146
|
+
argv << "text_report=#{@cgi.params['text_report'][0]}" if @cgi.params['text_report'][0] == "0"
|
147
|
+
@conf['tdiarygraph_f.text_report_format'] = @cgi.params['text_report_format'][0]
|
148
|
+
argv << "text_report_format=#{tdiarygraph_flashstyle_text_report_format(@cgi.params['text_report_format'][0])}" if @cgi.params['text_report_format'][0] != ""
|
149
|
+
@conf['tdiarygraph_f.text_report_rgb'] = @cgi.params['text_report_rgb'][0]
|
150
|
+
argv << "text_report_rgb=0x#{@cgi.params['text_report_rgb'][0]}" if @cgi.params['text_report_rgb'][0] != ""
|
151
|
+
@conf['tdiarygraph_f.bg_rgb'] = @cgi.params['bg_rgb'][0]
|
152
|
+
argv << "bg_rgb=0x#{@cgi.params['bg_rgb'][0]}" if @cgi.params['bg_rgb'][0] != ""
|
153
|
+
@conf['tdiarygraph_f.bg_alpha'] = @cgi.params['bg_alpha'][0]
|
154
|
+
argv << "bg_alpha=#{@cgi.params['bg_alpha'][0]}" if @cgi.params['bg_alpha'][0] != ""
|
155
|
+
@conf['tdiarygraph_f.bg_frame'] = @cgi.params['bg_frame'][0]
|
156
|
+
argv << "bg_frame=#{@cgi.params['bg_frame'][0]}" if @cgi.params['bg_frame'][0] == "1"
|
157
|
+
@conf['tdiarygraph_f.bar_rgb'] = @cgi.params['bar_rgb'][0]
|
158
|
+
argv << "bar_rgb=0x#{@cgi.params['bar_rgb'][0]}" if @cgi.params['bar_rgb'][0] != ""
|
159
|
+
@conf['tdiarygraph_f.bar_alpha'] = @cgi.params['bar_alpha'][0]
|
160
|
+
argv << "bar_alpha=#{@cgi.params['bar_alpha'][0]}" if @cgi.params['bar_alpha'][0] != ""
|
161
|
+
@conf['tdiarygraph_f.line_rgb'] = @cgi.params['line_rgb'][0]
|
162
|
+
argv << "line_rgb=0x#{@cgi.params['line_rgb'][0]}" if @cgi.params['line_rgb'][0] != ""
|
163
|
+
@conf['tdiarygraph_f.line_alpha'] = @cgi.params['line_alpha'][0]
|
164
|
+
argv << "line_alpha=#{@cgi.params['line_alpha'][0]}" if @cgi.params['line_alpha'][0] != ""
|
165
|
+
|
166
|
+
@conf['tdiarygraph_f.bar_width'] = @cgi.params['bar_width'][0]
|
167
|
+
argv << "bar_width=#{@cgi.params['bar_width'][0]}" if @cgi.params['bar_width'][0] != ""
|
168
|
+
@conf['tdiarygraph_f.line_width'] = @cgi.params['line_width'][0]
|
169
|
+
argv << "line_width=#{@cgi.params['line_width'][0]}" if @cgi.params['line_width'][0] != ""
|
170
|
+
|
171
|
+
@conf['tdiarygraph_f.bold'] = @cgi.params['bold'][0]
|
172
|
+
argv << "bold=#{@cgi.params['bold'][0]}" if @cgi.params['bold'][0] != ""
|
173
|
+
|
174
|
+
@conf['tdiarygraph_f.preview'] = @cgi.params['preview'][0]
|
175
|
+
|
176
|
+
if @cgi.params['type'][0] == "0"
|
177
|
+
filename = @cgi.params['filename'][0]
|
178
|
+
width = @cgi.params['width'][0]
|
179
|
+
height = @cgi.params['height'][0]
|
180
|
+
elsif @cgi.params['type'][0]
|
181
|
+
filename = "tdiarygraph#{@cgi.params['type'][0].delete('-')}.swf"
|
182
|
+
width = @cgi.params['type'][0].split('-').first.split('x')[0]
|
183
|
+
height = @cgi.params['type'][0].split('-').first.split('x')[1]
|
184
|
+
end
|
185
|
+
|
186
|
+
if argv.size > 0 then argvs = "?#{argv.join('&')}" end
|
187
|
+
|
188
|
+
@conf['tdiarygraph_f.templete'] = tdiarygraph_flashstyle_templete(filename, argvs, width, height)
|
189
|
+
end
|
190
|
+
|
191
|
+
|
192
|
+
<<-HTML
|
193
|
+
<h3 class="subtitle">設定の概要</h3>
|
194
|
+
<p>() 内は初期値です。初期値を使用する場合は、空欄のままで構いません。色は RRGGBB 形式で指定して下さい。不透明度は 0 (透明) 〜 100 (不透明) です。線幅はピクセルで指定します。</p>
|
195
|
+
<hr>
|
196
|
+
<h3 class="subtitle">プレビュー</h3>
|
197
|
+
#{tdiarygraph_flashstyle_preview}
|
198
|
+
<hr>
|
199
|
+
<h3 class="subtitle">表示する Flash アプレットの選択</h3>
|
200
|
+
<p><select name="type">
|
201
|
+
<option value="0"#{" selected" if @conf['tdiarygraph_f.type'] == "0"}>プリセットを使用しない</option>
|
202
|
+
<option value="468x60-e"#{" selected" if @conf['tdiarygraph_f.type'] == "468x60-e" or @conf['tdiarygraph_f.type'] == nil or @conf['tdiarygraph_f.type'] == ""}>tdiarygraph468x60e.swf, 468x60</option>
|
203
|
+
<option value="728x90-e"#{" selected" if @conf['tdiarygraph_f.type'] == "728x90-e"}>tdiarygraph728x90e.swf, 728x90</option>
|
204
|
+
<option value="125x125-e"#{" selected" if @conf['tdiarygraph_f.type'] == "125x125-e"}>tdiarygraph125x125e.swf, 125x125</option>
|
205
|
+
<option value="240x180-e"#{" selected" if @conf['tdiarygraph_f.type'] == "240x180-e"}>tdiarygraph240x180e.swf, 240x180</option>
|
206
|
+
<option value="120x90-e"#{" selected" if @conf['tdiarygraph_f.type'] == "120x90-e"}>tdiarygraph120x90e.swf, 120x90</option>
|
207
|
+
</select></p>
|
208
|
+
<h3 class="subtitle">プリセットを使用しない場合は、以下で指定して下さい。</h3>
|
209
|
+
<p>Flash のファイル名<br><input name="filename" value="#{h @conf['tdiarygraph_f.filename']}" size="40"></p>
|
210
|
+
<p>Flash の表示幅<br><input name="width" value="#{h @conf['tdiarygraph_f.width']}" size="20"></p>
|
211
|
+
<p>Flash の表示高さ<br><input name="height" value="#{h @conf['tdiarygraph_f.height']}" size="20"></p>
|
212
|
+
<hr>
|
213
|
+
<h3 class="subtitle">アクセスログデータ</h3>
|
214
|
+
<p>本プラグインが作成する counter.log の複製のファイル名 (counter.log)<br><input name="log_path" value="#{h @conf['tdiarygraph_f.log_path']}" size="20"></p>
|
215
|
+
<p>累計アクセス数の初期値。(0) counter.rb で init_num を指定している場合は、同じ値 (#{@conf['counter.init_num']}) を設定してください。<br><input name="init_num" value="#{h @conf['tdiarygraph_f.init_num']}" size="20"></p>
|
216
|
+
<hr>
|
217
|
+
<h3 class="subtitle">タイトルテキスト</h3>
|
218
|
+
<p>タイトルテキスト (TDIARYGRAPH-FLASHSTYLE)<br>使用出来る文字は、英大文字 (A-Z) と数字 (0-9)、および記号のみです。<br><input name="text_text" value="#{h @conf['tdiarygraph_f.text_text']}" size="20"></p>
|
219
|
+
<p>タイトルテキストの色 (FFFFFF)<br><input name="text_rgb" value="#{h @conf['tdiarygraph_f.text_rgb']}" size="20"></p>
|
220
|
+
<h3 class="subtitle">レポートテキスト</h3>
|
221
|
+
<p>レポートの表示有無 (表示)<br><select name="text_report">
|
222
|
+
<option value="1"#{" selected" if @conf['tdiarygraph_f.text_report'] != "0"}>表示</option>
|
223
|
+
<option value="0"#{" selected" if @conf['tdiarygraph_f.text_report'] == "0"}>非表示</option>
|
224
|
+
</select></p>
|
225
|
+
<p>レポートテキストの色 (CCCCCC)<br><input name="text_report_rgb" value="#{h @conf['tdiarygraph_f.text_report_rgb']}" size="20"></p>
|
226
|
+
<h3 class="subtitle">レポート書式のカスタマイズ</h3>
|
227
|
+
<p>タグを埋め込んだ位置にデータが展開されます。<br>使用出来る文字 (タグを除く) は、英大文字 (A-Z) と数字 (0-9)、および記号のみです。<br><input name="text_report_format" value="#{h @conf['tdiarygraph_f.text_report_format']}" size="70"></p>
|
228
|
+
<p>[ 使用出来るタグ ] <firstday> : ログ初日, <lastday> : ログ最終日, <days> : ログ日数, <total> : 累計アクセス数, <peak> : 日別最大アクセス数, <br> : 改行</p>
|
229
|
+
<hr>
|
230
|
+
<h3 class="subtitle">背景や棒グラフの色</h3>
|
231
|
+
<p>背景の色 (333333)<br><input name="bg_rgb" value="#{h @conf['tdiarygraph_f.bg_rgb']}" size="20"></p>
|
232
|
+
<p>背景の不透明度 (100)<br><input name="bg_alpha" value="#{h @conf['tdiarygraph_f.bg_alpha']}" size="20"></p>
|
233
|
+
<p>背景の枠線 (非表示)<br><select name="bg_frame">
|
234
|
+
<option value="0"#{" selected" if @conf['tdiarygraph_f.bg_frame'] == "0" or @conf['tdiarygraph_f.bg_frame'] == nil or @conf['tdiarygraph_f.bg_frame'] == ""}>非表示</option>
|
235
|
+
<option value="1"#{" selected" if @conf['tdiarygraph_f.bg_frame'] == "1"}>左と上に表示</option>
|
236
|
+
</select></p>
|
237
|
+
<p>日別アクセス数棒グラフの色 (CCCCCC)<br><input name="bar_rgb" value="#{h @conf['tdiarygraph_f.bar_rgb']}" size="20"></p>
|
238
|
+
<p>日別アクセス数棒グラフの不透明度 (100)<br><input name="bar_alpha" value="#{h @conf['tdiarygraph_f.bar_alpha']}" size="20"></p>
|
239
|
+
<p>累計アクセス数棒グラフの色 (666666)<br><input name="line_rgb" value="#{h @conf['tdiarygraph_f.line_rgb']}" size="20"></p>
|
240
|
+
<p>累計アクセス数棒グラフの不透明度 (100)<br><input name="line_alpha" value="#{h @conf['tdiarygraph_f.line_alpha']}" size="20"></p>
|
241
|
+
<hr>
|
242
|
+
<h3 class="subtitle">棒グラフの線幅</h3>
|
243
|
+
<p>日別アクセス数棒グラフの線幅を絶対値で指定します。<br><input name="bar_width" value="#{h @conf['tdiarygraph_f.bar_width']}" size="20"></p>
|
244
|
+
<p>累計アクセス数棒グラフの線幅を絶対値で指定します。<br><input name="line_width" value="#{h @conf['tdiarygraph_f.line_width']}" size="20"></p>
|
245
|
+
<hr>
|
246
|
+
<h3 class="subtitle">モアレ対策</h3>
|
247
|
+
<p>棒グラフの線幅を相対的に微調整します。(0) 設定した値に対して線幅がリニアに変更されるわけではありません。<br><br><input name="bold" value="#{h @conf['tdiarygraph_f.bold']}" size="20"></p>
|
248
|
+
<hr>
|
249
|
+
<h3 class="subtitle">ユニークID を使用したファイル取得</h3>
|
250
|
+
<p>ファイル取得のリクエストにユニークID (例えば ?#{Time.now.to_i}) を含めることにより、古いファイルがブラウザにキャッシュされたままになるのを防ぎます。Flash のユニークID はプリファレンス設定時に、ログファイルのユニークID はエントリ登録時に更新されます。</p>
|
251
|
+
<p>ユニークID の付加 (付加する)<br><select name="uid">
|
252
|
+
<option value="1"#{" selected" if @conf['tdiarygraph_f.uid'] != "0"}>付加する</option>
|
253
|
+
<option value="0"#{" selected" if @conf['tdiarygraph_f.uid'] == "0"}>付加しない</option>
|
254
|
+
</select></p>
|
255
|
+
<hr>
|
256
|
+
<h3 class="subtitle">プレビュー</h3>
|
257
|
+
<p>表示したい SWF ファイル (.swf) が tdiary.rb と同じフォルダにアップロードされている必要があります。また、カウンタログファイルが SWF ファイルと同じフォルダに転送されていない場合にはグラフが表示されません。</p>
|
258
|
+
<p>プレビュー (非表示)<br><select name="preview">
|
259
|
+
<option value="0"#{" selected" if @conf['tdiarygraph_f.preview'] != "1"}>非表示</option>
|
260
|
+
<option value="1"#{" selected" if @conf['tdiarygraph_f.preview'] == "1"}>表示</option>
|
261
|
+
</select></p>
|
262
|
+
HTML
|
263
|
+
|
264
|
+
end
|
265
|
+
|
266
|
+
|
267
|
+
def tdiarygraph_flashstyle_preview
|
268
|
+
unless @conf.mobile_agent?
|
269
|
+
<<-r
|
270
|
+
<p>#{if @conf['tdiarygraph_f.preview'] == "1" then "#{tdiarygraph_flashstyle}" else "プレビュー表示を有効にすると、ここに Flash が表示されます。" end}</p>
|
271
|
+
r
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
|
276
|
+
def tdiarygraph_flashstyle_templete( filename="tdiarygraph468x60e.swf", argvs="", width="468", height="60" )
|
277
|
+
<<-r
|
278
|
+
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.cab" width="#{h width}" height="#{h height}" id="tdiarygraph" align="middle">
|
279
|
+
<param name="allowScriptAccess" value="sameDomain">
|
280
|
+
<param name="movie" value="#{h filename}#{h argvs}">
|
281
|
+
<param name="play" value="false">
|
282
|
+
<param name="loop" value="false">
|
283
|
+
<param name="quality" value="high">
|
284
|
+
<param name="wmode" value="transparent">
|
285
|
+
<param name="bgcolor" value="#ffffff">
|
286
|
+
<embed src="#{h filename}#{h argvs}" play="false" loop="false" quality="high" wmode="transparent" bgcolor="#ffffff" width="#{h width}" height="#{h height}" name="tdiarygraph" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed>
|
287
|
+
</object>
|
288
|
+
r
|
289
|
+
end
|
290
|
+
|
291
|
+
|
292
|
+
def tdiarygraph_flashstyle_text_report_format( format="" )
|
293
|
+
if format != ""
|
294
|
+
r = format.gsub('<', '<').gsub('>', '>').gsub(' ', '+')
|
295
|
+
end
|
296
|
+
end
|