2008 3月の記事

XOOPS を簡単に始めたい »

 XOOPS は初心者泣かせの CMS ツールだと思う。
 まずインストールした後の使い方を調べるのに泣かされる。そもそもインストール直後は空っぽだから、目的に応じてモジュールを追加インストールしなければいけないのだが、では「例えばこういう使い方をしたい場合はどのモジュールを使えばいいのか」というような基本的なことからまずわからないのである。
 こういう場合、正直「XOOPS Cube 日本サイト」は、あまり初心者には向いていないと思う。よくわからないけど有用そうな情報がたくさんある。でもある程度 XOOPS を使った経験と知識がないうちは、さっぱり要領を得ない。

 で、色々悪戦苦闘しているうち見つけたのが、「ホダ塾」というサイトで提供している「ホダ塾ディストリビュージョン」である。最初から、サイト構築に必要そうなモジュールが組み込まれていて、XOOPS インストールと同時にモジュールまでインストールできる。少なくとも、わけもわからずモジュールを調べ回ったり捜したりバージョンの互換性を気にしたりといったことから開放される。あとは各モジュールを自分で試してみて、要らなければ削除していけばいい。(それから、インストール時に UTF-8 が選択できる点も、ありがたい。普通に Japanese としてインストールすると文字コードが EUC になってしまうのだが、やはり UTF-8 を使いたいじゃないか)
 しかも「うさぎにもできるXOOPS Cube入門♪」というサイトがあって、こちらでは「ホダ塾ディストリビュージョン」のインストールから使い方の基礎まで解説してくれている。
 新規インストールする場合、今後はこの2つのサイトを活用しようと思っている。

リンク

  • ホダ塾
    2008年3月3日、ホダ塾ディストリビューション"HD1.0 for XCL2.1"リリース
    (XCL って何だろうと思ったが、よくよく考えたら XOOPS Cube Legacy の頭文字だった)
  • うさぎにもできるXOOPS Cube入門♪
  • XOOPS Cube 日本サイト
    (一応こちらもリンクはしておこう。ある程度習熟してからなら、きっと色々お世話になるはず)

Tail-Lagoon @ 19:03   |   PageUp

TypePad テンプレートに関するメモ »

インデックス・テンプレートは、出力するファイル名が決まっている=1ページのみ作られるファイル用のテンプレート。つまり、新たに追加した場合、自分でファイル名を決定し、アクセス方法はそのファイル名にリンクすればよいということになる。

※これに対して、アーカイブ・テンプレートは、出力するファイル名が決まっていない=複数ページ作られるファイル用のテンプレート。テンプレートの種類と数は既にシステムで決められているので、新たにテンプレートを追加することはできない。既存テンプレートファイルの変更修正のみ可能。

グローバル属性(どのMTタグにも使えるアトリビュート)
    remove_html="1"
        文字列からHTMLタグを取り除く
        ex. あいうえお<br />かきくけこ → あいうえおかきくけこ
    generate="1"
        (現時点では不明。何かねこれ?)

【エントリーの一覧表示関連】

<MTEntries> のソートに関する属性(アトリビュート)
    sort_by
        表示順の並べ替えを行うフィールドを指定。
        オプション値は、title, status, modified_on, author_id, excerpt のいずれか。
        (注 : この属性を記述しない場合は、投稿順ソートとなるため、
           通常は無記述で構わない)
        ex. sort_by="title"

    sort_order
        表示順の設定。ascend(昇順)もしくは descend(降順)。
        ex. sort_order="ascend"

    ex. <MTEntries sort_order="ascend">

テンプレート・モジュールについては、ナレッジ・ベースよりもマニュアルページの方が詳しいようだ。ナレッジ・ベースでは掲載されているモジュール数が少ない。

記事概要表示
    ex. <$MTEntryExcerpt remove_html="1" encode_xml="1"$>
    通常RSS出力で使用。特に概要記事を別に用意しない場合は、むしろ下記の方が良いか?

記事本文表示
    ex. <$MTEntryBody words="N"$>
    記事本文をN文字分表示(かつ、HTMLタグは除去される)。全文を表示したい場合は属性不要。

Tail-Lagoon @ 02:00   |   PageUp

MySQL よく使うコマンド »

