關於 TeaMeow 如何星號的方法

螢幕快照 2015-08-12 上午4.00.14

說穿了,就只是一個下面這樣的按鈕而已

<button data-star-action="star"
        data-star-id="4"
        data-star-target="Meow"
        class="js-star-btn"></button>

這裡是他們的說明:

data-star-action 用來存放接下來應該「Star(星號)」還是「Unstar(取消星號)」的動作。
data-star-id        則是目標對象的編號。
data-star-target 則是目標的種類。


其實 Twitter 也是採用這種方法,但是他們不會將編號寫在按鈕上,

螢幕快照 2015-08-12 上午3.57.14

而是在包含這個按鈕的「容器」上,如此一來就不需要一直寫 data 的標籤到每一個按鈕

只需要取得這按鈕容器的標籤就可以了,那為什麼我不這樣做呢,

因為我想說統一化就好了,如果我選擇寫在容器上,每個地方的 HTML 不同,

取得容器的方式也有所不同,那不如我先暫時寫在按鈕上吧 ..

自己的校徽自己做:伊繁星

未命名5

這個校徽還在製作中,所以別太在意那些對齊跟字體的問題wwwww

TeaMeow 有擬人化的想法,所以校徽也只能自己做一個啦 ..

不過這個好像有點「太寬」了,還在編輯中 .. 嗯 .. 是想說可以的話順便把幾個台灣特色加進去..

話說伊繁星要算技術學院還是高校呢 ..,如果是技術學院的話看來要加幾個齒輪進去了(科技感?)

TeaMeow 怎麼傳遞新/舊貼文的?

螢幕快照 2015-08-05 下午10.17.20

其實很簡單就是 JSON 格式啦,很多網站都是,不過差別在於你接收到的資料是不一樣的

有的網站他們會回傳很多個 Object,然後到你電腦上在自己建立成 HTML

但是 TeaMeow 的方式跟 Twitter 很像,是在伺服器端建立好 HTML,才傳給你,

不過沒有 Twitter 這麼先進就是了(因為 Twitter 不只回傳 HTML,還有每篇文章的 Object):

螢幕快照 2015-08-05 下午10.21.58


如果你有興趣的話,這裡是 TeaMeow 從產生到回傳的流程:

  1. 透過 Tocas 去告訴伺服器要資料。
  2. 伺服器找資料然後丟給 Builder(建造者)。
  3. Builder 丟給 Teapot(茶葉系統)來做整理的動作。
  4. Teapot 丟給 Avane(模板系統)建立 HTML 內容。
  5. 最後將 Avane 回傳的內容跟一些其他的參數傳回客戶端。
  6. 客戶端(就是使用者)接收到資料後,透過 Tocas 來將資料顯示到螢幕上。

好啦,既然 TeaMeow 回傳的是 HTML,

那麼手機版跟 API 的部分該怎麼辦呢,

就這樣,熬夜的日子又要持續下去了。

如何解決時區問題?

螢幕快照 2015-08-02 下午5.10.19

原本是想說在資料庫裡存上「時間微調」,例如「GMT +8」就會存上「480(正整數)」(將小時換成分鐘)

接著在需要呼叫時間的時候用下列方式去回傳:

$TimeOffset = 480;

date($TimeFormat, $Time + ($TimeOffset * 60) * 60)

原理很簡單,就是將 Unix 時間加上「正」或是「負」來微調時間,模擬 +00:00 或是 -00:00 之類的時區

但是後來發現網路上有人說這樣做並不可行,例如英國在三月到十月之間,時區為 BST (GMT + 1)

這個時候我們所做的「時間微調」就廢掉了,這是想玩死誰。


最後

這個時候還是只能投靠原 PHP 的函式了,那就是 DateTime 函式

然後就必需存像這樣的字串在資料庫裡:"Asia/Taipei", “Pacific/Nauru",

這裡是他的用法

$DateTime = new DateTime($TimeStamp, $TimeZone);
echo $DateTime->format('Y-m-d H:i:s');
$Datetime->setTimezone(new DateTimeZone('Asia/Taipei'));
echo $DateTime->format('Y-m-d H:i:s');

星號

螢幕快照 2015-07-29 下午4.02.15

生不出文章只好閒聊了,想說看能不能達成每日一篇廢文的成就,

很多人喜歡抄襲 Facebook 的「讚」,也不曉得到底有什麼問題,

也許是想抄襲 Facebook 的成功,但是沒有人真正暸解到就算不言語霸凌,「讚」也是可以霸凌人的,

這就是為什麼 TeaMeow 沒有讚的功能,但冒出了一個大家常用的「星號」,

眾人:幹這他媽跟讚有什麼不一樣!!

其實就要說到接下來的功能了:星號是用來標記你想關注的事物閱讀更多»

所以現在取得 130 文章要多久?0.6秒。

螢幕快照 2015-07-28 下午7.12.03

今天找出一個小小問題了,在於 new Class(); 的地方,

TeaMeow 為了取得使用者頭像,會去 new 一個管理檔案的 Class(先稱他 FM (FileManager) 好了),

然後 FM 這個 Class 在剛開始建造 (__consturct) 的時候會有很多複雜的手續,

所以每當我們取得一次頭像,就要建造一次 FM 這個 Class,沒錯,所以時間就這樣疊加起來了,

我目前的做法像下面這樣,只要 new 過 Class 一次之後,接下來就不需要再 new 它了:

$this->FM = ($this->FM) ?: new FM();