橫向發展的Open Source學習路徑
話說回來,我到底是在忙什麼?又是被什麼打斷呢?看了一堆簡體中文,感覺頭腦都頓頓的(無不敬之意)。還是來回想一下吧!
開頭是javascript
一開始我是在我的RSS閱讀器看到javascript的效果介紹文章,然後我就連到他的網站,翻看javascript相關文章。因為除了php的Open Source CMS之外,javascript framework似乎也正進行著一疊疊的亂戰呢!
而且,我最喜歡的「核心+外掛」這模式看起來也在javascript framework的世界上演,所以我一直很想努力鑽研這部分。所以就先去翻文章了。
註:核心+外掛的例子:Firefox、Wordpress、Nuendo、Drupal、Joomla都是這樣獲取我芳心,甚至Photoshop的Blush也是
所以開頭是javascript。
JQuery
然後我發現framework裡面,好像JQuery很有名,但是Joomla是用一個叫做mootools的,而Joomla又有許多漂亮效果,所以我就一直找呀找,發現JQuery的外掛不能用在mootools底下(廢話),才發現這兩個東西原來不能並存!真有趣(哪裡有趣)!
所以目前我的看法是mootools的漸變動態效果比較漂亮,JQuery可能比較輕量吧!總之JQuery應該是比較有名。
然後Joomla內建的是mootools,Drupal內建的是JQuery,真的各有各的風格。
NiceJForms
然後我發現一個需要JQuery的表單美化工具,我對JQuery還非常不懂,所以不知這算不算是JQuery的外掛。總之,這個表單美化工具叫做NiceJForms,他的效果可以到達這樣的地步。

會不會太美了一點。(會有這種讚嘆,還真宅!)
所以從javascript的探索,我找到了NiceJForms。
Drupal Form API
然後我想起來前兩個星期開始學Drupal的Form API,我怎麼用CSS美化,表單都還是普普通通。雖然簡單方便就好,但我突然一股腦很想把javascript應用的技能學起來,所以不管目前Drupal的白老鼠網站的bug多到爆炸,我還是逕自測試起NiceJForm套到Drupal表單的方式。
所以從NiceJForms,我又跑到了Drupal Form API身上。
應該很簡單,按表操課就對了,NiceJForms的說明很簡單易懂,只要插入這些那些這些就好。所以,我打開特別用Drupal為某表單定製的template之後,打入
drupal_add_js(path_to_subtheme() .'/libraries/nicejforms/js/nicejforms.js'); drupal_add_css(path_to_subtheme() .'/libraries/nicejforms/css/niceforms-green.css');
這是Drupal內建的API,非常非常方便好用。想在這邊插入css,想在那邊插入javascript,都只需要一行字。
不過接下來,第三步驟是要在Form標籤加上class。聽起來很簡單,但是,Drupal的模板可怕的就是都要用Drupal的寫法,不用他的寫法,就等著死吧!所以直接硬是加個form標籤再加上class,是下下之策,既然都到別人家了,就乖乖用他的方法吧!
然後我寫了這兩種方式
$form['#attributes']['class'] = 'niceform'; $form['#attributes'] = array('class' => 'niceform');
都完全沒屁用,連print_r輸出的內容,都看不到#attributes有多個class,然後我憤怒之下,跑到template.php,找到定義這個表單模板的function
<?php function phptemplate_buytogether_node_form($form) { global $user; $vars = array('user' => $user, 'form' => $form); return _phptemplate_callback('buytogether_form', $vars); } ?>
我先試著在return前面加上$form['#attributes']['class'] = 'niceform';,結果行不通,然後我又試著在$vars前面加看看,結果,print_r的#attributes就出現class這個東西了。
問題是,render之後的form仍舊沒有class,這到底是怎麼回事?
所以我就跑來部落格呼喊了。最後我鑽牛角尖的地方變成是Drupal的form到底怎麼插入class,回想到我的初衷,只不過是想用用看NiceJForms嘛!
然後有個心得,就是本文標題,我發現我的學習路徑,都是橫向的,我沒辦法畫出來,但我真的覺得我像毛毛蟲一樣,沒有先把一樣東西學會,就跑去學下一樣東西,一開始我都覺得這樣不太好,但我後來想想,既然只有這種方式能夠讓我有一頭熱的熱情繼續鑽研下去,那就這樣吧!
最後,我想問的是,Open Source為何大家都簡稱OSS?為何有兩個S呢?
- 人氣(3843)
Recent Comments
熱門內容
- Drupal | 用hook_menu_alter來修改tab項目 (192,680)
- 第一次玩弄Drupal就不上手 (183,792)
- 六個網站測速工具 (103,104)
- Drupal 的 Eye Candy? (71,117)
- Introduction to Drupal 簡報分享 (35,915)













回應
一般稱開放原始碼指的大多是軟體,所以OSS其實是指Open Source Software
至於為什麼簡稱Open Source為OSS,其一應該是上述的原因;另一則是簡稱OS的話,大概會跟另一個OS(Operation System)弄混吧
那小妹你最后找到解决办法吗?
我從一開始就放棄程式,看著 Programmer 陷在電腦面前,那個樣子就讓我不敢恭維了。
加油!
臺北尚是臺最大的在線奢侈品銷售商之一,最近新品上市,優惠促銷。各種名牌:lv(lv皮夾,lv包,lv皮包,lv皮包,lv手袋,lv銀包,lv箱包)。以最具吸引力的價格提供最頂級的LV系列高模擬品。LV名牌包包大珍妮包,LV水桶包等所有LV名牌包包定價最低,品質最高。我們的口號是:做lv代購網里最低的價格,最好的服務。人性化的售後服務更是顧客訂購我們商品的優秀保障。 LV名牌包包目錄,LV皮夾目錄,LV名牌包包照片,LV圖片更新速度同步LV官方網站新款包,商品種類比LV包包官方網站和台灣LV路易威登公司網站更多更齊全。歡迎對比lv台灣(路易威登)公司各LV旗鑑店LV目錄,LV名牌包包目錄LV皮包目錄,包括LV台中旗鑑店,台北LV旗鑑店以及台灣LV路易威登公司網站的LV名牌包包所有類型照片。还有gucci(gucci皮夾,gucci包,gucci皮包,gucci手提包,gucci手袋,gucci銀包,gucci箱包),chanel,(chanel皮夾,chanel包,chanel皮包,chanel手提包,chanel手袋,chanel銀包,chanel箱包),欢迎選購。http://www.lv000tw.com
發表新回應