ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

オブジェクト指向で開発の最初から最後までの手順例-その44:雛形(17)

2008-01-22 17:13:17 | 開発ネタ

シリーズオブジェクト指向で開発の最初から最後までの手順例です。

 前回、画面部分の共通Javascriptを示しましたが(あれ、やっぱバグがありました。今度まとめて書いておくのと同時に、もとネタ直して置きます)、今回はその使い方です。




■使い方

以下のソースの例のように、

arr = new Array();
arr['引数名1'] = 設定したい値1;
 :
 :
arr['引数名n'] = 設定したい値n;
と引数を設定し、httpRequestを呼び出します。

もどってきたら、
xtree = retObj.responseXML;
retCode = getRetCode(xtree);
で返り値を受け取り、それによって、次の処理を行います。




■ソース例

こんなかんじです。

<html>
<head>
<title>テスト画面</title>
<SCRIPT type="text/javascript" src="kyotsu.js"></script>
<SCRIPT Language="JavaScript">
<!--

//*==============================================//
//*	関数:retfunc()			  *//
//*	内容:処理結果			  *//
//*==============================================//
function retfunc(retObj)
{
	
			//	返り値XMLの取得
	xtree = retObj.responseXML;
	retCode	=	getRetCode(xtree);
	switch(retCode)
	{
	case	"0":
//		for(i = 0 ; i < getRecCount(xtree) ; i ++)
//		{
//			getRecItemValueを使ってデータセット
//		}
		break;
	default:
		alert("処理エラー");
		break;
	}
}

//*==============================================//
//*	関数:zikko()			  *//
//*	内容:処理実行			  *//
//*==============================================//
function zikko()
{
	url = "http://127.0.0.1/test.php";
	arr = new Array();
	arr['text1'] = f1.text1.value;
	httpRequest("GET",url,arr,retfunc);
}

//*==============================================//
//*	関数:load()			  *//
//*	内容:読み込み開始		    	  *//
//*==============================================//
function load()
{

	//	読み込んだら何かする場合

}

// -->
</SCRIPT>
</head>

<body onLoad ="load()">
<p>テスト画面</p>
<form id="f1" name="f1">
<p>データ入力:<input type=text id=text1 name=text1></p>
<p><input type=button id=bt1 name=bt1 value="実行" onClick="zikko()"></p>
</form>
</body>
</html>

(上記< > ¥は本当は半角です)




これでいままでのまとめの「(4)フレームワークにもとづき、クラスなどの開発手順、雛形の確定」はおしまいです。
つぎから(5)にすすみます。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SugarCRM 4.5のカスタマイズのまとめ(2)

2008-01-22 11:46:20 | Weblog

 きのうからはじめた、SugarCRM 4.5のカスタマイズのまとめですけど、前回は、SugarCRMはモジュールで出来ていて、モジュールをカスタマイズするには、SugarBeansを継承するモジュールと、継承しないモジュールの2とおりあること、そしてカスタマイズ方法としてインストールを作る場合と作らない場合があることを説明しました。

 で、前回では、SugarCRMを継承せず、インストーラーを作らないケースについて、最小限のファイルで説明しました。今回は、ここに表示させる方法、DBアクセス、ユーザー情報、メニューについての説明なのですが、そもそも、どのファイルが対象になっているかについて説明するため、まずはじめに、画面の動きを説明してから、それら説明に入ります。




■SugarCRMの画面の動き

SugarCRMが、ローカル(=ipアドレス127.0.0.1)のhtdocの下に、SugarCRMというフォルダを
つくってインストールしたとしたら、ログイン画面は、

http://127.0.0.1/SugarCRM

になって、このとき、SugarCRMの下のindex.php(apacheホーム/htdocs/SugarCRM/index.php)
が表示されますよね。

で、ログインしてください。そうすると、

http://127.0.0.1/SugarCRM/index.php?module=Home&action=index

となって、ホームが表示されますよね。
以降、moduleとactionが開く画面によって変わっていきますが(これ以外の引数も画面によってつく)、かならず、はじめはhttp://127.0.0.1/Sugar/index.php?のはずです。

 つまり、何か画面処理すると、かならず、SugarCRMの下のindex.phpにきます。
 で、はじめはログイン画面を出しますが、それ以降は、上の部分などの、テーマという部分をだして、その後、メイン画面に、モジュール名で指定されたモジュールフォルダの、actionファイルを起動します。
 つまり、

http://127.0.0.1/SugarCRM/index.php?module=Home&action=index

 の場合、メインページには、SugarCRM/modules/Home/index.phpが表示されます。

 そして、メインページの左となり、ショートカットには、モジュール名で指定されたモジュールフォルダの、menu.phpを(あれば)起動します。

 前回作ったタブをクリックすると、

http://127.0.0.1/Sugar/index.php?module=Tests&action=index

 になると思います。

