ページと投稿の使い分けをどうするのか

WordPressを使い始めてちょっと経ちますが、この内容は投稿でいいのかとか、この内容はページでいいのかを悩むようになりました。
そもそも、なぜ投稿とページが分かれているのかがなぞです。
使い始めにはまったく疑問に思っていませんでしたが。
WordPressサイトをよくよく見ると投稿しか使ってないところが結構あるようです。

他にも、カテゴリ自体に説明文を追加したい時や、そのカテゴリのインデックスページが作成できないなど、よくよく考えると足らない機能が多いようです。
とはいえ、そこそこ人気のあるCMSですし、ただ単に使い方があっていなかったということだけのような気もします。

アップロードする方法がわからない

いまひとつ使い方を理解していないWordPressですが、ふと画像をアップロードしようと思ったものの、方法がわからなくなりました。
以前は「メディアの追加」のような名前でメニューがあったような気がしたのですが、今探すとどこにもない。
うーんこ、待った。
基、うーん、困った。

OOo3 BaseでMySQLに接続する

いつもはphpMyAdminというツールを使って操作していますが、HTMLで構成される画面には何かと限界を感じるものです。
かなり昔にMicrosoftのAccessで簡単なデータベースを作ったことがありますが、Windowsに限定されるのは何かと不便だし、一から作るのであれば新しいものに手を出してみようとOOoのBaseからMySQLに接続してみることにしました。
Baseを起動するとデータベースウィザードが開始されますので、指示通りに進めます。

「既存のデータベースに接続」を選択し、「MySQL」を指定
 ↓
JDBCを使って接続を選択
 ↓
データベースの名前、サーバーURLを入力
 ↓
ユーザー名を入力し、必須パスワードにチェックを入れて「テスト接続」ボタンを押下
 ↓
パスワードを入力して「OK」ボタンを押下
 ↓
ワクテカしながら結果を待つ・・・まもなくエラーメッセージが表示される

さて、ここまで進めたのにエラーが表示されて進めなくなりました。

The driver class 'com.mysql.jdbc.Driver' could not be loaded.

com/mysql/jdbc/Driver

つまり、ドライバが見つかりませんということのようです。
このエラーはJRE対応であってもなくても表示されます。インストールしなおして実験したので間違いありません。
Javaの環境によってはこの作業が必要ではないのかもしれません。
OOo自体にはMySQL用のドライバ(他のDBも?)が入っていないので、別途用意してあげる必要があります。
今回はMySQLへの接続ですので、MySQLのサイトからJDBCドライバをダウンロードします。
この記事の作成時点ではConnector/J 5.1が用意されていました。
ダウンロードにはオーナーの情報を求められますので、適当に入力します。
入力内容に不備が無ければ画面が推移しますので、あちこちに用意されているミラーからダウンロードします。
このファイルはOOo以外からも利用できますので、OOoのディレクトリの中に入れるのではなく、パブリックな場所においておくといいでしょう。
次に、ダウンロードしたドライバを認識させなければなりません。
Baseを起動するとまたウィザードが表示されますので、設定を無視して「完了」ボタンを押下し、ウィンドウのメニューを操作できる状態にします。もちろん、OOoのスタートウィンドウを起動してもかまいません。

ツール>オプション
 ↓
OpenOffice.org>Java
 ↓
「クラスパス」ボタンを押下
 ↓
「アーカイブを追加」ボタンを押下
 ↓
先ほど保存した「mysql-connector-java-5.1.7-bin.jar」を選択し、「OK」ボタンを押下
 ↓
指示に従ってOOoを再起動

これで、最初に行った手順どおりに進めると、無事

接続テスト

接続が正常に確立できました。

と表示されます。
あとは、設定をファイルに保存すれば完了です。
データベース操作の解説はまた別の機会に。

URLエンコードとURLデコード

URLエンコードとは「スペース以外を%HH形式に変換し、スペースを+に変換する」などの仕様については軽く流しておいて、実際にどう使うかメモしておく。ちなみにPHPではいつもアンダースコアを混ぜてしまいsyntax errorを出すのはお約束になっています。

PHPでURLエンコード

rawurlencode( $uri );

PHPでURLデコード

rawurldecode( $uri );

