Archive for 7月, 2010

2010/07/23

WordPress – Download ePub プラグイン

by ctrans

WordPressのエントリをePubに変換し、ダウンロードできるようにするプラグインを作成しました。

ダウンロード:Download ePub プラグイン( download-epub.zip )

システム要件

圧縮にPEARのFile/Archive.phpを利用しているため、同パッケージを使える必要があります。

設置方法

サーバ側の設定

  1. Download ePubプラグインのフォルダをサーバのpluginフォルダにアップロードします。
  2. プラグインのフォルダ内にあるskeleton/OEBPSフォルダの属性を777にします。
  3. wp-content/uploads内にepubというフォルダを作成し、属性を777にしてください。
  4. wp-content/uploads/epubフォルダに以下を記した .htaccess を置きます(MIMEタイプの設定です)。
  5. AddHandler application/epub+zip .epub
    AddType application/epub+zip .epub
  6. ePubにフォントを同梱したい場合は、download-epub/skeleton/OEBPS/fontsにフォントをアップロードし、download-epub/skeleton/OEBPS/style.cssを適宜編集します。

WordPressの設定

ダウンロード用のリンクを挿入する場所を決めて下さい。たとえば利用しているテーマのsingle.phpを開き、適当な位置に

< ?php if(isset($ePub)) $ePub->ePublisher(); ?>

を挿入します。このタグはページが表示される際に

<div class="epub"><a href="%s" target="_blank">Download ePub</a></div>

というePubをダウンロードするためのリンクに変換されます(このリンクは任意の形式に変更できます。下記「設定項目」を参照して下さい)。

設定項目

download-epub.phpの32行目から37行目までが設定項目です。

$this->ePub_dir → 作成したePubファイルを保存するディレクトリ
$this->ePub_url → ePubが保存してあるフォルダのURL
$this->ePub_author → ePubの作者
$this->ePub_publisher → ePubの出版者
$this->ePub_language → ePubで使用している言語
$this->ePub_anchor_template → ePubダウンロード用アンカータグのテンプレート

32行のディレクトリは、デフォルトの「get_option(‘upload_path’) . “/epub”;」から変更する必要はありません。33行のURLは32行のディレクトリと等価ですが、「メディア」の設定で「アップロードするファイルの保存場所」を変更している場合、デフォルトの「get_option(‘siteurl’) . ‘/wp-content/uploads/epub/’;」では正しく動作しません。設定に応じて適宜修正して下さい。

アンカータグのテンプレートは、初期状態では
<div class=”epub”><a href=”%s” target=”_blank”>Download ePub</a></div>
となっています。「href=”%s”」以外の部分は変更可能ですので、お好きなように編集して下さい。

設置例

当サイトでは、使用しているテーマのsingle.phpを編集し、

<h1>< ?php the_title(); ?></h1>

となっていたところを、

<h1>< ?php the_title(); ?>< ?php if(isset($ePub)) $ePub->ePublisher(); ?></h1>

とし、ダウンロード用のリンクを挿入しています。リンクは

<div class="epub"><a href="hogehoge.epub" target="_blank">Download ePub</a></div>

の形式で挿入されるため、テーマのcssには次のクラスを追加しています。

.epub {
	float: right;
	background-image: url("../images/epub.png");
	background-repeat: no-repeat;
	background-position: center left;
	margin:0 15px 0 15px;
	padding-left:20px;
	font-size: 11px;
	font-weight: normal;
}

各エントリのタイトルの横にePubをダウンロードするためのリンクが本のアイコンとともに表示されていると思います。その見栄えを定義しているのが上のePubクラスです。[1]

次にフォントについてですが、日本語のフォントとしてIPAモナーP明朝(ipamp-mona.ttf)、中国語のフォントとして文鼎(Arphic)の簡体字宋体フォント(gbsn00lp.ttf)をプラグインのフォルダの plugins/download-epub/skeleton/OEBPS/fonts に加えています。

このフォントを使うため、plugins/download-epub/skeleton/OEBPS/style.css には次のような定義を加えています。

@font-face {
  font-family: "ipampmona", serif;
  src: url(fonts/ipamp-mona.ttf);
}
@font-face {
  font-family: "AR PL SungtiL GB", serif;
  src: url(fonts/gbsn00lp.ttf);
}
body {
  font-family: "ipampmona", serif;
  margin: 3%;
}
p {
  line-height: 150%;
  font-family: "ipampmona", serif;
  text-indent: 1em;
}
.cn {
  font-family :"AR PL SungtiL GB", SimSun, STSong, STKaiti, serif;
}

このプラグインの仕様および注意事項

