Month: September 2013

Codeigniter: Check if libraries/helper/core files is loaded

Posted by – September 13, 2013

使用 CodeIgniter 框架開發時,會透過 $this->load->library() 之類的方法來載入特定的檔案。在 CI 的 routing 規則中,同一個檔案只會被載入一次,因此多寫幾次 $this->load->library() 是不會發生什麼慘劇的。

不過有時候還是想確認到底某 class 有沒有載入過,而不想到處丟 $this->load->xxx() 的話,可以用以下方法來確認。

if (class_exists('Library'))
{
    $this->library->myMethod();
}

要注意的是 CI 有別名的規則,比如說有個 model 叫 'file_model'。使用別名載入時,會寫成以下

$this->load->model('file_model', 'file');
$this->file->do_something();

這種情況下,若要檢查是否已載入,要用原名。如下:

if (class_exists('File_model'))
{
    // do something
}

Javascript: Repeat Character N Times

Posted by – September 13, 2013

開發過中常碰到一種情況是希望某字串能重複出現數次。

以前端開發來說,希望用 JavaScript 來重複產生 HTML elements 的時候,覺得用 for 迴圈寫這個也太囉嗦。

有個比較簡單的 "語法" 來處理這個情況。

Array(11).join("a");

這樣就可以得到 11 - 1 個 a,aaaaaaaaaa。

產生重複 elements 就如法炮製,

$('ul').html(Array(5).join('<li class="whatever">list</li>'));

Bookmark: Jcrop

Posted by – September 12, 2013

最近一個專案需求,要讓使用者可以在網站上選取照片、裁切,然後做為相簿封面。最重要的是前台讓使用者操作的畫面必須簡單好用,一樣是來自同事推薦的 jQuery 套件 Jcrop。可以簡單地呼叫出裁切畫面,設定與事件都很容易使用。

完成裁切後,呼叫 Jcrop 回傳座標,Ajax 傳回主機,接著我用 PHP image-moo 套件完成實際的影像處理,再把圖片回傳前端,使用者就能看到一張即時的封面圖片了,相當簡便。

Jcrop landing page

Bookmark: Font Awesome

Posted by – September 12, 2013

Font Awesome,同事推薦的字型套件,可以搭配 Bootstrap 使用,作為無級縮放的圖示。

Font Awesome, landing page

Bookmark: FitText.js

Posted by – September 4, 2013

FitText.js 可以根據 parent element 自動調整文字大小的 jQuery 套件。在開發網站時,常碰到標題文字過長的問題,但是標題不像內文可以被裁剪,比較合適的 solution 是折行或縮小字體,但是前者常會造成破版,而後者沒辦法用 CSS 直接處理。

懶得自己寫文字調整,就靠套件解決吧。

FitText.js