PHP・MySQL

OpnePNEをiPhone対応にする方法

OpenPNEは今のところiPhoneからのアクセスには配慮されていないため、iPhoneでOpenPNEを使ったSNSを利用するのはとても不便です。

■iPhoneからからOpenPNEを利用した場合の問題点

1.OpenPNEへのログインページを含めページが縮小されていて見難い(拡大する必要がある)
2.携帯版のOpenPNEの利用しようとした場合、キャリア制限で携帯版ページは表示されない。
3.OpnePNEではiPhoneの固有メールアドレス@i.softbank.jpはOpenPNEにおいては携帯として登録できない。
4.日記に画像がアップできない。
5.プロフに画像がアップできない。
6.コミュニティに画像がアップできない。

他にも「不便」といった部分を含めると数多くあります。

そこで、OpenPNEを使ったSNSでiPhoneユーザーを考えた場合にいくつかの方法が考えられます。

■OpnePNEをiPhone対応にする方法

1.iPhone専用のSNSにする
2.PC版のレイアウトをiPhone対応にする
3.携帯版のレイアウトをiPhone対応にする

1.のiPhone専用のSNSにする場合はCSS(スタイルシート)のカスタマイズ、及びsmarty用tpl(テンプレートファイル)のカスタマイズをすることで快適なレイアウトにすることが可能となります。
デジタルゲートが運営する『iPhoneStyle』(http://iphone-sns.com/)はiPhoneオーナー専用SNSという特化したSNSであるためこの方法で構築しています。

2.OpenPNEのPC版のレイアウトをiPhone対応にする場合、ユーザーエージェントを取得して(Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20)といった文字列からiPhoneであることを識別し、専用のCSSで表示させます。
この場合、PCと共存させるためtpl(テンプレートファイル)のカスタマイズはしない方が楽です。
この方法は携帯ユーザーは何も変わらないため、導入しやすい方法とも言えます。

3.PC版は標準のままOpenPNEの携帯版をiPhone対応にする
この方法は一般携帯からのユーザーが不便になるだけでなく、構築方法によっては通常のPCユーザーからのメールによる日記投稿が不可能に場合があるため、デメリットの方が多いと思われます。

さて、表示(閲覧)には上記方法で対応できますが、「1.iPhone専用のSNSにする」および「2.OpenPNEのPC版のレイアウトをiPhone対応にする」どちらにも共通する問題としてiPhoneからフォームを使った画像のアップロードはできないということがあります。
これは現行のiPhoneの仕様としてローカルファイルへのアクセスが出来ないこと、フォームの利用を制限していることなので、iPhoneの仕様が変わるまで解決しません。
また、同じく仕様により、iPhoneではPCのメールソフトや携帯のメーラーでは普通に存在する「画像の貼付」が存在しません。
そのため唯一の方法として「写真」アプリから画像付きのメールを作成できることを利用してOpenPNEにiPhoneから画像付きの日記を投稿すること、プロフィール用画像をiPhoneから設定する方法が考えられます。
ただし、OpenPNE標準ではメールでの画像アップは「携帯」と決まっているので、別途のスクリプト(プログラム)を用意する必要があります。
プログラムに必要なのはユーザー情報の取得からユーザー認証、日記のデータベースへの書き込み
処理となります。現行のiPhoneではコピー&ペーストができないため、送信アドレスにも配慮する必要があります。『iPhoneStyle』(http://iphone-sns.com/)では、iPhoneからメールで画像をアップする専用のプログラムを組み込み、iPhone本体から直接メールでの日記の投稿、iPhone本体から直接メールでのプロフ画像の設定・変更を可能としています。

以上、いずれiPhoneユーザーが増え市場のニーズが高まればOpenPNEもiPhone対応していく可能性がありますが、それまでは運営側の工夫が不可欠です。

指定の時間を経過した古いファイルを削除したいとき(PHP)

処理をしていて発生する、一時ファイル(キャッシュやtempなど)の中で
定期的に削除が必要なもの、古いユーザーデータやログファイル等を
削除するためのサンプルスクリプト。

下記のサンプルスクリプトをファイルとして保存し、1日1回cronで回してやるといい。
必要に応じて対象のディレクトリ名や削除日数は変更して使用してもらいたい。
$debug = 1;
にするとデバッグモードになるから、事前にテストすることをお薦めする。

なお、このスクリプトはファイルを削除するものであり、設定ミスやバグにより
大事なファイルを削除してしまうこともありうる。使用は自己責任で。

【サンプル】

<?php

#——————————————————

$now = time();

#——————————————————

$cache_dir = “../cache/”;
$day = 7;
$debug = 0;

$num = clear_cache_file($cache_dir,$day,$debug);
echo “$num ファイル削除しました。”;

#——————————————————

function clear_cache_file($cache_dir,$day,$debug){
    global $now;
    
    $count = 0;
    if(!($dir = @opendir($cache_dir))){die(“$cache_dir が開けません。”);}
    while($file = readdir($dir)){
        if(!is_dir($file)){
            $name = $cache_dir . $file;
            $mtime = filemtime($name);
            if(($now – $mtime) >= $day*60*60*24){
                if(file_exists($name)){
                    if($debug){
                        $mtime_ymd = date(“Y-m-d H:i:s”, $mtime);
                        echo “$name ($mtime_ymd)を削除します。<br />”;
                    }else{
                        unlink($name);
                    }
                    $count++;
                }
            }
        }
    }
    closedir($dir);
   
    return $count;
}

#——————————————————

?>
 

URLエンコード・URLデコード変換サービス

GoogleやYahoo!で文字の検索をした時、URLのエリアに意味の分からない暗号のような文字列が表示されます。これは入力された文字列をURLエンコードしたものが含まれているからです。ここではURLエンコードされた文字列に何が書いてあるのか、どんな意味かを調べたい人のために、 Web上でURLデコードやURLエンコードが簡単にできるサービスを提供しています。

URLエンコード・URLデコード変換サービス

http://decode.digital-gate.com/

WordPressのディレクトリ名を運用後に変更した時

WordPressでサイトを構築後に、さまざまな理由で保存しているディレクトリ名を変更したい場合がある。
そのまま、ディレクトリ名だけを変えてしまうと、ログインフォームからのリダイレクト先が違ってしまい困ることになる。
その場合は、phpMyAdmin等で運用URLを変更する。

運用テーブルは「wp_options」(wp_を変えている場合はそのプリフィックスに変更)
内にある「siteurl」

これを変更したディレクトリ名に合わせてあげれば、ログインできるようになる。

ダッシュボードに入れたら、「設定」から
ブログのアドレス (URL)も修正しておくこと。

WordPressを携帯対応にするプラグイン

OpenPNEのような国産のオープンソースでは純正で携帯に対応するのがお約束となっているが、WordPressはデフォルトでは携帯に対応していない。

携帯に対応させる数種類のプラグインが作られているが、最も高機能なのはKtai Styleだが、PHP4には未対応。
理想的にはサーバーのPHPを5.2以上に上げることだが、クライアントによってはレンタル、ホスティングしているサーバーの関係で自由が効かない場合がある。

そんな時の選択として『Mobile Eye+』がお薦め。PHP4の環境でも使える。
ちなみにWordPressの最新版2.6.2でも使用可能だった。

使い方は簡単。ダウンロードしたファイルを解凍(「wordpress」というフォルダ名になるが悩まないように)フォルダの中にある「wp-content」フォルダの中にある「plugins」フォルダの中にある「mobile_eye」フォルダを、サーバー上のpluginsフォルダにアップロードし、Mobile Eye+プラグインを有効化するだけでいい。

■問題点
設定で、デザイン他を変更することが可能だが、UTF-8環境下では文字化けする。
SHIFT-JISにすれば表示は可能だが、設定は反映されなかった。

簡単にフォトギャラリーが作れるPHPプログラム

ちょっとした仲間内での写真公開やポートフォリオにも使えるAutoGeneratingGallery。
使い方は簡単で、FTPでimagesフォルダーに画像を放り込んであげるだけでいい。

用意するのは、通常サイズとサムネール用の小さなサイズの画像。
名前のルールは、
IMG_0813-thumb.jpg
IMG_0813.jpg
といった感じ。

CSSで簡単にデザインの変更も可能だから、PHPは苦手だけれど、デザインにはこだわりたいという人にもお薦め。

AutoGeneratingGallery

WordPress mu インストール後にすること

■日本語化

管理ページにログインしたら、右の方にあるタブ「Setting」をクリック

Blog language:をJapaneseに

これでメニューが日本語になる

■表示を日本に合わせる

週の始まりを「日曜日」

日付フォーマットを「Y 年 n 月 j 日」
表示例: 2008 年 9 月 10 日

時刻フォーマットを「g:i A」
表示例: 10:26 AM

これで日本語版らしくなる。

WordPress mu のインストールと設定

WordPress muは、複数のブログを構築するのに便利なシステム。

基本的なインストールの方法は通常のWordPressに近いが、1点だけ注意点がある。
通常のWordPressをインストールしたことのある人は、直下にあるwp-config-sample.phpをコピーしてwp-config.phpにリネームし、通常のWordPressと同じように設定しアップロードしてしまう。
しかし、muでそれをしてしまうと
No WPMU site defined on this host. If you are the owner of this site, please check  Debugging WPMU for further assistance.
という1行のエラーメッセージが表示され悩むことになる。

WordPress muではインストールの途中で、データベースの設定をするから、ファイルをアップしたら、素直にインストールに進むこと。

ただし、既存のWordPressとの混在が気になるようであれば、table_prefix を wp_ から他のものに変えておくといい。

先にWordPress muのフォルダとその下のwp-contentのパーミッションを777にしておくと楽。
インストール後は755で運営。

■日本語化

『Google Code』http://code.google.com/p/wpmu-ja/

で日本語リソースをダウンロード

wp-contentフォルダ内にlanguagesフォルダを作成し、その中にダウンロードしたja.moとja.poをアップロードする。
あとはインストール後管理メニューでjapaneseを選ぶだけで日本語になる。

■サブドメインの設定について

インストールの最初に
Sub-domains (like blog1.example.com)
Sub-directories (like example.com/blog1)
のラジオボタンがある。

ドメイン名のAレコードをワイルドカード設定できるなら、サブドメインを選ぶといい。
SEO対策としてもGoogle Analyticsにもサブドメイン形式がお薦め。

なお、wordpress mu 2.6.1の場合、インストール完了後のメールの表題が文字化けしているので、
間違って捨ててしまわないように注意。

■インストール後、何も表示されない場合、

htaccessファイルにのパーミッションが600になっていることがある。
その場合h、htaccessのパーミッションを604に変更すれば、表示される。

WordPressのセキュリティを高めるには

header.phpのバージョン表示を削除する。

プラグインフォルダにindex.htmlを入れる。

この二つは初期状態で変更、追加しておくといい。