このプラグインは、ページが表示される際にそのエントリに対応するePubファイルが存在するか否かをまずチェックします。もしまだ作成されていなければ、タイトルや本文を取り出してePubに変換し、wp-content/uploads/epub のフォルダに保存します。その後、ブログ内の指定された位置にアンカータグを挿入します。

Download ePubタグの挿入場所はsingle.phpをおすすめします。ePubファイルを作成する処理は、それほど重いものではありませんが、作成する数が多いとそれなりに時間がかかるため、index.phpなどに設置すると表示されるエントリの数だけePub作成処理が実行されます。作成処理が実行されるのはePubが存在しない1回目だけですがご注意下さい。

ePubのファイル名は、エントリのID+更新日時のタイムスタンプで構成されています。このことから予想がつくと思いますが、エントリの更新を行うと、ePubファイルもあらためて作成されますので、細かい修正を繰り返すとePubの保存フォルに同じようなファイルがたくさんできます。

バージョン0.1現在、圧縮まわりに不具合が残っています。今後修正する予定ですが使用する際はご注意下さい。

  1. 現在プラグイン停止中です。 []
2010/07/21

なぜそうなる

by ctrans

WordPressのプラグインを作っている。エントリをePub形式に変換してダウンロードできるようにする単純なものである。ファイルの生成などは問題なく動作し、後はクリックして落とすだけなのだが、挿入したリンクをクリックすると 404 が表示される。どうもWordPressのrewriteまわりが悪さしているようである。どうするかなあ。教えてサモハン。

Sammo Hung

えー

2010/07/19

カナロックの解除

by ctrans

仕事部屋で息子をひざに乗せると必ずキーボードを叩きたがる。CtrlやAlt、Windowsを押しながら色んなところを叩くので、電脳が悲鳴を上げながら見たこともない動作を披露してくれる。たくさん窓が立ち上がるくらいなら良いが、ログオフとかメール送信とかカナロックとかやめて欲しい。

今日もカナロックされてしまい、入力がたいそう不自由な状態になってしまった。途方に暮れて再起動したが、毎回これでは困るのでカナロックの解除方法を調査。

■Ctrl+CapsLock
■Alt+カタカナ・ひらがな
■Ctrl+Shift+カタカナ・ひらがな

カナ入力 カナロック 解除 – DOG’NBLOG!

ありがたい。保存しておこう。

2010/07/18

鬼燈

by ctrans

昨日から深大寺でほおずきまつりをやっている。おととい、たまたま散歩に出かけた際にまつりの準備をしていて知ったのだが、いろいろ催しがあるみたいで楽しそうである。明日が最終日なので夕方にでものぞきに行きたい。

ほおずき

さて、ほおずきは漢字で鬼灯と書くらしい。私はおとといまで知らなかった(恥)。盆の季節に実をつけるし、いわれてみれば提灯みたいにも見える。盆に帰ってくる霊を導く灯りに見立てれば民話のひとつふたつもありそうだ。ちなみに中国語では酸浆という。ほかにも红菇娘、挂金灯、戈力、灯笼草、洛神珠、泡泡草などと呼ばれ、これら別称の方が雰囲気があるが、辞書を引くと最初に出てくるのは酸浆である。漢方薬としても使われ、百度百科によれば、紀元前300年の「尔雅[1]にも酸浆のことが書いてあるらしい。うーむ、でもどうしてなのだろう。と書かれるとどうしてもドロドロの液状物質(セメントとかパルプとかオートミールとか)を思い浮かべてしまう。紙風船のようなほおずきとどうにも結びつかない。

関連:漢典の浆の説明

  1. 中国の古い辞書 []
2010/07/16

PHP – preg_replace_callback

by ctrans

preg_replace_callback() でクラス内の関数をコールバック関数とする場合

class foo {
  function mogemoge($matches){
    ・・・
  }
  function hogehoge(){
    ・・・
    preg_replace_callback( $pattern, array($this,"mogemoge"), $str ) ;   
  }
}

array($this,”mogemoge”)のように配列で渡す。はまったのでメモ。

2010/07/15

今はきみの出番じゃないんだよ

by ctrans

ウチに軽自動車が来た。といっても購入したわけではなく、田舎の両親が譲ってくれたのである(ありがとう)。平成13年製造のホンダのライフ。車を所有するのは生まれて初めてだ。ペーパードライバー教習で乗ってたマツダのアクセラと違い、小さくてものすごく小回りが利く。なんかすごくかわいい。家の前に停めたライフに初心者マークを付けて角度を変えていろんな方向から眺めてみる。いいじゃないかいいじゃないか。

仕事の区切りが付いたところで、近くの子ども用品店まで「車に赤ん坊乗ってます」のシールを買うため車を走らせた。ビクビクしながらアクセルを踏み、家からすぐのT字路に差し掛かると高齢者(性別不明)がよろよろと角から姿を現した。急ブレーキ。驚かせてしまい申し訳ない>高齢者。お互い命は大切にしよう。