rawが付かないものは、いつかどこかで不具合を起こすかもしれないので、つけておいたほうが無難です。
そして、エンコードの結果は大文字になっているので、他のスクリプトと連携させるときには注意すること。
ローカルはWindowsで動いているのに、リモートにアップしたとたん大文字小文字の違いで動かなくなったりなどよくあること。
ちなみに、Perlでよく使われる以下のようなURLデコードは小文字に変換されます。

PerlでURLエンコード

sub url_encode( $ ){
	my $str = shift;
	$str =~ s/([^\w ])/'%'. unpack( 'H2', $1 )/eg;
	$str =~ tr/ /+/;
	return $str;
}

PerlでURLデコード

sub url_decode( $ ){
	my $str = shift;
	$str =~ tr/+/ /;
	$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack( 'H2', $1 )/eg;
	return $str;
}

この場合に問題になるのはエンコードのほうで、デコードはほとんど関係有りません。エンコードで大文字にするか小文字にするかは、どちらかに決めておいたほうがいいかもしれませんが、ブラウザで表示されるのは一般的に大文字なので、PerlのURLエンコードにはuc()の追加をお勧めします。つまり次のようになります。

PerlでURLエンコード

sub url_encode( $ ){
	my $str = shift;
	$str =~ s/([^\w ])/'%'. uc( unpack( 'H2', $1 ) )/eg;
	$str =~ tr/ /+/;
	return $str;
}

間違えてはいけないのは、RFC1738には、大文字と小文字の両方が表記されており、「大文字で無ければならない」のではなく、「大文字の方が何かと都合がよい」ということです。PHPと連携させなければ特に考えなくてもいいです。
packはコピペが多く、それほど使いこなせているわけでもないので、他に方法がありそうな気もしますが、見慣れたコードに関数を追加するという明瞭な方法をとることも可読性という意味では大事でしょう。Perlに可読性を求めるなといわれそうですが。

OOo Version.3公開

MicrosoftOfficeとほぼ互換があるオフィススイート、オープンオフィスのバージョンが3になりました。
個人的にはOfficeは2000までしか使っておらず、それ以降は基本的にOOoでの作業です。
動作が少々もたつきますが、MS高額を払っても全機能を使うわけでもないし、立派に機能しているといえるでしょう。
まぁ、よそとやり取りするときには困ったりしますが。

さて、3で何が変わったのかといいますと・・・
アイコン?
ほかは・・・何が違うんだろう。
微妙にツールバーに変化があったぐらいでしょうか。
官公庁での導入も始まっているとも聞きますので、新しい物好きにはお勧めかもしれません。

ゲームタイトルを追加しました

「航海世紀ボヤージュセンチュリーオンライン」の追加と、取得に失敗していたタイトルを数点修正しました。
21日にFOAが終了のようですね。
墨香の名前のときにベータですがちょっとだけやってました。
雰囲気はよかったのですが、狩ゲーなので寿命はこのようなものですか。

PHPの関数「mysql_insert_id()」について

データベースを利用していて、割と使用頻度の高い関数mysql_insert_id()
同時に書き込んだ場合、この値が狂うとこまるし、テーブルをロックしたほうがいいのかどうかを調べてみました。
PHP: mysql_insert_id – Manualによれば、セッションで管理されていて、MySQLのlast_insert_idと同じ機能だということです。
つまり、テーブルをロックする必要はないということでした。

サイトマップを出力するプラグイン

WordPressの理解を深めようと、プラグインを調べていました。
そういえば、データベースで構成されているんだから簡単にサイトマップが作れるはず。
ということで、Sitemap Generator Plugin for WordPressを発見しました。

プラグインのファイル(書庫)はwordpresのページよりダウンロードする。
 ↓
解凍したファイルをディレクトリ(sitemap-generator)ごと/wp-content/plugins/にコピーする。
 ↓
wordpressにログインし、設定からプラグインの使用を選択する。
 ↓
言語を日本語にして、サイトマップのアドレス(/sitemap.xml)を設定する。

あとはgoogle先生にサイトマップの通知を行えば、しばらくすると反映されるでしょう。

ユーザー名を改めました

いままでは、ほぼ家から出ない毎日でしたが、定期的に外出するようになりましたので、スレルールにのっとってヒキ板からの離脱となりました。
現在JavaScript(Ajax)で処理しているシステムをflash化するためにActionScriptの勉強を開始したということもあり、404@hikkyから」404@swfに変更しました。
FLASH板の皆様、質問スレに厄介になるかもしれませんが、そのときはよろしくお願いいたします。m(
_ _)m