海外PCで日本語を入力する

IT media Bizでものすごいサービスが紹介されていました。

なんと日本語変換のできない海外のPCでも日本語が入力できるサービスです。

Ajax IME: Web-based Japanese Input Method

Operaでは上手く動かなかったので、FireFoxで試してみたのですが
・・・凄すぎる!!!!!!
感動です!

Ajax を使った手書き文字認識

手書き文字の認識もできます。
これまた感動!

きまぐれ日記: Ajax IME ブックマークレット

さらにブックマークレットに登録しておけば、任意のフォームでこの機能が使えるという素晴らしさ。

ちなみにこんなサイトもありました。
Sumibi.org ローマ字を日本語に変換できる無料サイト

日本語入力して、そのまま Google で検索できます。
ただ使いやすさは、一番最初に紹介したAjax IMEが上かな。

元記事:ITmedia Biz.ID:海外のPCでも日本語を入力する

カテゴリー: Tips | コメントをどうぞ

アドレスバーに「opera:」と入力してみる

ITmedia Biz.ID:アドレスバーに「about:」と入力する
で、Internet Explorer や Firefox のアドレスバーに「about:」と入力すると
特殊なページが表示されることが紹介されていました。

私がメインで使っているのは Opera なので、Opera でも同様な機能が無いか探してみました。

で、
http://d.hatena.ne.jp/tmatsuu/20080308/1204996090
を見ると、どうやらOperaでは、アドレスバーに「opera:ほにゃらら」と入力すれば良いらしい。
というわけで試してみました。

項目 表示内容
opera:about Operaの概要が表示される
(バージョン情報、ブラウザーの識別情報、各種パス、サードパーティの情報など)
opera:plugins インストールされているプラグインが列挙される
opera:cache キャッシュファイルを表示する。
(キャッシュが大きいと表示に時間がかかるので注意)
opera:config コンフィグを表示する。ブラウザから設定もできる。
opera:history 履歴を表示する。何時何分にどのサイトに訪れたかまで分かる。
カテゴリー: opera | コメントをどうぞ

Windowsで使える8つのTips from ITmedia

ITmedia Biz.ID の 3分LifeHacking から、
Windowsで使えるTipsを抜粋してみた。
個人的なメモなので分かりづらい点もあると思いますが、その点はネタ元を参照。

○ファイル名に連番をつける

1.ファイル名を変更したいファイル群を選択
2.右クリックして「名前の変更」(またはF2キー)
3.新しいファイル名を入力し、Enterキーで確定
4.ファイル名末尾に(1)、(2)、・・・と連番がつく

間違えて入力した場合は[Ctrl]+[z]である程度元に戻る。

○フォルダ内で目的のファイルを探す

ファイル名の先頭の文字を入力すると、そのファイルが選択される。
たとえば[r]を押すと”readme.txt”が選択されるなど。

○複数ファイルのコピーで「すべて上書きしない」

ファイルコピー時、同名のファイルがあるときには「上書きしますか?」と聞かれる。
このときの選択肢は
「はい」「すべて上書き」「いいえ」
の3つしかないが、
[Shift]を押しながら「いいえ」を押すと、「すべて上書きしない」選択になる。

元ネタ:ITmedia Biz.ID:Windowsだけでできる――3つのファイル操作ワザ

○F5キーの便利な使い方

・Internet Explorer 7
・Firefox 2
[Ctrl]+[F5] スーパーリロード(キャッシュを無視して読み込み)

・PowerPoint 2003/2007
[Shift]+[F5] 選択したページからスライドショーの実行

・Word 2003
[Shift]+[F5] 直前の編集位置に移動
[Ctrl/Alt]+[F5] ウィンドウの大きさを元のサイズに戻す
[Shift]+[Ctrl]+[F5]ブックマークを挿入する

・Excel 2003/2007
[Shift]+[F5] [検索と置換]ダイアログボックスを表示する
[Ctrl]+[F5] ブックウィンドウを元のサイズに戻す

元ネタ:3分LifeHacking:ブラウザやOfficeソフトを[F5]で便利に使う – ITmedia Biz.ID

○Altキーでファイルのプロパティを表示
[Alt]+[Enter] ファイルのプロパティ