MySQL

  • ログイン
    mysql -u USERNAME -p;
    ユーザ名 USERNAME でパスワードオプション付きでログイン
  • データベース作成
    create database DB-NAME character set utf8;
    DB-NAME というデータベースを、使用する文字コード UTF-8 と指定して作成
  • データベース削除
    drop database DB-NAME;
    DB-NAME というデータベースを削除
  • データベースの一覧
    show databases;
  • データベースの選択
    use DB-NAME;
  • TABLE情報表示
    show table status;
    テーブルの型などが知りたい場合もこれで分る
  • TABLE作成時のクエリ表示
    show create table TBL-NAME;
    新たにテーブルを作る時や、同じカラムを持つテーブルを作りたい時など参考になる
  • カラム情報表示
    show columns from TBL-NAME;
  • 全データ表示
    select * from TBL-NAME;
  • 新規レコード作成
    insert into TBL-NAME set ID=0,TITLE='あああ',BODY='いいい';
    (ID, TITLE, BODY という名の各カラムがあると想定)
  • レコード削除
    delete from TBL-NAME where ID=0;
    ID の値が 0 のレコードを消去
  • キーワードを重複なしで表示
    select distinct KEYWORDS, KANA from TBL-NAME order by KANA;
    KEYWORDS カラムの値と KANA カラムの値を重複なしで表示し、表示順は KANA カラムの値でソート
  • オートインクリメント(自動連番)カラムの値を振り直す場合、下記の手順で実行する(例では ID カラムがこれに該当)
    1. ID カラムを削除
      alter table TBL-NAME drop column ID;
      オートインクリメント・カラムは各テーブルに一つだけしか作成できないので、連番を振り直す場合は、一旦カラムを削除して新たに作り直す必要がある
    2. 新規 ID カラム(整数型・自動連番)を追加
      alter table TBL-NAME add ID int(5) primary key not null auto_increment first;
      primary key は重複を許さない主キーのことであり、NOT NULL でなければならない
  • カラム名を変更する
    alter table TBL-NAME change OldColumnName NewColmunName DataType;
    (データタイプについては調べること)
  • レコードを変更する
    update TBL-NAME set ColumnName='New Data' [, ColumnName='New Data'] where … ;
    (where 以下の条件文を指定しない場合は、全レコードが書き換えられる)
  • 文字をまとめて置換する
    UPDATE `tablename` SET ColumnName=REPLACE (ColumnName,”置換前の文字”,”置換後の文字”);

Tail-Lagoon @ 17:54   |   PageUp

Mac OSX のメンテナンス覚書き »

AppleJack

AppleJack Project Page : http://applejack.sourceforge.net/

シングルモード(CUI)で動作するメンテナンスソフト。
起動ディスクをメンテナンスする場合は、方法が2つあって、

  1. DVDや他のHDD等から起動して、通常起動しているハードディスクの方ををフリーにする。
  2. もしくはシングルモードで起動する。

のどちらかとなる。2. の方法は CUI なので多少とっつきにくいが、いちいちインストールDVDを引っ張り出してこなくて済むので便利。
で、普通ならシングルモードで起動後、"/sbin/fsck -fy" などとやるわけだが、ここで代わりに AppleJack を使用すると、勝手にいろいろやってくれる。

使い方

  1. まずシングルモードで起動する(起動音の後すぐに "Command + S" を押し続ける)。
    シングルモードは冷却ファンが全力駆動するので結構うるさい、というか少々ビビる。が気にせずに。
  2. プロンプトで "applejack auto" とタイプしてコマンドを実行する。あとは放っておけばいい(途中で何度かタスクをスキップするかとか実行を止めるかとか聞いてくるけど、特にその必要がなければ無視しておけば、そのまま続けてくれる)
  3. 処理が完了すると再起動(r)するかシステム終了(q)するか聞いてくるので、どちらか選択して、シングルモードからさようなら。

Onyx

Titanium Software : http://www.titanium.free.fr/

通常のアプリケーションとして GUI で使用できるので、普段はこちらを使っておけば充分。で、メンテナンスしてると、起動ディスクの修復が必要とか促される場合があるので、そういう時には上記シングルモード + AppleJack を利用する。

実は普段滅多にメンテナンスなんかしない(MacOSX になってからというもの、幸運にも殆どトラブルにあったことがないのだ)ので、上記2ソフトも今回初めてその存在を知ったくらいだ。しかしトラブルは忘れた頃にやって来るのが常なので、覚書きとして書いておいた。あとそれから、

Tinker Tool

Marcel Bresink Software-Systeme : http://www.bresink.com/

メンテナンスとはちょっとずれるが、Tinker Tool はシステムの隠し機能を設定するソフト。 .htaccess などの不可視ファイルを確認したい時などに便利なので、よく使用している。
(本当は .htaccess はターミナルで vi などを使用して編集する方法を覚えた方が何かと都合がいいのだろうが、ついつい GUI で済ませてしまうんだよね)

Tail-Lagoon @ 12:33   |   PageUp

Mac OSX のターミナルコマンド覚書き »

ファイル比較

cmp -[op] [File1] [File2]
実行すると、相違点の行数と桁数がわかる。画像などのバイナリファイルにも使用できる。
diff -[op] [File1] [File2]
テキストファイルの比較に使用。
comm -[num] [File1] [File2]
テキストファイルの比較に使用。
num :

  • num = 1 : File1のみにあるデータを非表示
  • num = 2 : File2のみにあるデータを非表示
  • num = 3 : 両方にあるデータを非表示

テキスト表示

cat -[op] [File]
テキストファイルの内容を出力。パイプやリダイレクトにも使用。
more -[op] [File]
less -[op] [File]
テキストファイルの内容を画面単位で出力。(less はviライクな表示操作も可能)

Tail-Lagoon @ 00:00   |   PageUp

Windows IE でレンダリングがおかしい時 »

