ゆうの音(ね) -13ページ目

ゆうの音(ね)

ソフトウェア開発会社の社長兼SEの
日々のもろもろを綴ったブログ

コントローラー
custmers_controller.php

/**
* beforeFilter
*
* @param
* @return void
*/
function beforeFilter() {
/* 処理 */
parent::beforeFilter();
// ajax:json の場合
if ($this->RequestHandler->isAjax()) {
// action が jsonの場合
if ($this->action === "json") {
$this->layout = "ajax";
Configure::write("debug" , 0);
$this->RequestHandler->setContent("json");
$this->RequestHandler->respondAs('application/json; charset=UTF-8');
}
}
}

/**
* index
*
* @param
* @return void
*/
function index() {
$this->set('title_for_layout', '顧客一覧');
}

/**
* json
*
* @param
* @return void
*/
function json() {
$page = $this->params['url']['page'];
$limit = $this->params['url']['rows'];
$sidx = $this->params['url']['sidx'];
$sord = $this->params['url']['sord'];

if(!$sidx) $sidx =1;
$row = $this->Customer->find('count');
$count = $row;

if( $count > 0 ) {
$total_pages = ceil($count/$limit);
} else {
$total_pages = 0;
}

if ($page > $total_pages) $page=$total_pages;

$start = $limit*$page - $limit;

if($start <0) $start = 0;

$limit_range = $start.",".$limit;
$sort_range = $sidx." ".$sord;

$ret = $this ->Customer->find('all',array('fields'=>array('Customer.id','Customer.name','Customer.kana')));
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;

$i=0;
foreach($ret as $row){
$responce->rows[$i]['id'] =$row['Customer']['id'];
$responce->rows[$i]['cell'] = array($row['Customer']['id'],$row['Customer']['name'],$row['Customer']['kana']);
$i++;
}
$this->set('customers', $responce);
}

モデル
customers/index.ctp

<script type="text/javascript">
jQuery(document).ready(function(){
//Grid For Master Table
jQuery("#list").jqGrid({
url:'<?php echo $html->url(array("controller" => "customers", "action" => "json")); ?>',
datatype: 'json',
mtype: 'GET',
colNames:['Id','氏名','フリガナ'],
colModel :[
{name:'id', index:'id', width:100},
{name:'name', index:'name', width:200,editable:true},
{name:'kana', index:'kana', width:200,editable:true}
],
rowNum:5,
rowTotal: 2000,
rowList:[5,10,15],
loadonce:true,
rownumbers: true,
rownumWidth: 40,
gridview: true,
pager: '#pager',
sortname: 'id',
sortorder: 'asc',
multiselect: false,
viewrecords: true,
caption: '顧客一覧',
width:800,
height:500,
loadError : function(xhr,st,err) { jQuery("#rsperror").html("Type: "+st+"; Response: "+ xhr.status + " "+xhr.statusText); }
});
jQuery("#list").jqGrid('navGrid','#pager',{edit:false,add:false,del:false});
});
</script>

customers/json.ctp
<?= $javascript->object($customers); ?>




昨日の夜、仕事してたら目の前に蚊がぷーんと横切る

どっから来たんや

6月に引っ越す前は8階やったから蚊がいなかったけど

今年は2階やから結構被害うける



真夜中2時

蚊を一生懸命追いかける

でも途中で消える蚊

こいつ消える術使うんか?

そして、また現れる

あ、いたっ!

追いかける

また消える

クソーーっ!!




そうやっておちょくられ

それなら

それなら

逆手をとって

現れても

あえて追いかけてやらん!

「あれっ?この人間おいかけてけーへん」って思って

血吸いにきたところを仕留めてやるー


でもそれから現れない

なかなか用心深いやつや



俺も用心して



全身に虫よけスプレーして寝てやったぜ


被害ゼロチョキ



X2サーバーでcakePHP1.3.3導入メモ(DB:MySQL5.0.22)


1..構成
よりセキュアな環境のため、公開ディレクトリとフレームワークのディレクトリを分ける
cakePHPの/app/webrootを/public_htmlに設置し、それ以外のファイルを/public_htmlより上位に設置

/ドメイン名
 /public_html  ←/app/webroot下
 /cake ←/app/webroot以外


2.フレームワーク参照設定
 /public_html/index.phpを修正
 
/**
* The full path to the directory which holds "app", WITHOUT a trailing DS.
*
*/
if (!defined('ROOT')) {
// define('ROOT', dirname(dirname(dirname(__FILE__))));
define('ROOT', DS.'home'.DS.'ユーザ名'.DS.'ドメイン名'.DS.'cake');
}

/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
//define('APP_DIR', basename(dirname(dirname(__FILE__))));
define('APP_DIR', 'app');
}


3.mod_rewriteの設定
特に無しでOK

4.必要に応じてapp/tmp以下のパーミッション設定(755)

5.DB作成

6.DB接続設定
/cake/cake/app/config/database.php

class DATABASE_CONFIG {

var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '', ←localhostでなくサーバーのホスト名
'login' => '', ←
'password' => '', ←
'database' => '', ←
'prefix' => '',
'encoding' => 'utf8',
);

var $test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
);
}