○Altキーでメニュー操作
ファイル(F)とあったら[Alt]+[F]で実行できる

元ネタ:3分LifeHacking:[Alt]キーのちょっとした小技 – ITmedia Biz.ID

○タブブラウザのタブを移動
[Ctrl]+[Tab]

○マウス操作のみで文字を入力するWindows標準ソフト
[スタート]メニューから[プログラム]‐[アクセサリ]‐[ユーザー補助]で、[スクリーン キーボード]

元ネタ:ITmedia Biz.ID:マウス操作だけで文字を入力する

カテゴリー: Tips | コメントをどうぞ

PHPで外部ファイルのサイズを取得する方法

ローカルのファイルのサイズを取得するときには filesize() 関数を使えば良いのですが、
どうもリモートでのファイルサイズを取得するには filesize() は使えないらしい。

というわけで探してみたところ、次のような方法で外部のファイルのサイズを取得できるようです。
ただし相手のサーバーの設定で Content-Length ヘッダーを返すようになっていないと使えないので注意。

戻り値は byte 単位です。


<?php

# 外部URIのファイルサイズを取得

function getFileSize($uri) {

    
$headers = get_headers($uri, 1);        

    if ((!
array_key_exists("Content-Length", $headers))) { return false; }

    return
$headers["Content-Length"];

}

?>

著色にはPHPソースをハイライト表示を使用しました。

カテゴリー: PHP | コメントをどうぞ

OperaでクッキーCookieを一括削除

私は動作の軽快さから、ブラウザはOperaを使っているのですが、
Cookieがかなり巨大になってきたので一括削除を図りました。

ただ一括削除の方法がなかなか見つからなかったので、自分用&どこかで困っているかも知れない人用にメモ。

○Cookieを1サイトずつ削除する場合

ツール > 設定 > Cookie > Cookie設定

から1サイトずつ選んでクッキーを削除してやります。

○すべてのCookieを一括削除する場合

ツール > 個人情報の削除

を選択。 「詳細」をクリックして、削除する個人情報を選択します。

「テンポラリCookieを削除」
「すべてのCookieを削除」

の2つにチェックが入っていれば大丈夫でしょう。

各種履歴やキャッシュ、メールアドレス、パスワードなども一括で消せるので
消したくない項目についてはチェックを外しておくこと。

OperaでクッキーCookieを一括削除

あとは「削除」ボタンをクリックすれば一括で削除してくれます。

カテゴリー: 日記 | 5件のコメント

cubsonを使って3時間で作るXOOPS評価モジュール[5]

XOOPS用モジュールの開発支援ツールであるcubsonを使って、レストラン評価モジュールを作ってみましょう。
今回はその5回目。

前回の記事はこちらcubsonを使って3時間で作るXOOPS評価モジュール[4]

分かりづらい点や間違い点、質問などありましたら、お気軽にコメントしてください^^

(10)評価対象のレストランを一覧から選択できるようにする

レストランに対する評価(rating)をするときには、レストランをプルダウンで選べると便利です。

レストランをプルダウンで選択
この画像のように、登録されているレストランを選べるようにしましょう。

{module_dir}/actions/RatingEditAction.class.phpに以下を追加

○追加箇所
var $mRestArr = null;
function prepare()
{
parent::prepare();
$catHandler =& $this->mAsset->load('handler', "restaurant");
$this->mRestArr =& $catHandler->getObjects();
・・・
}
function executeViewInput(&$render)
{
$render->setAttribute('restArr', $this->mRestArr);
・・・
}

{module_dir}/templates/resrate_rating_edit.html を一部変更
restaurant_id入力の部分を次のように変更します。

△変更前
<{xoops_input type=text name=restaurant_id value=$actionForm->get('restaurant_id')}>

○変更後
<select name="restaurant_id">
<{foreach item=rest from=$restArr}>
<option value="<{$rest->get('restaurant_id')}>" <{if $rest->get('restaurant_id') == $actionForm->get('restaurant_id')}> selected="selected"<{/if}>><{$rest->getShow('restaurant_name')}></option>
<{/foreach}>
</select>

これで登録されているレストラン一覧から選択できるようになりました。

