Ubuntu 2012-04 使用報告

單純使用 ubuntu 作為主力操作系統

Good:
Filezila
- 有 winscp 的 "sync browsing", cross all platform, 無敵
vim
- 已經比較少用, sublime text 太強
sublime text2
- cross all platform, Git, jquery, zen coding 等等 extension 無敵
- 打開特大檔案仍有效能問題 (20MB+)
ssh, bash
- mysql, tunnelling, cron, backup, deploy, rsync, drush.....
Unity + Expo + 4 desktops
- Win7/OSX 都有的功能, 一個桌面娛樂, 一個工作

Netural:
Balsamiq + Adobe Air(unsupportted)
- Air 不支持 linux 了, 需要使用舊版本
多屏幕輸出
- 需要抄 conf, 好像 12.04 會改進非常多, 期待中

Bad:
GIMP
- 對比 PS 差太遠, 設計上也令人覺得很難工作, 為什麼圖層都需要決定大小?
- 熱鍵不可以使用 PS 的? transform 的介面究竟是怎樣使用的?
中文輸入法
- 我現在只可以在 browser 使用中文輸入法, 完全不想處理的麻煩

當然還有很多 web 的東西是 platform independent 的
GDocs - libre office 其實也很好, 只是 GDocs 更方便打開 gmail 的附件
bitbucket - unlimited private git repo
trello - project task management, bug tracker etc..

2012 年 project III http://business-services.scmp.com/

Snapshot: 

2012 年 project III (project II 仍然為內部使用中)

第一個我製作的使用 Drupal 7.x 的網站
集團內第一個 7.x 網站

因為是第一次使用 7.x 開發
功能上沒有要超越過去的功能的意思
志在將過去在 6.x 的經驗轉移到 7.x 的平台上
還好有這個決定, 否則可能真的會趕不上

一般的設定, 例如 cck都沒有太大的問題
介面都很類似
views 的介面上雖然類似, 但要細心使用額外的功能的話還是要花點時間適應
特別是處理輸出 html 的時候更明顯
新增的 field.tpl.php 和 views 的 field template 時有沖突
處理 node.tpl.php 的時候要細心開始吸收 entity 的概念和 API
再加上為 solr 所用的客制欄位等等

接下來就是 apache solr 的客制
包含好幾個部份,
"spnsored search" 從現有的搜尋結果中找出符合特定選項的子集
"map search" 將結果用 Google map 顯示
"Facet API" 令結果再可以使用自定選項過濾
"Price search" 過濾等定價錢之結果
"More like this" 和頁面相似的其他頁面

全部模組化,
總共九個客製模組.
以上

Drupalcon Denver 2012 推介影片: VIEW MODES: THE MANY FACES OF YOUR CONTENT

Drupalcon dever 雖然已經完成
但大家仍可以到 denver 的主頁看到錄像
不用越洋過海都可以參與
VIEW MODES: THE MANY FACES OF YOUR CONTENT 是我推介的一個影片

"Teaser" 是 Drupal 內建的一個 view mode
你可以分別設定 full node 和 teaser view 的顯示欄位
而在 Drupal7, 你更可以自定一個 view mode
做到 "設定一次, 全站多用" 的功能
而且 views, search results 等等都可以使用自定的 view mode
使用 view mode 便很方便了
再加上 entity view mode, display suit 等等方便的模組
令整個流程更加容易

影片連結
http://denver2012.drupal.org/program/sessions/view-modes-many-faces-your...

list_allowed_values() taxonomy_allowed_values()

查找一個選單的欄位的可選項 Get display values of a dropdown list
Drupal 6 使用比較間接的方法才可以拿到 field 的所有可能值
而 Druapl 7 便可以使用 list_allowed_values()
完成相同的工作, example:

<?php
$all_fields
= field_info_fields();
$allowed_values_mappings= list_allowed_values($all_fields["field_my_field_name"]);
?>

而 類似的 taxonomy_allowed_values() 是一個很方便的函數
它返回

Hong Kong
-Hong Kong Island
--Central
--Causeway Bay
-Kowloon
--Sham Shu Po

包含深度的資料, 用作顯示的話相當實用, example:
<?php
$all_fields
= field_info_fields();
$mappings = taxonomy_allowed_values($all_fields["field_my_field_name"])
?>

Drupal 7 field.tpl.php

Fields 是其中一個 Drupal 7 最重要的改變
Title, body, image 都是 fields
可以想像為將 cck 的 "Manage Fields" 都變為 Drupal 核心的一部份
而且 node.tpl.php 之下還有一個 field.tpl.php
可以為某 field 獨立設定輸出 html

field.tpl.php 的原型可以在 modules/field/theme 內找到
一如 node.tpl.phph, field.tpl.php 也有多個 template suggestions
例如

<?php
/*
field-name-[field_name]
field-name-title
field-name-field-image
*/
?>

要留意, 如果你的 field 名為 field_image
templates 的名字應為 field-name-field-image
將 "underscore" 改為 "hypen"

另外, field.tpl.php 在一個 field.tpl.php 處理欄位多值
你可以看到有一個 foreach 的迴圈
外包了一個 field-items 的 class, label 等等

fields.tpl.php 令開發者多了一層的控制
而且可以統一 fields 在不同時候不同地方的顯示樣式
如果覺得預設加入了太多不需要的 html 的話
也只需將一個精簡的 field.tpl.php 移到 theme folder 便可以了

Pages

Google