自行設定 Balsamiq Mockups 的字體(支援中文)

Written by Simon Asika on

p2013-10-12-3.jpg

Balsamiq Mockups 是一套非常好用的 UI Wireframe 繪製工具,不過過去許多時間來,字體一直是大家煩惱的問題之一。

Balsamiq 預設使用了一種類似 Comic Sans 的字體,叫做 Balsamiq Sans,搭配 UI 元件的手繪畫風,別有一番味道。但是這個字體其實不支援中文,在過去比較早期的版本中,必須要自行設定「Use System Fonts」才能夠讓中文顯現。

p2013-10-12-4.jpg


設定環境變數讓 Windows cmd 命令列可以執行 php 指令

Written by Simon Asika on

很多時候,當我們安裝完一些 Apache + PHP + MySQL 的整合包,他並不會幫我們設定好環境變數,一旦我們想要執行 php 指令來呼叫檔案執行,就會出現 php 不是內部或外部命令、可執行的程式或批次檔。 之類的訊息。

這是因為在 Windows 上,需要靠 PATH 環境變數來指定我們所輸入的命令列指令,參考那些資料夾來尋找程式執行。我們舉 XAMPP 為例,它的 php.exe 放在 C:\xampp\php\ 下面,所以我必須在環境變數中,加入這個位置,才能讓 CMD 執行 php 指令。


用 Native PHP 編寫 Command Line (CLI) 程式

Written by Simon Asika on

phpcli.gif

許多 php 套件如 Symfony Console 或 Joomla CLI Application 接已經幫我們封裝好方便的 CLI 介面可以直接使用,這裡來聊聊如果不使用 Framework ,該如何自行操作 PHP IO Stream 來輸入與輸出內容到命令列上面。

安裝 PHP CLI 套件

某些 Linux 的 LAMP 包預設沒有安裝 CLI 模組,可以自行安裝,以 Ubuntu 為例:

apt-get install php5-cli

Windows 可參考: 設定環境變數讓 Windows 命令列可以執行 php 指令


用 Markdown 寫作的另一個選擇: ACE X Markdown Editor 與 RemoteImage

Written by Simon Asika on

akmarkdown-remoteimage.png

前陣子 XDite 推出了 Logdown 蠻紅的,看來想用 Markdown 認真寫作的人也是不少。

其實在 Logdown 推出之前幾個月,為了要寫 Joomla! 開發教學,我也是想喝牛奶開了一間牧場的自己寫了一個整合 ACEMarkItUp 的 Joomla! 編輯器 ACE X Markdown Editor,再加上支援 FTP 與本地端拖拉上傳圖片的媒體管理器 RemoteImage。(結果我到現在都還沒動手寫教學)

這兩套都在Joomla!線上套件目錄免費釋出一陣子了,整體風評不錯,本來想說國內沒什麼人在用Joomla寫技術部落格,所以想說在國外推廣就好了。

後來想想,稍微寫點介紹文章也好,因為平時實在太忙了,最近整個轉向去協助 Joomla Framework 的開發,很久沒理這些 joomla 套件了,多讓些人知道這些工具,以後想丟到 Github 射後不理看看會不會有人來幫忙發展。


用 Nested Set Model 建立巢狀資料表

Written by Simon Asika on

400px-NestedSetModel.svg.png

是說,因為Joomla!本身就有內建的關係,已經用了很久的 Nested set model 了,最近才發現其實中文環境下對這類用法的討論不是很多。簡體的文章倒是有個兩三篇,不如來寫個繁體版的吧。

Nested set model 是一個用來方便處理樹狀節點資料結構的資料模型,可以讓我們在不需要遍歷整顆樹的情況下,用極少的主機資源獲取節點、計算節點數量或是映射關連資料表。


PHP 開發者工具

Written by Simon Asika on


讓 Ajax Chosen 適應中文搜尋與選字

Written by Simon Asika on

130731-0001.jpg

既上次的jQuery Chosen 中文搜尋 狀況解決後,又遇到 Ajax Chosen 的問題。 Ajax Chosen 是英語系國家開發的,在輸入文字時沒有選字問題,但在中文就麻煩了,首先 AjaxChosen 是用最後輸入的延遲時間來自動搜尋,預設 500 毫秒,所以中文輸入法常常還來不及選字就送出去了,而一旦送出去後,選字功能會被終止掉造成無法繼續選字。


Joomla! 的最高權限使用者 Root User

Written by Simon Asika on

在 joomla 中,除了Super User 群組之外,另外還有一種方式可以設定最高權限使用者,該使用者所有的權限驗證都能夠通過。而 Root User 只能夠設定在 configuration.php 檔案中。

我們可以看看 JUser 中的驗證程式碼:


PHP 的 static 與 self 兩個關鍵字的差異

Written by Simon Asika on

在 PHP 的語法中,我們都知道 self 代表的是當下靜態 class 的自己,所以我們可以用 $instance = new self($a, $b); 來取得由自己生成的物件。

但另外有一個 static 關鍵字也可以用,例如 $instance = new static($a, $b); ,兩者差異在於,當B類別繼承自A類別時,若使用的是 A 類別的 Method,此時self會代表A類別,static代表B類別。若使用的是 B 類別的 Method,則static代表A類別,self代表B類別。

換句話講 self 代表 get_class()static 代表 get_called_class()


PHP Datetime 時間的增減方式

Written by Simon Asika on

PHP5 以後的 DateTime 是一個強大的時間處理物件,許多框架的 Date 物件就是延伸自 DateTime,因此通常不會特別實作太多時間處理函式在裡面,而是讓你專注的用原生的 DateTime 來處理時間,現在我來整理一下常用的一些時間日期增減方式。


Control Tools

WS-logo