yii ~ is user login

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/

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

yii ~ get url parameters

$id = Yii::app()->getRequest()->getQuery('id');


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

就可以用了


Discuz ~ execute php script in template

{eval statement}

前面一定要加eval

以下是我的用法~

{eval include 'include/main.php';}

{eval print getTvwallBanner();}


reference
http://www.osho.tw/osho/usersguide/advanced_styles.htm

Discuz ~ clear template cache

這問題發生在更新template檔的時候沒反應

上網google了才發現要清除快取= =

(這邊他翻譯成緩存......好大陸的用語XD)


所以我的修改過程就是....

修改了檔案, 要測試

就是用FTP上傳檔案, 在進後台清除快取

再在前台網頁F5看結果

一直反反覆覆



yii ~ model relation get value example

product_internet_recommend

裡面有個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'),
);
}


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 ~ model findAll limit


$news = News::model() -> findAll(array('limit'=>3));

yii ~ call model function

in controller

$newProducts = Product::model() -> getNewProduct();


in models/Product.php

public function getNewProduct(){
die('newwwwwwwwwww');
}

yii ~ change default Controller

in config/main.php


'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

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

生...氣...

遇到搞不清楚狀況的發案方

也不是第一次

可是今天真的有點火

因為.......真的超無言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

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>

開啟這網頁就會顯示出這位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