Look at the 1st line
Sample

 動的出力をするページで、時々、ドキュメントタイプ宣言(!DOCTYPE)より前──つまりソースの第1行──にHTMLコメント文などを出力するプログラムがあるが、これをやると Windows IE の描画がおかしくなることがある。

 散々HTMLソースやらCSSをあちこち確認したあげく、原因がこれだとわかった時の虚脱感はなんともいえないものだ。

 対策は、とりあえずプログラムの該当箇所をコメントアウトして何も出力させないようにするか、DOCTYPE より後になるように調整すれば済むことだけど、プログラム作者が自分じゃない場合などは、バージョンアップの際に元に戻ってしまったりして、しかもこちらもそんな対策をしたことなどすっかり忘れてしまってたりするから、思い出すまであれやこれやするはめになるのだ。

 もし他にどこにも原因になりそうな箇所がないのに、どういうわけか WinIE で表示が変だという場合、ソースの第1行がどうなっているか見落としてはいけない。忘るべからず。

Tail-Lagoon @ 20:01   |   PageUp

htaccess による PHP の設定 »

.htaccess ファイルを用いて、Webサーバ(Apach)における PHP その他の動作設定を変更することはよくあるが、大概サイト構築時の初期の段階において行い、あとは殆ど顧みることがないため、そのうちすっかり忘れてしまうものだ。そして毎回新しいサイトを作るたび、何だったっけ? と探し回るはめになるので、下記に記録。

デフォルトで表示されるページのファイル名を変更したい

DirectoryIndex sample.php index.php index.html
(先に記述したものほど表示の優先順位が上になる)

拡張子 .html のままで PHP を走らせたい

AddType application/x-httpd-php .html .htm

セキュリティ上、下記項目は必ず phpinfo() で値をチェックし、違っていたら下記値で設定すること(必須)

php_flag register_globals Off
php_flag track_vars On
php_flag display_errors Off

  • register_globals オプションを無効にするのは、EGPCS(Environment, GET, POST, Cookie, Server)変数のグローバル変数登録を不可にするため。
  • その代わりに track_vars オプションを有効にして、上記変数をグローバル連想配列 $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER として参照可にする。
  • display_errors はエラー表示するかしないかの設定。テスト環境では有効にしておいた方が開発しやすいのだが、本番(公開)環境では、エラー表示により重要なパスや変数名が表示されてしまうのを防ぐために無効化する。
  • ついでに書いておくと、チェックで使用した phpinfo() のファイルは、必ず削除しておくこと!

※ PHP の httpd オプションについては下記サイトに詳しい。
http://jamesthornton.com/php/japanese/configuration.directives.html

***

↓以下は、PHP じゃないけど、htaccess 関連としてついでに書いておくと

拡張子 .html のままで SSI を使いたい

Options +Includes
AddType text/x-server-parsed-html .shtml .html .htm

(Options は SSI 実行可能領域を設定するのだが、もともと実行可なら必要なし)

※ httpd の設定に関する参考サイト
http://www.tagindex.com/other/htaccess.html

Tail-Lagoon @ 16:03   |   PageUp

WEBサイト制作時のフォントサイズの指定について »

 WEBサイト制作において、フォントサイズはピクセルで指定するのが最もわかりやすい。

 作る際にピクセルでフォントサイズを指定し、あとは勝手にユーザ側で大きくするなり小さくするなりすればいいと思う。しかし Windows IE はピクセル指定されたフォントは表示を固定してしまい、ユーザ側で大きさを変更できない(この問題は IE7  になってもまだ残されたままだ)。

 そこで、作る側としては、とりあえずピクセル指定した後、IE用のCSSハックを用いて相対指定するという若干面倒な作業をしてきたわけだが、その際に使用するCSSハックはアンダースコア・ハックが一番手軽だった。ところが IE7 ではこのアンダースコア・ハックは無視するようになってしまったのだ(互換モードのときは使えるらしいが)。なんてこった。

 だから今後はもういっそのこと、フォントサイズはすべて相対指定にして、いちいちブラウザを区別するのはやめてしまおうと思っている。

 その際、最初に CSS で * { font-size: 100%; } としてすべての要素をデフォルト(ユーザが環境設定を変更していなければ通常は 16px だ)にしてしまい、あとはそこからの相対パーセンテージで指定するのがおそらくもっとも簡単な方法だという気がする。

 ただ、相対指定は親要素の値を引き継ぐから、親が 80% サイズのとき、子を 75% とすると、元のサイズからは 60% になってしまうため若干注意が必要だ(だからピクセル指定のほうが便利なのに、MSのバカヤロー)。しかしそれさえクリアすれば後は下記のサイズ指定ですむはずだ。

文字サイズ 16px = 100% とした場合のパーセンテージ計算値

px 32 28 26 24 22 20 18 16 14 13 12 11 10 9 8
% 200 175 162.5 150 137.5 125 112.5 100 87.5 81.25 75 68.75 62.5 56.25 50


Tail-Lagoon @ 12:26   |   PageUp