refirio.org
気ままな雑記帳&実験場。好き勝手に色々やっています。
エントリー
TWITTER活用事例1000 オフイベント!に行ってきた

大阪会場にて。
前に行ったTwitterを語ろうはゆる~い雰囲気で楽しかったし、今もメッセージをやり取りしている方がいる。でも、今回は商売色が強くて個人的には合わなかった…。(東京会場とか、他の様子がどうだったのかは知りません。)
自分が場違いだったというだけで、Twitterを仕事に繋げようという強い意欲のある人には、ためになったみたいです。
freoへの質問とその回答
要望などのメッセージへは基本的にここで返信せずに実装していますが、現状をお知らせしたいメッセージに少し返信を…。
テンプレートも携帯用にいろいろと設定できると嬉しい。>CLAP等携帯テンプレートが見当たらなかったため。
templates/plugins/entry_receive/default.html というテンプレートがあったとしたら、 templates/mobiles/plugins/entry_receive/default.html にテンプレートを設置すれば携帯用のテンプレートとして認識されます。
そのうち、各プラグインの携帯用テンプレートも、ひととおり作成したいと思います。
ssi書き出しができるといいです。
JS書きだしだと、JSきってると表示されないので、diaryproでは二度手間だと思いつつ、別にCGIをおいて更新記録ページをつくっていたので。
PHPが使えるならSSIを使う必要性は無いかなぁ…と思うので、PHPで表示する方法も掲載しておきました。これでもJavaScriptなしで表示できます。
http://freo.jp/plugins/entry_output.html
可能であればMySQLを使わないバージョンも欲しいです。
MySQLが使用できるサーバーが限られていることと
使えたとしてもデータベースが1つないし数個しか利用できないなど制約もあり
テーブル増やして云々というのも
初心者には難しく取っ付きにくいのではないかと思います。
freoは初期設定ではMySQLを使用しません。なので何かの勘違いかと。
カウンタプラグインですが、管理者でログインしててもカウントされてしまいます(>_<)
これはまだ再現できていません…。
登録するとき本文にコピペをすると所々に半角空白が入ってしまいます(Firefoxで確認)。
これもまだ再現できていません…。
投稿フォームから行頭に全角スペースを入れても、確認や投稿後には消えてしまいます。小説系コンテンツを扱ってるので是非行頭の全角スペースも反映していただければと…!
タイトルなどの前後に半角スペースがあると自動で削除するようにしていますが、全角スペースは削除しません。…が、色々試してみたところ、Firefoxの場合はTinyMCEが全角スペースを勝手に削除してしまうようです。
そのうち、回避方法を探してみます。
freo Ver 0.7.0
以下の機能を追加しました。
- メディア管理の操作性を改良。
- サムネイルを作成する場合、サイズは個別に指定できるように改良。
- エントリーとページの入力制限を調整。
freoアルファ版を告知
Web Liberty からfreo.jpにリンクした。これまで長かった…。まだアルファ版だけど。
リンクしたからといって何か変わるわけではないけど、これまでよりは少し多くの人の目に触れるので、思いついていなかった便利機能の提案とかもらえたら嬉しいなぁ…。
freoの公開制限に関する質問とか
公開制限に関する質問を何度かいただいたので、以下に記載しておきます。単に「freoの不具合だった」というものもあったり。
複数の投稿ユーザーを登録している際にコメントの編集がどの投稿ユーザーでも出来る状態になっています。(例:投稿者A、投稿者Bがいるとして、Aが書いたコメントをBが編集出来る状態)
現状では「投稿者」の制限を持っていれば他人のコメントを改竄できるので、こちらも問題だと思うのですが
freoの権限は3種類ありますが、
- 管理者
- すべての操作ができる。基本的にはfreoを設置したサイト管理者が該当する。
- 投稿者
- 設定の変更など一部の操作は行えない。交換日記などで、管理者を複数設定したい場合に使用する。
- ゲスト
- 管理者専用ページには入室できない。自分の投稿したコメントは編集&削除できる。
としています。つまり、投稿者は管理者に近い権限を持っているのです。なので、投稿者がすべてのコメントを編集できるのは仕様です。ただ、
閲覧権限がないはずのコメントでも、編集は出来る状態になっている
こちらは不具合だったので修正しておきました。(投稿者が閲覧できないコメントが存在する状態でした。)
…と、ここまで書いてからようやく気付いたのですが、「投稿者」は他の「投稿者」や「管理者」が投稿したエントリーを編集&削除できないのでした。にも関わらず、コメントは「管理者」のものでも編集&削除できるのは変な仕様ですね…。
そのうち、「投稿者」は他の「投稿者」と「管理者」のコメントを編集&削除できないように修正しておきます。
エントリーのコメントなのですが「投稿者のみ」に見れるようには出来ないのでしょうか?「登録ユーザー」だとユーザー登録した人間全員が見れてしまうので、投稿者のみという事は難しいのでしょうか?
「管理者に公開」を選択すれば「管理者」と「投稿者」のみに公開されるので、ログインユーザー全員に見られることはありません。あったら不具合です…。
多くの掲示板の機能にあるようにコメントに個別にパスワードを持たせて削除・変更が出来るようには出来ないのでしょうか?
非ログインユーザーは名前やメールアドレスをCookieに記憶させることができます。ですが、一般的な掲示板のように「削除キーを入力しておけば記事を削除できる。削除キーはCookieに記憶する。」という仕様は危険なのです。
不正アクセス対策をきっちり行えば大丈夫ではありますが、綱渡りのような仕様なので、最近作成されたCMSなどは「削除キーをCookieに記憶」は(多分)実装されていないと思います。
「削除キーを入力しておけば記事を削除できる。削除キーはCookieに記憶しない。」は可能ですが「削除キーもCookieに記憶したい」という要望が来ると思うので、現在のように「ゲストユーザーとしてログインした状態でコメントを投稿すれば、後で編集や削除ができる」という仕様にしています。
そんなわけですが、読み返していると「投稿者という名前はヤヤコシイかなぁ…」とか「この権限の仕組み自体がヤヤコシイかなぁ…」とか色々思ったり。「こんな仕組みが良さそう」とかあれば、教えていただけると嬉しいです。
PHPで表示言語を自動判別
仕事で「日本語環境からアクセスすると日本語ページ」「英語環境からアクセスすると英語ページ」のような切り替えを自動で行う方法を尋ねられたので、具体的な方法を調べてみた。
なかなか目当ての情報にたどり着けなかったけど、主に以下のページを参考にプログラムを作成してみた。
例えば、日本語・英語・中国語を自動判別するなら以下のようなコードで大丈夫そう。
<?php
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$languages = array_reverse($languages);
$result = '';
foreach ($languages as $language) {
if (preg_match('/^ja/i', $language)) {
$result = 'Japanese';
} elseif (preg_match('/^en/i', $language)) {
$result = 'English';
} elseif (preg_match('/^zh/i', $language)) {
$result = 'Chinese';
}
}
if ($result == '') {
$result = 'Japanese';
}
echo $result;
?>
環境変数の「HTTP_ACCEPT_LANGUAGE」にブラウザの言語設定が格納されているので、それをもとに自動判別。
言語は複数設定できる上に優先順位も設定できるので、その対策もしておいた。(単純に「HTTP_ACCEPT_LANGUAGEにenが含まれていたら英語環境」のように判別すると、表示言語を複数設定している場合に問題が起きるので、一つ一つ判別。)
稀に大文字で情報が格納されていることもあるそうなので、大文字小文字は区別しないようにもしておいた。
なお、言語が判別できなかった場合は強制的に日本語環境とみなすようにしています。
freo Ver 0.6.0
以下の機能を追加しました。
- メディア登録時、サムネイルを作成できるように改良。
- 添付ファイル表示処理を改良。
- 公開終了日時が正しく反映されない箇所がある不具合を修正。
- エディタから「斜体」のアイコンを削除。
freo Ver 0.5.0
以下の機能を追加しました。データベース構成にも変更があるため、以前のバージョンとデータに互換性はありません。
- エントリー&ページは、初期画面の一覧に表示するかを記事ごとに設定できるように改良。
- エントリー&ページに、公開終了日時を設定できるように改良。
- カテゴリーは、一覧に表示するかをカテゴリーごとに設定できるように改良。
- オプション項目は、簡易な入力チェックを設定できるように改良。
- オプション項目で、複数選択のチェックボックス項目を作成できるように改良。
- オプション項目で、ファイルアップロード項目を作成できるように改良。
- セットアップ処理を調整。
公開終了日時とオプション項目の入力チェックは、先日の CSS Nite で「あると便利そうだなぁ」と思った機能です。
freo設置のトラブルシューティング
freo設置について色々調べる機会があったのでまとめ。freoというよりPHP5利用のトラブルシューティングと言った方がいいかも。
ファーストサーバー
コンフィグレータにアクセスし、「PHPインストール」で実行バージョンを「PHP5(DSO版)」に変更する。
freoの設置ディレクトリもしくはその上位ディレクトリに .htaccess を作成し、以下の内容を記述する。
php_flag mbstring.encoding_translation Off
php_value default_charset UTF-8
php_flag output_buffering Off
php_value output_handler None
MySQLを使用する場合、データベース作成の際に
- 接続照合順序は「utf8_unicode_ci」のまま
- 照合順序は指定せず(そのまま)
で作成する。
freoの設定ファイル(config.php)にある FREO_DATABASE_CHARSET は設定しなくて(そのまま)で大丈夫そう。
CORESERVER
freoの設置ディレクトリもしくはその上位ディレクトリに .htaccess を作成し、以下の内容を記述する。
AddHandler application/x-httpd-phpcgi .php
mod_gzip_on Off
WADAX
mod_rewriteを使用する場合、freoの設置ディレクトリもしくはその上位ディレクトリに .htaccess を作成し、以下の内容を記述する。
Options FollowSymLinks Includes
CSS Nite in KANSAI, LP1 に行ってきた