もちろんレストラン情報を登録していないと選択することはできませんので、まずはレストランを登録してからRatingEditを見てみてください。

(11)評価のList表示でrestaurant_idにレストラン名を表示する

次に評価のList表示画面(RatingList)をいじりましょう。

現在は、RESTAURANT_ID のところに、そのレストランのIDがそのまま数字で表示されてしまっています。
レストランのIDがそのまま数字で表示されている

これをレストラン名で表示するようにし、ついでにレストラン詳細情報へのリンクにしちゃいましょう。
変更箇所は以下の通りです。

{module_dir}/class/handler/Rating.class.phpに以下を追加

○追加箇所
var $mRest = null;
var $_mRestLoadedFlag = false;
function loadRest()
{
if ($this->_mRestLoadedFlag == false) {
$handler =& xoops_getmodulehandler('restaurant', 'resrate');
$this->mRest =& $handler->get($this->get('restaurant_id'));
$this->_mRestLoadedFlag = true;
}
}

{module_dir}/actions/RatingListAction.class.php の
function executeViewIndex(&$render) に以下を追加

○追加箇所
foreach(array_keys($this->mObjects) as $key){
$this->mObjects[$key]->loadRest();
}

{module_dir}/templates/resrate_rating_list.html を変更

△変更前
<{$obj->getShow('restaurant_id')}>

○変更後
<a href="./index.php?action=RestaurantView&amp;restaurant_id=<{$obj->getShow('restaurant_id')}>"><{$obj->mRest->getShow('restaurant_name')}></a>

あとはアップデートを行って変更を反映させましょう。

レストランIDが名前になりました
数字で表示されていたレストランIDが名前で表示されるようになり、しかもレストラン詳細情報へのリンクにもなっていることが分かります。

【ここまで75分】

さぁ、あとはレイアウトを整えていきましょう!

参考サイト:氷川 XOOPS Module 開発室

カテゴリー: cubson | コメントをどうぞ

cubsonを使って3時間で作るXOOPS評価モジュール[4]

XOOPS用モジュールの開発支援ツールであるcubsonを使って、レストラン評価モジュールを作ってみましょう。
今回はその4回目。

前回の記事はこちらcubsonを使って3時間で作るXOOPS評価モジュール[3]

分かりづらい点や間違い点、質問などありましたら、お気軽にコメントしてください^^

(7)ユーザーIDを自動入力する

前回まででは、レストランの評価(rating)を入力しようとすると、ユーザーID(uid)を手動で入力する必要がありました。

しかしXOOPSにログインしているユーザーに、ユーザーIDを手動で入力してもらうのは不便ですし、なりすましの危険もあります。

そこでユーザーIDを自動で入力するように変更しましょう。

{module_dir}/actions/RatingEditForm.class.php に以下を追加します。
これは$this->mObject->isNew()をチェックして、評価(rating)が新規投稿のときには、uid に XOOPSの登録ユーザーIDを代入する関数です。

○追加箇所
function prepare()
{
parent::prepare();
if ($this->mObject->isNew()) {
$this->mObject->set('uid', $this->mRoot->mContext->mXoopsUser->get('uid'));
}
}

さらに {module_dir}/templates/resrate_rating_edit.html の一部を削除・追加。
input 部分を削除して、hiddenにしています。

△削除箇所
<p>
<tr><br />
<td class="head"><{$smarty.const._MD_RESRATE_LANG_UID}></td><br />
<td class="<{cycle values="odd,even"}>"><br />
<{xoops_input type=text name=uid value=$actionForm->get('uid')}><br />
</td></p>

○追加箇所(< {xoops_token form=$actionForm}>の直後)
<{xoops_input type=hidden name=uid value=$actionForm->get('uid')}>

これで評価の入力時にユーザーID(uid)が自動で入力されるようになりました。
しかもユーザーIDは画面上にはあらわに現れませんので、ユーザーは特に意識せずに評価を投稿することができます。

(8)ユーザーIDを(数字ではなく)登録ユーザ名で表示する

評価(rating)のListをしたとき、ユーザーID(uid)はただの数字で表示されています。
しかし、ただの数字だと誰の投稿した評価なのか分かりにくいですよね。

