inmedia

[inmediahk] 2010-12-06 頁面瀏覽資料統計(二)

續上一篇

啊, 說好的 "GA 最熱門 block" 要跳票了, 這星期... 太忙了, Freelance 纏身

先將部份的代碼分享上來, 讓大家研究一下

首先建立一個 url, 這個url 會跟據參數返回 GA 的結果

[inmediahk] 2010-11-29 頁面瀏覽資料統計

在使用 boost 模組以增加伺服器的負載和提高反應時間的同時,
因為boost 會完全繞過資料庫的讀取, 內建的統計模組便會失去功能
只能靠 Google analytics 或者 web server 端的統計數字
問題都不是太嚴重
但兩種統計都不能給眾多作者和編輯存取成為唯一的缺點

還好, Google analytics 有 export API 理論上是可以提供簡單的資料的
但因為一直沒有時間, 而且之前也沒有使用這 API 的經驗
便一直放下至近日..

[inmediahk] inmediahk.net/m 手機版


自從香港獨立媒體搬了 server 之後,
其中一個需要增加的功能就是手機版

之前一直沒有下手做的原因是因為要另寫一個theme
手機版用的 theme, 雖然很可能會用上 jqtouch 一類現成的庫
但需要再多一個模組分析 user-agent
很可能需要 themekey
便覺得牽一髮而動全身

[inmediahk] 2010-09 racksapcecloud

-
Free tags: 

最近又為 inmediahk 從 media temple 轉到 rackspace cloud
主要是因為 MT 不便宜, 伺服器的效能因為流量加大而開始下降
遇到伺服器不穩定又需要工作人員重新啟動 (不論半夜, 過年)
所以轉用 rackspace cloud

RS 以 computing cycle, cloud service 的型式提供伺服器
我們幾乎只有 FTP 的權限, 但 RS 就會令網站的 apache, MYSQL 不會出問題
硬碟也類似, 情況和 Google app engine 的 python, Java, Heroku 等很類似
但價錢....都不是一般人可以負擔得起

當中的難度在於,
RS 提供的 FTP 慢, 需要在 MT 以 ssh 傳到 RS 的 ftp
MYSQL 也類似, 沒有 SSH 也難做 backup 等等
cmd 的指令也要先在轉伺服之前先熟練的準備好
還好最後都在兩個小時完成
DNS 大約在一天之內完成
而伺服器的速度又有所升, 是很好的學習經驗

[inmediahk] use of views argument: 作者最新文章

-
Free tags: 

這也是一個少見的要求,
但也相當合理
便是要在node 頁面(node/[nid])的右面欄加一個block, 用作顯示這個node 作者的其他文章
一個多用戶參與寫作的網站便很需要用這些block 來列表特定用戶的文章

這個當然不可能給每一個用戶都做一個views
用戶數是有三萬以上的...
正解也簡單, 始終是views

我想views 的 argument 一開始的理念就是由這類的網站需求帶動的
由url 路徑作參考, 修改views 的過濾器
但這次的url 是node/[nid], 並沒有uid 的資料, 所以還是要花點功夫在php 上
在argument type, 以 user UID is author
然後我們就可以想辦法將uid 傳給views
我們只有NID 可以使用,
便唯有將整個node 用node_load()
再從中抽出UID

argument handling code

[inmediahk]全站RSS, 包括 views, nodes.....

-
Free tags: 

全站所有頁面的RSS 其實並不是什麼特別的功能,
views 使用 argument RSS, display all values 已經可以提供該views 的RSS 了
只細心設定, 全站RSS 只是小事一樁
但這對一個新聞性, 互動性高的網站應該很重要吧

但我在檢查RSS 的時候,
發覺node 頁面是不提供RSS 的
即是說, 大家不可以使用RSS 的方式訂閱node 的留言, 回應
所以便使用了comment RSS 模組了
順利提供一個node 的comment 的RSS

[inmediahk] block 標題使用html, 特別的 'more' 連結

-
Free tags: 

大家可能經常遇到一個問題, 就是想使用一個帶有html 的block title
我也看見過其他人在論壇上討論過, 得出使用一個module 的解答

但便用了另一個方法, 給大家參考
因為這次要將首頁右邊的一些block 的title 連到一些頁面
而它們都是使用views 的
很自然便使用views 的"標題" 功能, html 輸出
但我發覺一個小妙用
就是將標題用 包起, 放在在views 的 block header 中, 選用full html
這樣就連CSS 都不用改, 原生已經變成block title 使用的樣式了

還有一點要留意, 用這個方法的話,
empty text 是不會輸出title 的
所以, empty text 也要使用 加標題

這個方法的還有一個延伸應用
就是block 底的 "more" 連結
同樣, views 的footer 使用 便可以使用任何自定義的連結
而獨立媒體的行動日誌便是使用了這個方法
令一個views 的block 連到另一個 views 的頁面的

[inmediahk] content type 自動 taxonomy link

要實現的功能是 "自動放一個內容類型連結"
例如一個"專欄文章"的node, 便放一個連結到頁尾, 可以連結到"專欄文章列表"
"站外連結"node 便連到"站外連結列表"
難度在於"自動"的一部份
因為taxonomy 是用戶選的
連內建的forum 也需要用戶選擇正確的分類
所以連結不難, 但"自動化"便難

原本打算使用taxonomy, 再自己hack 一下form api, 讓它自動成為某一taxonomy
但後來用了一個更好, 更方便, 但沒有那麼直觀的方法
便是用views 的argument, 配合themes

首先在node.tpl.php內, 找出node 的type
但 $node->type 只有一個machine readable 的類型名字
連node_load() 也只有 一個英文的類型名字
番了api, node_get_types('name',$node) 才是正確得出內容類型名字的函數

香港獨立媒體專案

-
Free tags: 

香港獨立媒體 http://www.inmediahk.net

這次的job 是幫香港獨立媒體的網頁由舊有的openACS 轉到 Drupal
而香港獨立媒體是因為參照台灣的苦勞網而決定使用Drupal
經由苦勞的jimmy 大 而找到我
所以要先感謝jimmy 大的推薦, 和苦勞網借出全站source code 參考
特此鳴謝

content access
advertisement
cck
javascript tools
js calendar
BUEditor
comment rss
date api
Google analytics
Google sitemap
logintoboggan
mailout
related links
Captcha
Tagadelic
JQuery interface library
Message effects
calendar
views

Google