この場合、メインページ部分には、SugarCRM/modules/Test/index.php
ショートカット部分には、SugarCRM/modules/Test/menu.php
menu.phpというファイルは作成していません。なので、なにも表示されていません。
Testモジュールの下のindex.phpは作成しましたが、なにも書いていません。
なので、なにも表示されていません。

逆に言うと、SugarCRM/modules/Test/index.phpに何か書くと、そこに表示されます。
早速書いてみましょう(^^)!




■DBアクセス内容を表示させてみる

 せっかくなので、DBアクセスした内容を表示してみたいと思います。
 usersテーブルにはデータが入ってるはずです。
 (もし入ってなかったら、あなたはログインできてないはずなので、Test画面を見れないはずです。
 すくなくとも、ユーザーテーブル中に、あなたのデータは入っています)。

 なので、usersテーブルを見ましょう。

 SugarCRM Developer's Manualをみると、199ページで
mysql_queryでやってますけど、たしかにこれでもOKですけど、SugarCRMのほうで、ほかのDB
のことも考えて、$dbというグローバル変数を用意しているので、それを使いましょう。
なお、P277では、$dbを使っておきながら、mysql_resultを使ってます。これはちぐはぐなので、
もっとだめだめです。$dbで用意しているものを使いましょう。

こんなかんじ

global $db;
$result = $db->query("SELECT * FROM users;");
while(($row=$db->fetchByAssoc($result)) != null)
{
	print($row['user_name']);
	print($row['id']);
}





■ユーザー情報

 現在、そのSugarCRMを使っている人、カレントユーザー、つまりあなたの情報は、グローバル変数 $current_userにはいってます。何が入っているか知りたかったら、

print_r($current_user);

で見てくださいね!・・・と、気楽に書けない・・(理由は後述)




■で、結局index.phpは

 で、結局、Testの下のindex.phpは、こんなかんじ
<?php
//======================================//
//	accountsテーブルアクセス	//
//======================================//
global $db;
$result = $db->query("SELECT * FROM users;");
while(($row=$db->fetchByAssoc($result)) != null)
{
	print($row['user_name']);
	print($row['id']);
}
?>

<HR>

<?php
//======================================//
//	カレントユーザー名		//
//======================================//
global $current_user;
print_r($current_user);

?>

(上記< > は、本当は半角)

これで、もういちど、testのタブをクリックすると。。

ぎゃあ(@_@!)・・・というくらいいっぱいでてきます。
カレントユーザー情報、すごいいっぱいあるんです(>_<!)




 左側のメニューは、Testモジュールの中にMenu.phpというファイルをつくって、そのなかを記述するのですが、具体的な記述に関しては、$mod_stringsを説明してからのほうがよさそうな気がするので、今回はこのへんにします。

 次回は、そっちのほうを説明するか、それとも、SugarBeanを継承するほうを説明するか、未定。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネットはハンドル名だから炎上で済んでいる、もし本名使って住所公開したら、事件が・・?

2008-01-22 01:35:54 | Weblog

ここの痛いニュース
「『ネットでは、実名を使うのが基本』となる制度を。それがネットをよくしていく」…弁護士の小倉秀夫氏
http://blog.livedoor.jp/dqnplus/archives/1082164.html

によると(以下斜体は上記サイトより引用)


ネット上の誹謗中傷にどう対処するか、匿名だから氾濫するのか。こうした疑問について、ネット実名制を唱える弁護士の小倉秀夫氏に話を聞いた。

――小倉さんのおっしゃる実名制とは、まずどんな考え方か教えて下さい。
実名制といっても、2つのフェーズがあります。1つは法的なシステム、もう1つは情報発信者の倫理ということです。法的なシステムについては、まず、不特定多数の人たちに責任の所在が明示できるように、現実社会の名前、つまり実名を使うのを基本とするような制度にするべきです。たとえペンネームなどを使う場合でも、発言の被害者から氏名、住所の開示の請求があれば、いつでも開示できることが望ましい。


いや、開示しちゃあ、まずいんじゃないでしょうか?
こうは考えられないでしょうか?

炎上しても、リアル世界で、殺されるわけではありません。
なので、「匿名であれば」炎上しても、かなりの可能性で、リアル世界では、そんなに社会的経済的影響を受けないことが多いのではないでしょうか。

一方、住所と電話番号が知られてしまったら、「匿名で」公衆電話あたりから電凸してくるっていうことはありませんか?「発言の被害者」といっても、発言がこんがらがると、どっちが被害者でどっちが加害者かわからなくなるのがネットの怖さだったりします。

 さらにエスカレートしたら、なにしでかすかわかりません。。。
 もちろん、そんなことはほとんどないと思いますが、0とは言い切れないと思います。

 そう考えると、匿名によるネットでの炎上は問題かもしれないけど、それを、実名にしたら解決するとか、そーいう問題ではなく、むしろ事態はもっと悪いほうに進行すると思うんですけど。。
 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする