if (Yii::app()-> user-> getIsGuest()) {
die('must login');
} else {
die('login');
}
CSS ~ set height 100%
html {
height: 100%;
}
body {
margin: 0;
padding: 0;
height: 100%;
}
#content {
background: #EEE;
border-left: 1px solid #000;
border-right: 1px solid #000;
padding: 0 20px 0 20px;
margin: auto;
font: 1.5em arial, verdana, sans-serif;
width: 960px;
min-height: 100%;
}
reference
http://www.tutwow.com/htmlcss/quick-tip-css-100-height/
height: 100%;
}
body {
margin: 0;
padding: 0;
height: 100%;
}
#content {
background: #EEE;
border-left: 1px solid #000;
border-right: 1px solid #000;
padding: 0 20px 0 20px;
margin: auto;
font: 1.5em arial, verdana, sans-serif;
width: 960px;
min-height: 100%;
}
reference
http://www.tutwow.com/htmlcss/quick-tip-css-100-height/
yii ~ urlManager rules example
之前做產品頁面我的網址都是透過apache設定成
product/xbox360
或是
product/ps3
作法是
RewriteRule ^product/([a-zA-Z0-9_-]+)/?$ product.php?urlName=$1 [L]
現在用yii
如果網址打product一定會是連到Product這個Controller的actionIndex
就是product/index
如果要加參數就是
product/index/id/12345678
這樣就跟我想像的不一樣.........因為照這規則網址勢必會變類似product/index/id/12345678
這時候就要去config裡改urlManager的rules
我這邊rules是新增這段
'product/<id>'=>'product/index',
ProductController的actionIndex
public function actionIndex() {
$id = Yii::app() -> getRequest() -> getQuery('id');
//do something
$this -> render('index');
}
這樣網址打
product/1234567
她就自動變成product/index/id/12345
reference
http://stackoverflow.com/questions/2760869/yii-framework-controller-action-url-parameters
product/xbox360
或是
product/ps3
作法是
RewriteRule ^product/([a-zA-Z0-9_-]+)/?$ product.php?urlName=$1 [L]
現在用yii
如果網址打product一定會是連到Product這個Controller的actionIndex
就是product/index
如果要加參數就是
product/index/id/12345678
這樣就跟我想像的不一樣.........因為照這規則網址勢必會變類似product/index/id/12345678
這時候就要去config裡改urlManager的rules
我這邊rules是新增這段
'product/<id>'=>'product/index',
ProductController的actionIndex
public function actionIndex() {
$id = Yii::app() -> getRequest() -> getQuery('id');
//do something
$this -> render('index');
}
這樣網址打
product/1234567
她就自動變成product/index/id/12345
reference
http://stackoverflow.com/questions/2760869/yii-framework-controller-action-url-parameters
yii ~ get url parameters
$id = Yii::app()->getRequest()->getQuery('id');
reference
http://stackoverflow.com/questions/2760869/yii-framework-controller-action-url-parameters
reference
http://stackoverflow.com/questions/2760869/yii-framework-controller-action-url-parameters
Discuz ~ 整合Facebook登入註冊
一開始是很蠢的自己寫這功能............
等把流程用好了才發現不是簡單塞session或是自己新增使用者欄位就好......
取值抓資料不是問題
最大的問題是我不知道該如何用Discuz的東西做登入的動作跟註冊
因為不這樣做不行......會有問題XD
後來上網找找找才找到這東西
http://codersclub.org/discuzx/forum.php?mod=viewthread&tid=1454
我用的是文章裡的這個檔案
http://www.mediafire.com/?jdvi4mu3luuquol
下載下來貼到discuz目錄
用管理者登入
進後台
點應用, 會有新的plugin可以安裝叫做
Facebook Connect 2.3
安裝完, 按啟用, 進去設置
輸入Facebook的App ID, App Secret
就可以用了
等把流程用好了才發現不是簡單塞session或是自己新增使用者欄位就好......
取值抓資料不是問題
最大的問題是我不知道該如何用Discuz的東西做登入的動作跟註冊
因為不這樣做不行......會有問題XD
後來上網找找找才找到這東西
http://codersclub.org/discuzx/forum.php?mod=viewthread&tid=1454
我用的是文章裡的這個檔案
http://www.mediafire.com/?jdvi4mu3luuquol
下載下來貼到discuz目錄
用管理者登入
進後台
點應用, 會有新的plugin可以安裝叫做
Facebook Connect 2.3
安裝完, 按啟用, 進去設置
輸入Facebook的App ID, App Secret
就可以用了
Discuz ~ execute php script in template
{eval statement}
前面一定要加eval
以下是我的用法~
reference
http://www.osho.tw/osho/usersguide/advanced_styles.htm
前面一定要加eval
以下是我的用法~
{eval include 'include/main.php';}
{eval print getTvwallBanner();}
{eval print getTvwallBanner();}
reference
http://www.osho.tw/osho/usersguide/advanced_styles.htm
Discuz ~ clear template cache
這問題發生在更新template檔的時候沒反應
上網google了才發現要清除快取= =
(這邊他翻譯成緩存......好大陸的用語XD)
所以我的修改過程就是....
修改了檔案, 要測試
就是用FTP上傳檔案, 在進後台清除快取
再在前台網頁F5看結果
一直反反覆覆
上網google了才發現要清除快取= =
(這邊他翻譯成緩存......好大陸的用語XD)
所以我的修改過程就是....
修改了檔案, 要測試
就是用FTP上傳檔案, 在進後台清除快取
再在前台網頁F5看結果
一直反反覆覆
yii ~ model relation get value example
product_internet_recommend
裡面有個productID是外來建為Product的id
models/ProductInternetRecommend.php
in controller
in view
reference
http://stackoverflow.com/questions/9857209/yii-relations-error-trying-to-get-property-of-non-object
http://www.yiiframework.com/doc/guide/1.1/en/database.arr
裡面有個productID是外來建為Product的id
models/ProductInternetRecommend.php
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'product' => array(self::BELONGS_TO, 'Product', 'productID'),
);
}
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'product' => array(self::BELONGS_TO, 'Product', 'productID'),
);
}
in controller
$productInternet = ProductInternetRecommend::model() ->with('product')-> findByPk(1);
in view
echo 'asd'.$productInternet->product->price;
reference
http://stackoverflow.com/questions/9857209/yii-relations-error-trying-to-get-property-of-non-object
http://www.yiiframework.com/doc/guide/1.1/en/database.arr
yii ~ call model function
in controller
in models/Product.php
$newProducts = Product::model() -> getNewProduct();
in models/Product.php
public function getNewProduct(){
die('newwwwwwwwwww');
}
die('newwwwwwwwwww');
}
yii ~ change default Controller
in config/main.php
reference
http://www.yiiframework.com/wiki/112/changing-controllers-name/
'defaultController' => 'index',
reference
http://www.yiiframework.com/wiki/112/changing-controllers-name/
yii ~ change layout
$this->layout = 'column1';
reference
http://www.yiiframework.com/wiki/28/how-to-implement-multiple-page-layouts-in-an-application/
Android ~ wifi disabled when locked
一個很瞎的問題= =
就是當手機鎖定之後
沒多久 .............wifi就消失了 .............
甚麼鬼XD
想不到google下還真的有這鳥問題= =
只是不知道為什麼要做這功能..............
找麻煩
Go into Wifi Settings
Click Menu
Advanced
Go into Wifi Sleep Policy
Change to Never.
Done.
照這位大大說的去做
問題似乎是真的解決了
至少不會因為沒wifi收不到whatsapp
非要去按一下他才去打開wifi接收資料
http://forum.cyanogenmod.com/topic/26540-wifi-turns-off-while-locked/
PHP IDE ~ Aptana
想當年都用Dreamweaver
對於source code有自動排版的功能
那怕只能排HTML跟CSS
我都好開心XD
幾乎從開始寫PHP就用dreamweaver
從CS4用到CS5........
就期待CS6還可以支援自動排javascript, php
但顯然....
想太多XDXD
後來經台客推薦
我才去下載aptana
想不到....
用了就回不去了XD
重點中的重點是他自動排版不但可以排HTML, CSS還可以排PHP跟javascript
超神@0@
有這功能真的就可以把dreamweaver丟掉了XD
絕大多數的情況都可以排好
但在一種狀況下aptana也會有無法排版的時候, 例如
在javascript裡放PHP的code
就會誤以為錯誤而無法自動排版0rz
因為這邊我的寫法是透過php產出json給javascript.......如果不這樣寫就不會有此狀況
也因為Aptana
使用他提供的一些Themes去改coding的介面
才發現其實黑底寫程式滿爽的XD
一開始可能會不習慣
但沒多久就會覺得這樣比較舒服lol
之前寫程式都是白底
現在是黑底~
對於source code有自動排版的功能
那怕只能排HTML跟CSS
我都好開心XD
幾乎從開始寫PHP就用dreamweaver
從CS4用到CS5........
就期待CS6還可以支援自動排javascript, php
但顯然....
想太多XDXD
後來經台客推薦
我才去下載aptana
想不到....
用了就回不去了XD
重點中的重點是他自動排版不但可以排HTML, CSS還可以排PHP跟javascript
超神@0@
有這功能真的就可以把dreamweaver丟掉了XD
絕大多數的情況都可以排好
但在一種狀況下aptana也會有無法排版的時候, 例如
在javascript裡放PHP的code
var workBudgets =<?=$this-> workBudgetJSON; ?>;
就會誤以為錯誤而無法自動排版0rz
因為這邊我的寫法是透過php產出json給javascript.......如果不這樣寫就不會有此狀況
也因為Aptana
使用他提供的一些Themes去改coding的介面
才發現其實黑底寫程式滿爽的XD
一開始可能會不習慣
但沒多久就會覺得這樣比較舒服lol
之前寫程式都是白底
現在是黑底~
解決Discuz和jQuery的衝突~
我是用人家的解決方法1
将jquery.js在common.js之前载入,不然jquery的$()函数会覆盖common.js的$()函数;然后用到jQuery的$()函数的地方都用jQuery()代替。
不過我是用$jq代替= =
var $jq = jQuery;
http://witmax.cn/discuz-jquery-conflict.html
将jquery.js在common.js之前载入,不然jquery的$()函数会覆盖common.js的$()函数;然后用到jQuery的$()函数的地方都用jQuery()代替。
不過我是用$jq代替= =
var $jq = jQuery;
http://witmax.cn/discuz-jquery-conflict.html
生...氣...
遇到搞不清楚狀況的發案方
也不是第一次
可是今天真的有點火
因為.......真的超無言XD
做這大便系統
會這樣講........因為我真的火了.....
XD
規格需求主要都是透過人家公司的某人口頭來做
原本說該欄位只用篩選用
後來說那個欄位也要做紀錄
後後來又說那欄位應該是做成多選才是
我就傻眼
由於該功能還牽扯到別功能的一些部份~~~~有關聯
這樣改來改去我也會花上很多功夫
我就改到很不耐煩
馬的.......後來她說不是這樣又要改的時候
我就說所以確定是這樣!?!? 我現在做成這樣就再也不改了
當下口氣當然也不是很好XD
人家是專案經理
不過他們說要做這系統似乎也不懂這系統的細節在做啥小
顯然
99%根本不知道
問個問題~~~~~~就說這邊應該是這樣吧
再問這問題~~~~~就考慮了一下.......ㄜ..... 我覺得應該是這樣這樣吧
慘
問比較細節的問題
一問三不知
然後開始拿出當初跟客戶討論好的靜態網頁來思考邏輯上是怎麼run的
真的很慘
我是來幫對方寫程式的
對方要做系統的~~~卻自己都不知道要甚麼~~~~所以我勒
更慘
我陪著他知知烏烏~~~~~心理萬般無奈
最後受不了我就說你這樣不清楚規格
我也很難做
就問當初談這規格要做這系統的人是誰~~~~~~叫他來跟我講需求到底是啥小
人來了
還真以為救星到了勒
結果開始講東講西
真的搞不清楚狀況耶
還說我程式不能這樣寫~~~~~~~林北是因為特殊狀況才這樣寫
他自己寫的模組就是太沒彈性
遇到特殊狀況我才情非得已~~~~~而且他的寫法又很冗長拖泥帶水
難寫死了
然後又開始自以為是的教我該這麼寫
我真的無言了.......
我的問題就很簡單
當A狀況是不是這樣~~~當B狀況是不是那樣
然後這裡的選單要怎麼過濾顯示
我要的就是簡單的答案
誰知道他就在那邊543~~~不知道在講啥小
最後還是我忍無可忍才打斷他再問一次........而且是我打斷了第三次
才終於說怎麼run........
真的是終於......
如果他是邊講543一邊思索流程跟邏輯再回答我
那我是沒意見還服了他
不是的話
那他應該是智障
也不是第一次
可是今天真的有點火
因為.......真的超無言XD
做這大便系統
會這樣講........因為我真的火了.....
XD
規格需求主要都是透過人家公司的某人口頭來做
原本說該欄位只用篩選用
後來說那個欄位也要做紀錄
後後來又說那欄位應該是做成多選才是
我就傻眼
由於該功能還牽扯到別功能的一些部份~~~~有關聯
這樣改來改去我也會花上很多功夫
我就改到很不耐煩
馬的.......後來她說不是這樣又要改的時候
我就說所以確定是這樣!?!? 我現在做成這樣就再也不改了
當下口氣當然也不是很好XD
人家是專案經理
不過他們說要做這系統似乎也不懂這系統的細節在做啥小
顯然
99%根本不知道
問個問題~~~~~~就說這邊應該是這樣吧
再問這問題~~~~~就考慮了一下.......ㄜ..... 我覺得應該是這樣這樣吧
慘
問比較細節的問題
一問三不知
然後開始拿出當初跟客戶討論好的靜態網頁來思考邏輯上是怎麼run的
真的很慘
我是來幫對方寫程式的
對方要做系統的~~~卻自己都不知道要甚麼~~~~所以我勒
更慘
我陪著他知知烏烏~~~~~心理萬般無奈
最後受不了我就說你這樣不清楚規格
我也很難做
就問當初談這規格要做這系統的人是誰~~~~~~叫他來跟我講需求到底是啥小
人來了
還真以為救星到了勒
結果開始講東講西
真的搞不清楚狀況耶
還說我程式不能這樣寫~~~~~~~林北是因為特殊狀況才這樣寫
他自己寫的模組就是太沒彈性
遇到特殊狀況我才情非得已~~~~~而且他的寫法又很冗長拖泥帶水
難寫死了
然後又開始自以為是的教我該這麼寫
我真的無言了.......
我的問題就很簡單
當A狀況是不是這樣~~~當B狀況是不是那樣
然後這裡的選單要怎麼過濾顯示
我要的就是簡單的答案
誰知道他就在那邊543~~~不知道在講啥小
最後還是我忍無可忍才打斷他再問一次........而且是我打斷了第三次
才終於說怎麼run........
真的是終於......
如果他是邊講543一邊思索流程跟邏輯再回答我
那我是沒意見還服了他
不是的話
那他應該是智障
PHP ~ get facebook feed
這段code
是用php取得user的timeline資料
找了很多文章
比較靠杯的是找到一個以為可以用的文~~~~其實不能用XD
可能是後來fb的api改版吧.......maybe
總之我不能用
http://johndoesdesign.com/blog/2011/php/adding-a-facebook-news-status-feed-to-a-website/
後來就再找找找
才找到可用的solution
其實很簡單
就幾段而已XD
以下是步驟~~~
先下載SDK
https://github.com/facebook/facebook-php-sdk
下載下來解壓縮放在server
新增facebook app
管他叫啥都好.....這部分我是用手機驗證才讓我新增app = =
新增之後要新增permission
可是詭異的是我新增這個extended permission......
卻一直沒跑出來....詭異XD
好像是要等吧=_ =
因為Save Changes之後他說
看樣子應該不只是數分鐘XD
總之在user認可使用這app應該要有這東西
好了之後複製App ID, App Secret
貼到example/example.php裡面這段
然後開啟網頁
登入
確認使用此 app
在example目錄新增php檔案
檔案內容為
開啟這網頁就會顯示出這位user的news feed
大概長這樣
reference
http://stackoverflow.com/questions/7319599/limit-since-and-until-parameters-in-page-feed
是用php取得user的timeline資料
找了很多文章
比較靠杯的是找到一個以為可以用的文~~~~其實不能用XD
可能是後來fb的api改版吧.......maybe
總之我不能用
http://johndoesdesign.com/blog/2011/php/adding-a-facebook-news-status-feed-to-a-website/
後來就再找找找
才找到可用的solution
其實很簡單
就幾段而已XD
以下是步驟~~~
先下載SDK
https://github.com/facebook/facebook-php-sdk
下載下來解壓縮放在server
新增facebook app
管他叫啥都好.....這部分我是用手機驗證才讓我新增app = =
新增之後要新增permission
read_stream
可是詭異的是我新增這個extended permission......
卻一直沒跑出來....詭異XD
好像是要等吧=_ =
因為Save Changes之後他說
Changes saved. Note that your changes may take several minutes to propagate to all servers.
看樣子應該不只是數分鐘XD
總之在user認可使用這app應該要有這東西
好了之後複製App ID, App Secret
貼到example/example.php裡面這段
$facebook = new Facebook( array('appId' => 'APP ID', 'secret' => 'App Secret', ));
然後開啟網頁
登入
確認使用此 app
在example目錄新增php檔案
檔案內容為
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
</head>
<body>
<pre>
<?php
require '../src/facebook.php';
$facebook = new Facebook( array('appId' => 'APP_ID', 'secret' => 'APP_SECRET', ));
$feed = $facebook -> api("/我是User的ID/feed", "GET", array('limit' => 100));
print_r($feed);
?>
</pre>
</body>
</html>
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
</head>
<body>
<pre>
<?php
require '../src/facebook.php';
$facebook = new Facebook( array('appId' => 'APP_ID', 'secret' => 'APP_SECRET', ));
$feed = $facebook -> api("/我是User的ID/feed", "GET", array('limit' => 100));
print_r($feed);
?>
</pre>
</body>
</html>
開啟這網頁就會顯示出這位user的news feed
大概長這樣
Array
(
[data] => Array
(
[0] => Array
(
[id] => 1111111111111111111111_2222222222222222222
[from] => Array
(
[name] => Bitty Ferrari
[id] => 11111111111111111111
)
[message] => [下午 12:27:08] Bitty: ..
[下午 01:23:06] Bitty: .....
[下午 01:23:10] Bitty: 這啥小情況
[下午 01:23:18] Bitty: 取 fb的feed
[下午 01:23:22] Bitty: 竟然不是最新的
[下午 01:23:25] Bitty: 是lagㄇ = =
[下午 01:41:16] Vince Chang: 錯
[下午 01:41:18] Vince Chang: 不是lag
[下午 01:41:35] Vince Chang: 是EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
[下午 01:42:03] Vince Chang: electric shock
[下午 01:47:35] Bitty: ......
[下午 01:47:37] Bitty: xdxdxdxxdxd
[picture] => https://fbexternal-a.akamaihd.net/safe_image.php?d=AQD0TMa_VCqMJnbw&w=130&h=130&url=http%3A%2F%2Fi3.ytimg.com%2Fvi%2Fn8I8QGFA1oM%2Fmqdefault.jpg
[link] => http://www.youtube.com/watch?v=n8I8QGFA1oM
[source] => http://www.youtube.com/v/n8I8QGFA1oM?version=3&autohide=1&autoplay=1
[name] => 에프엑스_Electric Shock_Music Video
[description] => ♬ Download on iTunes : http://itunes.apple.com/us/album/electric-shock-ep/id534866933 ☞ For more Information : http://www.smtown.com/ ☞ Facebook SMTOWN : htt...
[icon] => https://s-static.ak.facebook.com/rsrc.php/v2/yj/r/v2OnaTyTQZE.gif
[type] => video
[created_time] => 2012-08-09T05:51:32+0000
[updated_time] => 2012-08-09T05:51:32+0000
[likes] => Array
(
[data] => Array
(
[0] => Array
(
[name] => XXXX
[id] => 11111111111
)
)
[count] => 1
)
[comments] => Array
(
[count] => 0
)
)
reference
http://stackoverflow.com/questions/7319599/limit-since-and-until-parameters-in-page-feed
PHP ~ get https file content
如果要用file_get_contents
取https位置
就要開啟這個extension
extension=php_openssl.dll
reference
http://stackoverflow.com/questions/1975461/file-get-contents-with-https