そこでユーザーIDを XOOPSの登録ユーザ名で表示するようにしましょう。
これは簡単で次のようにするだけです。

{module_dir}/templates/resrate_rating_list.html の一部を変更

△変更前
<{$obj->getShow('uid')}>
○変更後
<{$obj->getShow('uid')|xoops_user:"uname"}>

(9) 評価Edit時、5段階評価をラジオボタンで選択

評価を投稿するときには、味、値段、サービスのそれぞれについて5段階で評価するようにしています。
この5段階評価をラジオボタンで選択できるようにしましょう。

一例として、味(aji)についての変更法を示します。
値段(nedan)とサービス(service)についても同様の変更を行ってください。

{module_dir}/templates/resrate_rating_edit.html の一部を変更

△変更前
<{xoops_input type=text name=aji value=$actionForm->get('aji')}>

○変更後
<label><input type="radio" name="aji" value="1"<{if $actionForm->get('aji')==1}> checked="checked"<{/if}> />1</label> &nbsp;&nbsp;
<label><input type="radio" name="aji" value="2"<{if $actionForm->get('aji')==2}> checked="checked"<{/if}> />2</label> &nbsp;&nbsp;
<label><input type="radio" name="aji" value="3"<{if $actionForm->get('aji')==3}> checked="checked"<{/if}> />3</label> &nbsp;&nbsp;
<label><input type="radio" name="aji" value="4"<{if $actionForm->get('aji')==4}> checked="checked"<{/if}> />4</label> &nbsp;&nbsp;
<label><input type="radio" name="aji" value="5"<{if $actionForm->get('aji')==5}> checked="checked"<{/if}> />5</label>

一度投稿した評価を編集するときには、以前に投稿したときの評価が選択済みになるように
<{if $actionForm->get('aji')==1}> checked="checked"<{/if}>
を入れています。
つまり、前回は「味:4」で評価した場合は、編集するときに「味:4」が選択済みになります。

また<label>〜</label>で囲っておくと、label内の文字をクリックするだけで、そのラジオボタンが選択されます。(Internet Explorer 6では上手く動かないようです)

アップデートをして反映させてください。

【ここまで60分】

カテゴリー: cubson | コメントをどうぞ

cubsonを使って3時間で作るXOOPS評価モジュール[3]

XOOPS用モジュールの開発支援ツールであるcubsonを使って、レストラン評価モジュールを作ってみましょう。
今回はその3回目。

前回の記事はこちらcubsonを使って3時間で作るXOOPS評価モジュール[2]

分かりづらい点や間違い点、質問などありましたら、お気軽にコメントしてください^^

(4) デフォルト・アクションの修正

前回までで、cubsonのインストール、プロジェクトの作成、テーブルの作成まで終わって、とりあえずモジュールの原型ができました。

しかし、今のままだとモジュールにアクセスしたときに何も表示してくれません。
そこで、デフォルトではレストランの一覧を表示するように設定します。

{module_dir}/class/Module.class.php

※{module_dir}は、モジュールが保存されているディレクトリ(C:\xampp\htdocs\html\modules\resrateなど)

を開いて、

function execute(&$controller)内の
$this->mActionName = "Default";

“Default”を{テーブル名}+{アクション}に変更します。
今回はレストランの一覧を表示したいので、”RestaurantList”に変更しました。
変更後:
$this->mActionName = "RestaurantList";

○アクション一覧

  • 編集: “Edit”
  • 一覧表示: “List”
  • 詳細表示: “View”
  • 削除: “Delete”

(5) テンプレートの修正

cubson が生成する一覧表示用のコードには余計な文字がまざっていて、うまく表示してくれません。そこで

{module_dir}/templates/{modulename}_{tablename}_list.html

の中の

"|theme}>

をすべて削除してください。

(6) インストール

ここで一度モジュールをインストールしてみましょう。
インストール方法は普通のモジュールと同じです。

モジュールをインストールすると、メインメニューに「RESRATE」というモジュール名が追加されているはずですので、それをクリックしてみましょう。

モジュールにアクセスすると、レストランの一覧表示画面になります。
また「ADD_A_NEW_RESTAURANT」から、新規レストランの追加もできるはずです。

