エントリー

カテゴリー「サイト」の検索結果は以下のとおりです。

freo Ver 0.2.0

freoに以下の機能を追加しました。

  • GDだけでなく、ImageMagickにも対応。
  • 作品ファイルへの直接アクセスを防げる仕組みを実装。
  • 作品ファイルは、携帯から閲覧するとキャリアに応じた画像変換ができるように改良。
  • 管理ページでの検索機能を調整。

作品ファイルへの直接アクセスは、

  • http://www.example.com/freo/index.php/view/15 に添付されたファイルは、http://www.example.com/freo/index.php/file/view/15 から、PHP経由でアクセスできる
  • http://www.example.com/freo/index.php/page/about に添付されたファイルは、http://www.example.com/freo/index.php/file/page/about から、PHP経由でアクセスできる
  • つまり、URLに file/ を付加するとPHP経由で添付ファイルにアクセスできる
  • その上で、.htaccess などで添付ファイルへのアクセスを禁止しておけば、作品ファイルへの直接アクセスを防ぐことができる

という仕組みで制限します。つまり、ファイルにアクセスするためには必ずfreoを経由する必要があるため、freoのアクセス制限機能がそのまま反映されます。freo側で閲覧制限をかけておけば「他のサイトから画像に直接リンクされる」という問題も起こり得なくなります。

これだけの解説だと理解し難くて使えないと思うので、そのうち詳細な解説を作成する予定。

コメント投稿エラー

しばらくの間、コメントを投稿しようとしてもエラーになっていました…。教えてもらうまで気付いてなかった。

それとは関係なく、配布ファイルも少しだけ修正。

エントリーはともかく、ページで「続きを読む」を使っても実質意味の無い状態だったので、少し仕様変更。エントリーやページに直接アクセスしても、すぐに全文が表示されないようにしてみた。
ちなみに、テンプレートを編集するだけで以前の仕様に戻すことができます。(解説はまだ無いですが。)

あとは細かな不具合修正とか。

freo Ver 0.1.0

freoに機能を追加しました。詳しい内容は、配布ページの解説を参照してください。加筆した箇所は赤文字で注釈を入れています。

Ver 0.0.2 の次が Ver 0.1.0 ですが、何故 Ver 0.0.3 でないのかと思われるかもしれないので、バージョン情報について補足しておきます。
バージョン情報は3つの数字がピリオドで区切られていますが、

1つめの数字
大きな仕様変更があった場合、この数値が上がる
2つめの数字
機能追加した場合、この数値が上がる
3つめの数字
不具合修正のみの場合、この数値が上がる

というルールにしています。ただし、正式版になるまでは1つめの数字が上がることはありません。

ちなみに、今回のバージョンアップでの主な変更点は以下の2つです。

フィルター機能を実装

ご意見として送っていただいた機能です。思い付いていなかったですが、有効そうなので実装。

簡単にいうと、pixivの閲覧制限機能のようなものです。「年齢制限作品は表示しない」とか「グロテスクな作品は表示しない」など、訪問者が閲覧内容に制限をかけることができます。

既に実装済みだった閲覧制限機能は「管理者が公開範囲を指定する」機能ですが、これは「訪問者が公開範囲を指定する」機能です。

「続きを読む」機能を実装

これはそのうち実装しようと思っていた機能ですが、標準機能として実装しました。
TinyMCEの改ページ機能を利用していますが、TinyMCEが無くても機能するように設計しています。でもまだ調整の必要あり。

freoアルファ版を公開

ようやく公開できました。長かった…。

freo.jp

…と言っても、まだまだ未実装の機能があるし、使い勝手も悪いかもしれません。正式版までに少しずつ改良していきたいと思います。

「完全に一人で作ると変な方向に行ってしまう可能性があるので、細部を作りこむ前にユーザーさんからの意見を参考にしよう」

