Page :: FrontPage

ほとんどFSWiki改造日記

ここは、私こと KG が気の向くままに更新する日記スペースです。FSWiki関連が多くなったら仕事に飽きてきているか、もしくはもの凄く仕事が捗っているかのどちらかです(笑)。

最新の日記を3日分表示しています。過去の日記は左のメニューより選んでください。

2013-09-02

[FSWiki]WIKIへのWYSIWYGエディタ実装に向けて(その1)

そもそも、なぜ WYSIWYG編集したいのか?

おそらく、それを必要としている方は、WikiをCMS的に利用される方ではないだろうか?

WikiはそもそもHTMLのようにタグなどを必要としなくてもテキスト文書として意味のある整形文書となっていることが前提であるが、それを必要としない方々にとっては Wiki固有の文法は煩わしいだけだ。したがって、WYSIWYG編集出来る方が編集も楽だと考えているのだろう。

しかし、いざWikiにWYSIWYG編集機能を実装するとなると、HTMLとWiki文法との相互変換をサポートすることが困難となる為、実装が難しい。

そこで、従来とは逆の発想で、WikiにWYSIWYG編集機能を追加するのではなく、WYSIWYGエディタにWiki書式を記入できるようにしたらどうかと考えてみた。

  • WYSIWYGで生成されたHTML文書はWikiページとは別領域に保存する。
  • WikiページにはHTML文書のテキスト分のみ抽出して出力しておく。
    • Wikiの検索機能等で文章が検索できるようにする為の布石とする。
  • Wikiページ先頭にはWYSIWYG形式であることを示すプラグインを追加しておく
  • Wikiページ編集時にプラグイン書式があるページはWYSIWYGエディタでHTML文書を表示する。

WYSIWYGエディタにはWikiのプラグイン書式を入力する機能を加える対応は必要となるが、逆の対応よりは作業も楽なはずだ。

Comment
お名前: コメント:

2013-01-28

[FSWiki]ページ管理にソート機能追加

ページ名、更新日時によるソート機能を追加してみた。

最近、スパム増えたからねぇー。削除作業くらい楽したいから・・・

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
--- ./plugin/admin/AdminPageHandler_3.6.5_.pm2013-01-24 20:31:46.000000000 +0900
+++ ./plugin/admin/AdminPageHandler.pm2013-01-25 09:29:44.000000000 +0900
@@ -175,17 +175,27 @@
 my $wiki = shift;
 my $cgi  = $wiki->get_CGI();
 
 my @freeze_list = $wiki->get_freeze_list();
 my @pages       = $wiki->get_page_list();
 my $level_list  = $wiki->get_page_level();