CSS Nite in KANSAI, LP1 に行ってきました。
4つの案件を例に挙げて「このCMSならこんな風に実現できる」という内容が紹介されました。「このCMSの○○な機能が便利」とか「○○な機能があればよかったのに」という話はfreo制作の参考にもなったので、可能なものはfreoに取り入れたいと思います。
ただ、本編の結論は「どのCMSを使っても実現できる」になってしまったような気もするので、「ツールの基本方針がブレないように気をつけよう」と思った。「何でもできるツールです」だと「じゃあWordPressでいいじゃないか」となるので。
写真は本編終了後の様子。「どうぞ写真を撮ってください」と言われたので撮ってみた。受講者さんの顔が映らないタイミングで撮れたので、置いておきます。
ユーティリティ
カテゴリー
タグクラウド
- 33分探偵1
- AMBITIOUS JAPAN!1
- ARIA2
- Air2
- Android2
- BLACK CAT2
- C#1
- Chrome2
- FINAL FANTASY2
- Flash2
- GAE1
- JavaScript18
- Kindle1
- Mac2
- MySQL7
- PHP68
- PayPal1
- Perl3
- PostgreSQL2
- Python1
- Ruby1
- SQLite6
- Switch1
- TinyMCE4
- Windows Media Player1
- bot1
- fragile1
- freo53
- iPhone3
- iTunes1
- levis1
- mod_rewrite2
- node.js1
- sola1
- true tears1
- いつかのメリークリスマス1
- いつか帰るところ1
- けいおん!1
- ここにしか咲かない花3
- とある魔術の禁書目録1
- とらドラ!2
- ひぐらしのなく頃に2
- みなみけ1
- イラスト4
- ガンダム003
- クロノトリガー1
- ザナルカンドにて4
- テラ1
- ニコニコ動画8
- ハゲタカ2
- ピアノ36
- マクロスF3
- ユニットテスト1
- ルパン三世1
- ローズ・オブ・メイ4
- 初音ミク1
- 半分の月がのぼる空1
- 名探偵コナン1
- 戦場のメリークリスマス5
- 携帯10
- 攻殻機動隊1
- 桜2
- 機工魔術士1
- 決行~姫をさがして~1
- 涼宮ハルヒの憂鬱10
- 深愛2
- 灼眼のシャナ4
- 聖剣伝説2
- 蕾3
- 蟲師2
- 返信2
- 野球1
- 鋼の錬金術師1