Web Games: 2011年11月アーカイブ

さて、前回まででサイトは無事に動き始めたのだが、セキュリティ上、気になる部分がいくつかあったので修正。

  • ヘッダーの「Contact us」「Administration」のリンクは要らない
    →templates\default\header.php(18): の記述内容を「Blog」(http://quod.senmasa.com/web_games.php)に変更
  • 管理画面トップで、ニュースの取得に失敗した旨、エラー表示
    →system\application\config\constants.php(4):で、「http://foxarcade.net/public/news_source.php」を取得し、ざっくりevalして表示している。ブログのRSSでも表示してやろうかと思ったが、自己満足以上の意味はない。結局、system\application\controllers\admin\main.php(9):のcurlコマンドをコメントアウト。
    これでエラーが瞬時に表示されるように(笑)。
  • フッターのリンク先を変更する
    →各ページのフッターから「<サイト名> is powered by FoxArcade云々」でリンクが張られる。繰り返しになるがリンク先のfoxarcade.netは既に存在していない。これはcode.google.comのfoxarcade scriptのページに変更した。

あとは見栄えを調整してSEO関連の工夫をするだけ。


前回、なんとか動くところまでこぎつけたが、まだまだ直すべき点は多い。

いくつかゲームをアップしてみて、おかしなところに手を入れていく。

  • サムネイルのアスペクト比がおかしい。
    →サムネイル画像の表示サイズは100x100ピクセル固定らしいので、画像のほうを修正。
  • なんか警告が出る。
    →カテゴリーをきちんと作ることでエラー解消
  • 「タイトルは5文字以上」の制限に引っかかる。
    →system\application\controllers\admin\games.phpで、
    $this->form_validation->set_rules('title', 'title', 'required|min_length[5]');の[5]→[3]に変更。
ここで大き目の問題に。タイトルに日本語を入力すると、エラーが出てしまう。FoxArcadeでは、URLを「SEO-friendly」にする、と称してゲームタイトルを含んだURLを生成しているのだが、このタイトル変換ロジックが欧文前提の仕様になってしまっているのだ。
タイトルをすべて英文にしてしまえば解決するのだが、ここは思い切ってURLencodeしてしまった。

  • URL生成の際、ゲームタイトルをURLencodeする。
    →system\application\helpers\seo_url_helper.phpの、 function get_game_url($game_id)の中身をurlencodeに変更する。→system\application\config\config.phpでEnable Query StringsをTRUEに。
  • そうすると、エラーメッセージが変わる。
    →system\libraries\Input.phpで当該のエラーメッセージを出している関数を探し、マッチパターンに「日本語」を追加する(参考:http://phpspot.org/blog/archives/2006/12/php_67.html
この手術はやるかやらないか慎重に検討すべき。手法として安全な・正しいものかどうかもこちらとしては保証しかねます。


アーカイブ

Link