2010年3月30日 星期二

取消php的1440秒閒置逾時

在php.ini下找到
session.gc_maxlifetime = 1440
再自行調整

使用find方式

find 位置 -name 檔名

2010年3月12日 星期五

Searchlogic with prawn &2

這幾天在寫一份表單。因為懶惰‧於是舖了一張不經過post request的表單。再用searchlogic過濾條件,動態顯示客戶要的資料(基本教學見railscast)。記錄一下做這些事所遇到的問題

由於搜尋條件有一項是要用月份過濾,而日期格式的轉換實在是沒那閒時間慢慢研究,最後直接用Custom associated scopes的named scopes去定義所有月份,sql語法採用「month(欄位) = 月數」,取前端的boolean值確認條件(我是很想直接數字切進named scopes,但searchlogic的說明書內找不到方法,才會用此下策先做出個可用的替代品)

之後再加上prawn&prawnto(我必需要說我愛蝦子,這工具花了我兩小時就把第一張表格含下面會提的連結印出來),前陣子初次練習時不知哪裡鬼打牆...我猜說不定就是因為那時OS還是window...一直不順利,這次用半小時初步的畫面就做出來了(參考上連結,如果覺得Ryan的教學太神奇,這裡還有一篇比較簡易的教學文,另外還要注意這些教學都沒提到routes的format定義問題,如果發現網址一直吐錯誤,很可能是routes沒有設定網址的規格)
另外中文使用者還需要注意到,使用prawn時,得自己在gem內補上中文字型(參考),再到pdf的頁面下設定字型PATH

pdf.font "#{Prawn::BASEDIR}/data/fonts/LiHeiProPC.ttf"

最後是以前從沒遇過的問題,要在有searchlogic的參數下輸出pdf。假設搜尋後的url是http://lo.cal.host/reprot?search=xxx,那pdf的網址要是 http://lo.cal.host/reprot.pdf?search=xxx

要能印出上面這種網址,最後也是用暴力破解法:
request.path_parameters['controller'] +".pdf?"+ request.env["QUERY_STRING"]

我提過了...我的基本功很差的...為了查request有哪些能用,就花了我一小時....(參考見此)

引一下筆記

@client_ip = request.env["HTTP_X_FORWARDED_FOR"] #取得使用者的IP地址
@client_browser = request.env["HTTP_USER_AGENT"] #取得使用者浏览器信息
@http_referer = request.env["HTTP_REFERER"] #取得使用者來源(referer)
@client_language = request.env["HTTP_ACCEPT_LANGUAGE"] #取得使用者支持的语言
@server_port = request.env["SERVER_PORT"]
@request_uri = request.env["REQUEST_URI"]
@content_length = request.env["CONTENT_LENGTH"].to_i
@rails_relative_url_root = request.env["RAILS_RELATIVE_URL_ROOT"]
@script_name = request.env["SCRIPT_NAME"]
@request_method = request.env["REQUEST_METHOD"]
@path_info = request.env["PATH_INFO"]
@query_string = request.env["QUERY_STRING"]
@server_software = request.env["SERVER_SOFTWARE"]
@https = request.env["HTTPS"]
@potocol = request.env["HTTP_X_FORWARDED_PROTO"]
@content_type = request.env["CONTENT_TYPE"]