という意図でアルファ版を公開したのですが、ツールの根本的な方向性に問題があると、意見自体をもらえずダメダメになるかもしれません。そんなことは無いと思いたいですが、公開直後は色々怖かったり。

ちなみに、Web Liberty などからリンクするのはもう少し先にする予定。

freo設置サンプル

freoの設置サンプルとして、標準状態のものと作品管理サンプルのものを設置してみた。

以前にも書きましたが、ギャラリー管理サンプルにはオーストリアで撮った写真を使用しています。また、小説管理サンプルには青空文庫の小説を使用しています。

アルファ版の配布は明日にでも。

freoアルファ版公開へ向けて

設置方法や機能解説のドキュメントを作成中。ただ、いきなり詳細なドキュメントを書くのは大変なので、ひとまず最低限の解説のみです。

また、設置サンプルとして

  • 標準状態(日記形式)のもの
  • ブログ+ギャラリー管理+小説管理+トップページもブログっぽくないように設定したもの

の2種類を用意するつもり。ギャラリー管理サンプルにはオーストリアで撮った写真を使って、小説管理サンプルには著作権切れになった有名作品を使おうかなぁ…と考え中。

できれば今月中、遅くとも来月中には公開する予定。でも、サンプル作成中に「こんな機能があれば便利かも」とか思いついたら、機能追加作業に戻るかもしれません。(^^;

携帯用ページ

携帯用ページのテンプレートをちまちまと作成中。

いきなり全機能のテンプレートを作成するのは大変なので、とりあえず記事表示ページと管理ページの一部だけ作成しました。アルファ版の段階では、携帯用ページを全部作っても仕様変更によって無駄になる可能性があるし。(^^;

また、携帯でログイン状態をどうやって保持するか悩んでいましたが、今のところ

  • ログイン状態の保持にはPHP標準のセッション機能を使う
  • ただし session.use_trans_sid0 に設定し、携帯用に「URLにセッションIDを埋め込む」処理はPHPにまかせず、freo側で処理する
  • 前回のログイン情報を復元する際は、携帯の固体識別情報を利用

という方針で作成しています。
ちなみに session.use_trans_sid1 にするのは、外部にセッションIDが漏れる可能性が高いので却下。(データ送信先が外部サイトのフォームにも、無差別にセッションIDを埋め込む問題がある。url_rewriter.tags で制御できるけど、レンタルサーバーでは設定できないことが多い。)

でも携帯関連はまだ試行錯誤中。

ベンチマーク

少し前からfreoの動作が重くなったような気がしたので、どの処理が重いのかベンチマークを取ってみた。方法は以下のとおり。

$time1 = microtime();
//計測したい処理
$time2 = microtime();
echo $time2 - $time1;

単純ですが、これで「計測したい処理」の処理時間が計れるので、freo全体の処理時間を調べてみた。(登録データは現状の Favorite Labo のデータをそのまま使用。)

結果は、自分のPC上では0.48秒~0.55秒くらいでした。結構重い…。

ちなみに、記事を10件ほど投稿した以外はデフォルト状態のWordPressは、同じ方法で全体の処理時間を調べると0.27秒~0.30秒くらいでした。

freoには時系列の記事だけで200件以上登録してあるし、プラグインも色々入れてあるので仕方ないのかなぁ…それでも0.5秒は重すぎだなぁ…とか思いつつも、どこが重い処理なのか調べていくと…絵文字の変換処理が原因でした。そして絵文字の変換機能をOFFにすると、0.17秒~0.25秒くらいになりました。

うむむ、数日前に絵文字変換機能をONにしたから重くなったのか…。

絵文字の変換はMobilePictogramConverterを使っていますが、画面へ表示する直前に全データを autoConvert() メソッドに渡して一気に変換しています。全データを渡すのがダメなのかなぁ…。

また、そのうち色々調べてみるとします。

これまでに作成したプラグイン

まだ本体も完成していないfreoですが、自分用にプラグインをいくつか作成&導入していたりします。なので、これまでに作成したプラグインを書き出してみます。

なお、この雑記ページの右下にRSSリーダーを設置していますが、これは以前にPerlで作成した Web Reader です。

それ以外は、このサイトはすべてfreoの標準機能もしくはプラグインで構成されています。よほどの事でなければ、本体をいじらなくてもプラグインで機能追加できる…はず。

現時点で作成済み&導入済みのプラグインは以下のとおり。自分が欲しいと思った機能から作っています。(^^;

ブックマーク登録

ブックマークを登録できるようになります。

ブックマーク棚卸

以前に以下の記事を読んで「これは確かに有効だなぁ…」と思ったので、自分用に作成したもの。

全自動ブックマーク棚卸しが想像以上に有意義な件

この雑記ページの右下にRSSリーダーがありますが、その真上に以前のブックマークが表示されます。表示条件は「雑記にアクセスした日と同じ月日にブックマークされた記事があれば、今日登録された記事を除いてすべて表示する」なのですが、1件も表示されない日も結構あります。

ブックマークタグクラウド表示

ブックマークページにタグクラウドを表示できます。ちなみに、「ブックマーク棚卸」と「ブックマークタグクラウド表示」は、「ブックマーク登録」プラグインのためのプラグインです。(プラグインの機能を、さらに別のプラグインで拡張。)

カレンダー表示

この雑記ページの右側に表示されているカレンダーです。

カテゴリー記事数表示

この雑記ページの右側に表示されているカテゴリー一覧の件数です。処理の都合上、標準機能では記事件数を表示できないのでプラグインで対応。このプラグインはデフォルトで導入済みにしておくつもり。

コメント数表示

各記事に表示されているコメントの件数です。処理の都合上、標準機能では記事件数を表示できないのでプラグインで対応。このプラグインはデフォルトで導入済みにしておくつもり。

カウンタ

管理ページからしか閲覧できないようにしていますが、日ごとのアクセス数をカウント&閲覧できます。

メッセージ登録

匿名で一言メッセージを送信できます。まだ作っていませんが、拍手プログラムも同じような仕組みで実現できそうです。

ページ移動

前後の記事へ移動するためのリンクを設置できます。各記事ページで表示されます。

投稿キー

スパム対策。コメント登録フォームなどに設置しています。投稿キー以外にも「なぞなぞで認証」とか面白そう。プログラム自体は、投稿キープラグインの応用で実現できそうです。

タグクラウド表示

この雑記ページの右下に表示されているタグクラウドです。

タスク登録

管理ページからしかアクセスできませんが、自分用にToDoリストを管理するためのプラグインを作成しています。

freo制作状況

標準機能として実装するつもりだった機能を、ようやくひととおり実装できました。
多分。

これまで Web Diary Pro などにもらった要望も、「有用そうだけどプラグインでは実現が難しそう」なものは標準機能で実装しています。(記事ごとの公開範囲設定とか。)
…と言っても結構な量があるので、実装するつもりだったけど忘れていた…という機能があるかもしれません。なので近々再度すべて読み返して、必要に応じて標準機能を調整するとします。

その後、需要が多そうなプラグインと携帯用テンプレートを作成していく予定。両方とも仕組み自体は実装済み。
さらにその後、簡単なマニュアルを作ってからアルファ版として公開し、もし意見をもらえれば参考にして改良していきます。現状は完全に一人で作っているので、恐らく「自分は理解できているけど、初見の人には理解が難しい」部分があったり、「こんな風になっていればもっと良くなったのに」という部分が結構あると思われます。

あと、jQuery(JavaScript)を使って管理画面などの使い勝手を向上したいなぁ…とかも思っていますが、この辺りは後からどうにでもなるので、そのうち考えます。(^^;

今のところ、そんな感じでー。

ページ移動

ユーティリティ

カテゴリー

検索

エントリー検索フォーム
キーワード

過去ログ

過去ログ表示フォーム
キーワード

Feed