各テーブルへのアクセスは

http://(XOOPSのURL)/modules/{モジュール名}/index.php?action={テーブル名}{アクション}

となっています。たとえば評価(rating)の一覧表示を見たい場合は

http://(XOOPSのURL)/modules/resrate/index.php?action=RatingList

とします。

【ここまでで50分】

次回は投稿時にユーザーIDを自動入力するようにしてみましょう。

カテゴリー: cubson | 4件のコメント

cubsonを使って3時間で作るXOOPS評価モジュール[2]

XOOPS用モジュールの開発補助をしてくれるcubsonというツールを使って、
レストラン評価モジュールを作っています。

前回の記事はこちら
muzin » cubsonを使って3時間で作るXOOPS評価モジュール[1]

今回は

  • cubsonのインストール
  • プロジェクトの作成
  • テーブルの作成

を行います。

分かりづらいところとか、間違いとかがありましたら、修正していきたいと思いますので
お気軽にツッコミを入れてってくださいm(_ _)m

【これまでで0分】

(1) cubsonのインストール

まずcubson/インストール – PukiWiki Plus!を参考に、cubsonをインストールしてください。
ある意味、これが一番大変かもしれません。

【ここまでで30分】

(2) プロジェクトの作成

まず cubson を起動して、プロジェクトを作成します。
1プロジェクト=1モジュールと思っていただければ良いかと。

プロジェクトを作成するには、cubson を起動して

makeproject resrate

と入力してください。文字がズラーッと表示されるはずです。
XOOPSをインストールしたフォルダの下の modules フォルダの中に resrate というフォルダが作成されていれば成功です。

※プロジェクトの作成
makeproject {プロジェクト名}

(3) phpMyAdmin からテーブルを作成

次にmuzin ≫ cubsonを使って3時間で作るレストラン評価モジュール[1]を参照して
テーブルを作成します。

テーブルはphpMyAdminから作成できます。

http://localhost/phpmyadmin/

にアクセスして、フレーム左側の「データベース」から xoops を選択。

ページ最下部の「データベース xoops に新しいテーブルを作成する」から、次のテーブルを作成してください。

{prefix}_resrate_restaurant
{prefix}_resrate_cat
{prefix}_resrate_rating

※{prefix} はデータベース用の接頭辞です。同じ文字からはじまるテーブルがたくさんあるので分かるはず。

XOOPS用のモジュールでは、テーブル名を
{prefix}_{モジュール名}_{テーブル名}
とする必要があるようです。

いちいちデータベースを作っている暇は無い!という方は次のようにしても大丈夫です。

プロジェクトを作成すると {module_dir}/sql/mysql.sql というファイルがあるはずなので、メモ帳などで開いて以下の内容をコピペしてください。

※{module_dir}には、モジュールが保存されているディレクトリを入れてください(C:\xampp\htdocs\html\modules\resrateなど)

CREATE TABLE `{prefix}_resrate_restaurant` (
`restaurant_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`restaurant_name` VARCHAR( 255 ) NOT NULL ,
`cat_id` INT( 11 ) UNSIGNED NOT NULL ,
`nedan` VARCHAR( 63 ) NOT NULL ,
`tel` VARCHAR( 15 ) NOT NULL ,
`fax` VARCHAR( 15 ) NOT NULL ,
`homepage` VARCHAR( 255 ) NOT NULL ,
`zipcode` INT( 11 ) UNSIGNED NOT NULL ,
`address` VARCHAR( 255 ) NOT NULL ,
`pr` VARCHAR( 1023 ) NOT NULL ,
PRIMARY KEY ( `restaurant_id` )
) ENGINE = MYISAM;

– ——————————————————–

CREATE TABLE `{prefix}_resrate_cat` (
`cat_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`cat_name` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `cat_id` )
) ENGINE = MYISAM;

– ——————————————————–

