農場主の日常

なんちゃってエンジニアの日常をつらづらと

«Prev || 1 | 2 | 3 |...| 17 | 18 | 19 || Next»

携帯サイトへの対応など

 さて、Nucleusを使ってちょっと本格的にモバイルサイトへの対応を考える。
 Nucleusのプラグインには、NP_Moblieというプラグインがある。これ、アクセスしてきたUAを判別し、携帯電話ならば
  • 文字コードをSJIS
  • スキンを携帯電話ように
  • 本文中のタグを一部残して除去
  • 本文の文字数を制限
  • 携帯電話用のURLにリダイレクト
 なんてことをやっている。リダイレクトをしないようにするなら、NP_MobileWithSinglePageを使う。こちらも似ているが、リダイレクトせずにスキンだけを入れ替えるのが異なる。

 基本NP_MoblieWithSinglePageを使って表示。だけれど、最初にHeaderで宣言を追加しておく必要があるようだ。
 そういうわけで、
function event_PreSkinParseに、 // header送信
header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
header("Pragma: no-cache");
echo '<?xml version="1.0" encoding="Shift_JIS"?>';
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
 のように、Docutypeの宣言を追加。また、携帯電話の場合に表示の変更が必要なプラグインには、
function MobileUA() {
global $CONF;

$ua = serverVar('HTTP_USER_AGENT');
$isMobile = (
preg_match('/DoCoMo|J\-PHONE|UP\.Browser|KDDI\-|Vodafone|SoftBank/i', $ua) &&
!$CONF['UsingAdminArea']
);
return $isMobile;
}
 という、携帯を判別するためのファンクションを追加。
 これで一通りの携帯対応が終了。なんとか色つきで見られるサイトができた。



宿表示のプラグインNP_TrRelated

 昨日作ったプラグイン
宿を紹介するプラグイン【農場主の日常】

 参考にしたのはNP_Related。記事投稿画面から、エリアを選択すると、そのエリアの宿を5件表示する。
 昨日表示はできたので、次の段階としてランダムに5件表示、横にGoogleMapsを表示して、A~Eのアイコンを表示。リストにA~Eのアルファベットを表示してやる。そして、下にるるぶトラベルへのリンクをつける。

 そんな感じで完成。だけど、いまいちな気もする。


宿を紹介するプラグイン

 旅行関係のブログをやっていて、少しそれ向けのプラグインを作ってみようかなと。
 たとえば、
秋葉を少し歩く【農場主の漫遊記】
 のような記事。記事の内容は秋葉なのだけれど、そこ周辺の宿を表示するプラグインを作るのはどうかなと。

 とりあえず、数箇所の旅行代理店のデータは手に入る。その中から、るるぶトラベルのデータを表示することに。
 地域を入力すると、その中から5件のデータを記事の下に表示するというプラグイン。

 とりあえず、リスト表示はOK。だけど、リストだけじゃちょっとさびしい。横に地図を表示できたらいいのだけれどね。

家でのNucleusデバッグ環境の文字化け

 先日、XAMPPを使って家のPCにデバッグ環境を作ったのは良いのだけれど、Nucleusをインストールするとどうも文字化けする。
 NucleusはUTF8。データベースをみると、特殊記号が混ざったような状態。

 これは、XREAの新しいサーバに移行したときも起こったのだけれど、こちらはどうにも直らない。
 サーバにアップロードしてあるサイトのファイルと、データベースの内容を書き戻しても、だめ。

 具体的には、phpMyAdminで見るデータベースの内容が文字化け。投稿しても文字化けという状態。
 これ、いくつか問題点があった部分を列挙。

 まず、デフォルトのデータベースの文字コードについて。何も設定していない場合、データベースの照合順は、「latin1_general_ci」となり、文字コードは「latain1」になる。
 このまま使うと、見事に文字化けが起こるので、MySQLの設定で、デフォルトの照合順を「utf8_general_ci」,文字コードを「utf8」に変更する。

 そしてNucleus本体側。/nucleus/libs/globalfunctions.phpファイルのデータベースの接続直後に
mysql_query("SET NAMES utf8");
 を記載。でもこれ、最新版のNucleusには回避策が入っているように見える。

 そんな感じでNetの情報を集めて対策してみたのだけれど、どうしても文字化けが直らない。
 何でかなあとphpMyAdminを眺めていたら、テーブルがすべて「latin1_general_ci」のままだったことに気がつく。
 デフォルトの照合順を「utf8_general_ci」に変更しても、すでに作成されたテーブルの照合順は変更されるわけじゃないわな。
 phpMyAdminでテーブルを選び、「操作」タブから照合順を「utf8_general_ci」に変更。これでやっと文字化け対策は完了。

 わかってみれば単純なことなんだよな。

Webサーバのテスト環境を構築(xampp for windows)

 少しまともにサイトをいじろうと思うと、ローカル環境にPHPやMySQLが動作する環境があった方が良いと思い立つ。
 ただブログをやるだけならいらないのだけれどね。

 ApacheやPHP、MySQLをインストールして環境を作るパッケージに、XAMPPというものがある。

apache friends - xampp for windows

 サーバを立てる場合に必要なファイルがすべてあるという優れもの。早速これをインストールして設定。
 インストールは成功して、Nucleusを動かそうとするとエラーが。どうも、XAMPP 1.7.3ではエラーがでて動かないらしい。
 昔のNucleus本を引っ張り出してみると、そこには1.7.1にインストールした記事がある。

 そういうわけで、少し古い1.7.1をインストール。もちろん、外部からはアクセスできないように設定する。

 そのあとは普通に動作。サーバのバックアップファイルを書き戻してみても、まったく問題なく。これならばいろいろできそうだ。

«Prev || 1 | 2 | 3 |...| 17 | 18 | 19 || Next»

↑ PAGE TOP