気を取り直してよろよろと車を走らせる。通行量の多い通りに出たが大丈夫、ここはペーパードライバー教習で念入りに練習している。後ろを見るとお世話になった教習所の教習車が走っていた。がんばれよ青年。初心者マークを付けるその日まで。

で、はたと気がついたのだがバックミラーとサイドミラーを調整してなかった。すごく見にくい。バックミラーに至ってはどこを向いているのか途方に暮れるほどである。これでは後ろから不審者が近づいてきても逃げられない。どうすんだどうすんだ。こういうときに限って信号はずっと青。きー。

それでも店には無事に着いた。駐車スペースにもバックでちゃんと入れた。エンジンを切ってサイドブレーキも引けた。よくやった。買い物も無事に出来た。ちょっとした初めてのおつかいである。まだ帰宅してないけど。

帰途である。エンジンを始動し、パーキングからドライブへ、と思ったのだが、この車はハンドルの横にシフトレバーがあってちょっと操作が難しい。どうやら関係のないところを触ったようでワイパーが「ガショーンガショーン」と動き始めた。おやおや、周囲に誰もいなくて良かった。爽やかな夏空の下で危うく恥をかくところだ。直しておこう。「ガションガションガション」。あれ、激しくなってる。「ガショーンガショーン」。戻った。まだ上か。お、これで大丈夫かな。

駐車スペースを出て、来た道を戻る。「ガショーン」。あれ、まだワイパー動くけど直す余裕ないよ。こういうときに限って信号はずっと青。またかよ。

家に着いてしまった。難関の車庫入れである。さあ右に寄せてぐっとハンドルを切って車体を斜めにしたらバックにして「ガショーン」(無視しよう)。おお、ハンドル切りすぎた。これじゃお隣の車に突っ込む。いったんブレーキ踏んで……ってこれアクセルっうわっうわっ。止まったよ。良かったよ。ドライブにしてちょっと前に出して方向直して「ガショーン」。微妙な調整が難しいな「ガショーン」。窓から顔出して出来るだけ寄せて……。

入った。奇跡だ「ガショーン」。おおそうだ、ワイパー直そう。ああそうかこれをこうか。ハンドブレーキしてエンジン切ろう。ああ恐ろしい。

ふう、私は本当に運転できるようになるのだろうか。

2010/07/12

支持層

by ctrans

選挙特番を見ていて面白かったのが、街頭演説を聴きに来ている各党支持者の顔つきの違い。

  • 公明党の支持者は基本笑顔。ものすごい笑顔。
  • 自民と民主の支持者の顔つきはそんなに変わらない。
  • 共産党の支持者は酸いも甘いも噛み分けたタフそうな顔つきのおじさん、おばさんが多い。

支持者の面構えで選ぶなら共産党だけど政策が支持できない。残念だ。

2010/07/11

和菓子 – 千代富 清風堂

by ctrans

私は酒飲みだが甘党である。かつて同僚に「おはぎをつつきながら日本酒をちびちびやるのは最高だ」という変態がいたが(Sさんお元気ですか)、私は昼食後にちょっと甘い物を食べるのが好きだ。

以前住んでいた経堂という街は、私が住み始めてすぐに和菓子屋2軒が店をたたみ、駅前のビルに入っていた和菓子屋もビルの取り壊しとともになくなってしまった。そういう時代なのかもしれないが和菓子好きとしては少しさびしかった。

調布に越してきてうれしかったのが、駅前のパルコに和菓子屋が数軒入っていて、深大寺まで足を延ばせば団子やまんじゅうを売っている門前市があり、そのへんの商店街にも必ず和菓子屋があるということだった。私がぶらぶらしているのはもっぱら北口だが南口にも和菓子屋はあるようだ。駅を地下化する工事が進んでいて、そのうち北も南もなくなるはずなので、私の行動半径はさらに広がるものと見込まれる。

で、調布駅北側エリアでおすすめの和菓子屋が千代富 清風堂である。息子のかかりつけの小児科が近くにあって、たまたま入った店なのだがあんこの加減が実に良い。蒸し暑い今の季節、この店の水万頭が冷蔵庫で冷えているととてもうれしい。看板商品である地酒万頭はもちろん、多摩清流(いわゆる鮎)も求肥がうまい。すあまも良かった。とにかくこれまで外れがない。ゲゲゲ効果で観光客が増えている調布市だが、駅からもそんなに遠くないし、旧甲州街道沿いで迷うこともないから、この店にもぜひ立ち寄っていただきたい。私も今の仕事を片付けたら、また水万頭を仕入れに行く予定である(´ー`)