CREATE TABLE `{prefix}_resrate_rating` (
`rating_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`uid` INT( 11 ) UNSIGNED NOT NULL ,
`restaurant_id` INT( 11 ) UNSIGNED NOT NULL ,
`aji` INT( 5 ) UNSIGNED NOT NULL ,
`nedan` INT( 5 ) UNSIGNED NOT NULL ,
`service` INT( 5 ) UNSIGNED NOT NULL ,
`comment` VARCHAR( 1023 ) NOT NULL ,
PRIMARY KEY ( `rating_id` )
) ENGINE = MYISAM;

また {module_dir}/xoops_version.php の
// $modversion['sqlfile']['mysql'] = “sql/mysql.sql”;
のコメントアウトを外して次のようにします。
$modversion['sqlfile']['mysql'] = “sql/mysql.sql”;

さらに同じファイルの [cubson:tables] に以下の項を記述。
##[cubson:tables]
$modversion['tables'][0] = “{prefix}_resrate_restaurant”;
$modversion['tables'][1] = “{prefix}_resrate_cat”;
$modversion['tables'][2] = “{prefix}_resrate_rating”;
##[/cubson:tables]

あとはモジュールのアップデートを行えば、テーブルが作成されます。

【ここまでで40分】

カテゴリー: cubson | コメントをどうぞ

cubsonを使って3時間で作るXOOPS評価モジュール[1]

XOOPS用モジュールの開発補助をしてくれるcubsonというツールを使って、
レストラン評価モジュールを作ってみましょう。

制限時間は3時間。

既に自宅のパソコン上にサーバを立ち上げており、XOOPSもインストール済み
という前提で話を進めていきますのでご了承ください。
(希望があれば、XOOPSのインストールから説明します)

PHPが分からなくてもコピペで何とかなるように話していくつもりですが、
氷川 XOOPS 研究室 – Menu/Cubson [Cubson] – wikiを読んでいると、もっとよく分かると思います。

分かりづらいところとか、間違いとかがありましたら、修正していきたいと思いますので
お気軽にツッコミを入れてってくださいm(_ _)m

(0) 案件を決める

まず最初に、どんなモジュールを作るかを明確にしましょう。

今回は「レストランの評価」をするモジュールを作りたいと思います。

欲しい機能としては

  • レストラン情報を投稿できる
  • そのときレストランのカテゴリを、和食・洋食・中華etcから選択できる
  • レストラン情報に対して評価を投稿できる

とりあえずこれだけあれば、評価モジュールとしては最低限の機能をそろえているでしょう。

cubson ではデータベースを使いますので、
欲しい機能を元にどんなデータベースを作るかを決めます。
今回は次のようなデータベースを作りたいと思います。

※データベースを使ったことのない人は意味が分からないかも知れませんが、
使っているうちに分かってくるので、今の時点では分からなくても問題ありません。

モジュール名は、restaurant(レストラン)のrating(評価)ということで「resrate」とします。

{prefix}は、XOOPSインストール時に設定したデータベース用の接頭辞(prefix)です。
あとでデータベースを作成するときに、phpMyAdminでテーブル一覧を表示すれば、テーブル名の頭に同じ文字が並んでいるので分かるはず。
 XOOPS Cube Legacy をデフォルトでインストールしたときにはランダムな英数字6文字になっています。XOOPS2.0.Xから移行した場合は XOOPS_ となっていることが多いとか。

○レストラン情報用テーブル
{prefix}_resrate_restaurant

フィールド名 説明
restaurant_id レストランの識別ID
restaurant_name レストラン名
cat_id カテゴリ(和・洋・中ほか)
nedan 値段の目安
tel 電話
fax ファックス(なくても可)
homepage ホームページ(なくても可)
address 住所
pr PR

○カテゴリ情報用テーブル
{prefix}_resrate_cat

フィールド名 説明
cat_id カテゴリのID
cat_name カテゴリの説明
(和食・安め 和食・お手ごろ 和食・高級etc)

○ユーザー評価用テーブル
{prefix}_resrate_rating

フィールド名 説明
rating_id ユーザー評価の識別ID
uid 評価を投稿したユーザーの識別ID
restaurant_id 評価対象のレストランの識別ID
aji 味の評価(5段階)
nedan 値段の評価(5段階)
service サービスの評価(5段階)
comment コメント

とりあえず、こんな感じで。

このテーブルについては、あとから何度も参照することになると思います。

カテゴリー: cubson | コメントをどうぞ