-my $filter = $cgi->param("filter");
-my $filterType = $cgi->param("filterType");
+my $filter      = $cgi->param("filter");
+my $filterType  = $cgi->param("filterType");
+my $sortCol     = $cgi->param("sortCol");
+my $sortOrder   = $cgi->param("sortOrder");
 
 if($filterType ne "AND" && $filterType ne "OR" && $filterType ne "NOT"){
 $filterType = "AND";
+}
+
+if($sortCol ne "1" && $sortCol ne "2"){
+$sortCol = "2";
+}
+
+if($sortOrder ne "ASC" && $sortOrder ne "DESC"){
+$sortOrder = "DESC";
 }
 
 # フィルタを保存。パラメータで指定されていなければ読み込み。
 if(defined($filter)){
 &Util::save_config_text($wiki,$self->{filter_file},"$filterType:$filter");
 } else {
@@ -203,21 +213,36 @@
           "    フィルタ\n".
           "    <input type=\"text\" name=\"filter\" size=\"30\" value=\"".Util::escapeHTML($filter)."\">\n".
           "    <input type=\"radio\" name=\"filterType\" value=\"AND\"".($filterType eq "AND" ? " checked" : "").">AND\n".
           "    <input type=\"radio\" name=\"filterType\" value=\"OR\"".($filterType eq "OR" ? " checked" : "").">OR\n".
           "    <input type=\"radio\" name=\"filterType\" value=\"NOT\"".($filterType eq "NOT" ? " checked" : "").">NOT\n".
           "    <input type=\"submit\" value=\"再表示\">\n".
+          "    <br>\n".
+          "    並び替え:<input type=\"radio\" name=\"sortCol\" value=\"1\"".($sortCol eq "1" ? " checked" : "").">ページ名".
+          "    <input type=\"radio\" name=\"sortCol\" value=\"2\"".($sortCol eq "2" ? " checked" : "").">更新日\n".
+          "    &nbsp;<input type=\"radio\" name=\"sortOrder\" value=\"ASC\"".($sortOrder eq "ASC" ? " checked" : "").">昇順\n".
+          "    <input type=\"radio\" name=\"sortOrder\" value=\"DESC\"".($sortOrder eq "DESC" ? " checked" : "").">降順\n".
           "  </p>\n".
           "  <table>\n".
           "  <tr>\n".
           "    <th><br></th>\n".
           "    <th>状態</th>\n".
           "    <th>参照</th>\n".
           "    <th width=\"200\">ページ名</th>\n".
           "    <th>最終更新日時</th>\n".
           "  </tr>\n";
+
+@pages = sort {
+my $ret = 0;
+if ($sortCol eq "1") {
+$ret = $a cmp $b;
+} else {
+$ret = $wiki->get_last_modified($a) <=> $wiki->get_last_modified($b);
+}
+$ret * ($sortOrder eq "DESC" ? -1 : 1);
+} @pages;
 
 foreach my $page (@pages){
 if($filter ne ""){
 my @dim = split(/\s+/,$filter);
 my $flag = 0;
 foreach my $word (split(/\s+/,$filter)){
Comment(5)
  • いつもサポートして頂いてありがとうございます。ご質問があります。上記ソースが書かかれているページの作り方を教えて頂けないでしょうか。以前FsWikiのページで質問させて頂きましたが、htmlのiframを使用し、そのページの一部に別のページを幅高さを指定して出力したいと考えています。色々ご質問させて頂いて申し訳ございませんがご指導・ご鞭撻のほど宜しくお願い致します。 - Dai (2013/04/03-17:19:38)
  • まず、このページのソースコード部分の表示に関してですが、コード整形プラグインを使用して記述してあります。横サイズはCSSで固定、スクロールはCSSで overflow 属性の指定で行っています。ご質問で iframe を使用してHTMLを表示したいということですが、サポート掲示板の質問では"ページの差込"とあります。Daiさんがやりたいことを、まずは整理させてください。次の(1),(2)のうち、どちらになりますか? (1)任意のWikiページを縦横サイズ指定された領域にスクロール付きで表示したい。(2)iframeを使用して別途用意したHTMLファイルを縦横サイズ指定された領域にスクロール付きで表示したい。 - KG (2013/04/03-19:42:12)
  • >>返信ありがとうございます。(2)のiframを使用し別途用意したHTMLファイルや他のWikiページを縦横指定された領域にスクロール付きで表示したいと考えています。お手数ですがご教授の程お願い致します - Dai (2013/04/04-09:56:00)
  • 他のWikiページとありますが、それはページコンテンツのみ(メニュー、ヘッダー、フッタ無し)表示したいと言うことでしょうか?そうである場合はそのWikiサイトは FSWikiで構築されていますか?FSWikiのサイトであれば、テンプレート/スタイル変更プラグインを使用することで、ページコンテンツのみ表示させることが可能なのですが・・・ - KG (2013/04/04-21:08:23)
  • IFRAMEテンプレートのテスト を行っています。こんな感じでいかがですかね? - KG (2013/04/04-22:00:35)
お名前: コメント:

2010-02-01

[Software]VMware対応! ThinkPad UltraNav ドライバー

ThinkPad UltraNav ドライバー 14.0.16.0

変更内容の項目にうれしいニュースが!!!

  • VMWare Playerでの垂直方向スクロール機能をサポート。
  • VMware Workstation 6での垂直方向スクロール機能をサポート。

ヾ(@⌒▽⌒@)ノワーイ!

早速試してみると・・・VMware上のWindowsXPでセンターボタンスクロールできるぞ!

これでリモートデスクトップ使わなくてすむよ。

Comment
お名前: コメント:

トラックバック:Trackback(0)
タグ:

最終更新時間:2006/01/13-18:11:43