發表文章

目前顯示的是 八月, 2013的文章

我的 Vim 指令筆記

Gist url : 我的 Vim 指令筆記 (markdown文檔)

vim 的三種模式 模式輸入模式:輸入內文。指揮模式:也叫指令模式,主要是進入到可以對文件做修改,複製,剪下貼上,游標移動等動作。執行模式:文件存檔,離開等等行為。 常用模式的切換輸入模式 -> 指揮模式 : 鍵盤 Esc指揮模式 -> 輸入模式 : 鍵盤 i, a, o指揮模式 -> 執行模式 : 鍵盤 : 如何進入 vim 編輯器指令 vim 本身就可以開啓 vim 編輯器,跳出請先到執行模式再按 q(:q) 然後 Enter 鍵。指令 vim 檔名 可開啓某檔案。 如何離開 vim:q : 直接離開(在文件沒有被編輯過的情況下可以用)。:q! : 強制離開(不儲存你的修改強制離開)。:wq : 儲存並離開 (wq順序不能反)。:x : 儲存並離開。 進入輸入模式的幾個方式Append: a: 游標前插入文字。A: 游標移到此行最後一個字元。Insert: i: 游標後插入文字。 I: 游標移到此行第一個字元。Open a new line: o: 游標所在的那一行,向下插入新的一行。O: 游標所在的那一行,向上插入新的一行。 指揮模式下的常用指令(注意大小寫有別)針對現在畫面跳到上中下區域: H : 跳到畫面上面。M : 跳到畫面中間。L : 跳到畫面下方。上下左右移動: h : 往左移動。j : 往下移動。k : 往上移動。l : 往右移動。數字 + [h, j, k ,l] : 往左,下,右,上移動幾個字元。gg : 跳到第一行。G : 跳到最後一行。數字 + gg : 跳到該數字那一行。數字 + G : 跳到該數字那一行。b : 移動到上一個字的第一個字元。w : 移動到下一個字的第一個字元。W : 移動到下一個字的第一個字元(以空白鍵或是tab鍵當區隔的跳法)。ctrl + f : 下一頁(forward)。ctrl + b : 上一頁(back)。ctrl + g : 顯示你目前位於整份文件的哪一行。^ : 移到此行的第一個字元。$ : 移到此行的最後一個字元。 指令模式下的操作:q : 直接離開(在文件沒有被編輯過的情況下可以用)。:q! : 強制離開(不儲存你的修改強制離開)。:wq : 儲存並離開 (wq順序不能反)。:x : 儲存並離開。:s…

Joomla! 3.1.5 解決網址加上?tp=1不work問題

圖片
我先講一下在 joomla 的網站,網址加上 ?tp=1 是要做什麼,
類似這樣-->範例網址寫法:http://joomla_blog.localhost/?tp=1
?tp=1 主要是可以在畫面上看出各個模組的位置是在哪裡,像這樣:


這個有趣的做法可以方便你在後台設定模組位置的時候知道其position在哪。
但如果你加了 ?tp=1 不成功的話,可能是設定沒有開,檢查一下:

系統 --> 全站設定 --> 佈景主題管理 --> 將『預覽模組位置』改為『啓用的』。(中)
Sysyem --> Global Configuration --> Template Manager --> set "Preview Module Positions" to 'Enabled'(英)


Joomla! 3.X.X 一些基本的權限管理

這是今天在公司做的微分享,
晚一點我會把一些文字敘述補在下面。

只是一些簡單的基本介紹而已,我還沒有研究到很深啦。



補充第15頁的部分,
如何客制Admin的Menu?


關於這個部分,建議大家參考這邊文章,Customizing the Admin Menu
雖然文章是 2. 多的版本,不過在 3. 多也是通用,
需要注意的是,default_enable.php 的路徑在 3. 多版本已經換了,
以我的joomla是3.1.5版本來說路徑是在:
/YOUR_SITE_DIR/administrator/modules/mod_menu/tmpl/default_enabled.php

我的範例主要是在實作,有些 menu 只給特定的群組看。

另外如何知道使用者群組的id是多少?
使用者群組(user group)的記錄是寫在 前綴字_usergroups 這張資料表。

我撈sql的是這樣撈的:

mysql> use 你的site的資料庫名稱;
mysql> show tables;
mysql> select * from 你的table前綴字_usergroups;


撈出來的結果如下:

mysql> select * from tbrxm_usergroups; +----+-----------+-----+-----+------------------------------+ | id | parent_id | lft | rgt | title | +----+-----------+-----+-----+------------------------------+ | 1 | 0 | 1 | 24 | Public | | 2 | 1 | 8 | 19 | Registered | | 3 | 2 | 9 | 16 | Author | | 4 | 3 | 10 | 13 | Editor | | 5 | …

Joomla! 3.X.X 實作多國語系

第一次碰多國語系的設定...
心得是: 有點複雜,
剛剛做成了文件,雖然還是很複雜,不過我已經盡量簡化了。
希望有幫助到你。

文件連結:
[建議看文件連結比較不辛苦]
Joomla! 3.X.X 實作多國語系 (doc)Joomla! 3.x.x 實作多國語系 (pdf) 補充:
前幾天有朋友跟我說有一套 joomlafish也可以做到多國語系的功能,不過我個人是第一次摸Joomla ,所以沒有很清楚這些過去的種種方式,但我剛剛看了一下joomlafish 好像還沒有支援到 joomla!3 ,如果各位朋友有什麼其他的方式也歡迎推薦。


Joomla! 3.X.X 之怎麼辦語系裝不起來...

圖片
假如你在 joomla 3 的版本要安裝語系有遇到這樣的 Warning:
     JFolder::create: Could not create directory Path: ...        Aborting language installation: Failed to create directory ...        Package Install: There was an error installing an extension: ....


不敢肯定我的解法是唯一的解法,只是給大家一個參考,如果你跟我一樣在安裝其他語言時有出現 warning ,請先檢查 joomla 目錄底下所有資料夾的權限是可以寫入的,建議你先到後台的:
System -> System Information

[yii] 判斷表單送出是否有錯誤

判斷表單送出是否有 Error 才顯示某個 widget 或是才顯示什麼,
參考官方文件之 hasErrors()
http://www.yiiframework.com/doc/api/1.1/CModel#hasErrors-detail
if($model->hasErrors()) { //echo '你沒有填哦'; //echo '你沒有填哦'; }


*雖然這篇文章很簡短,但主要是記錄一些身在使用 yii 開發 web 的前端人員需要多留意的事。

[yii] 如何在 widget 使用 renderPartial

文章的標題是『如何在widget使用renderPartial』。
其實事情是這樣的,我要把一些 html code 包裝到 widget,這樣子下 widget 只要一兩行,頂多帶幾個參數就可以解決寫好幾行 code,並且把一些會重複用到的 html 模組做成 widget 也是前端的樂趣之一。

本來在view file這樣寫:
$this->renderPartial('_search',array( 'model'=>$model, )); 這樣寫本來就沒有什麼問題。


不過如果要一個 html 結構寫成 widget 的話,
在 widget 就不能這樣用了,
因為直接使用的話會出現:

__你的__Widget and its behaviors do not have a method or closure named "renderPartial".

因此在widget的時候請使用:

$this->controller->renderPartial('_search',array( 'model'=>$model, ));

參考:
http://www.yiiframework.com/forum/index.php/topic/27311-how-to-renderpartial-in-widget/


[yii] 如何客製或 extend 自己的 CButtonColumn 樣式

圖片
[yii] 如何客製自己的 CButtonColumn 樣式 [yii] How to customize CButtonColumn

這個文章的內容主要是要講怎麼換掉用 CGridView 產生的 CbuttonColumn 樣式,下圖就是用 CbuttonColumn 預設產生出來的三個 icon: 在 yii 另外使用 Gii 產生出來的 CRUD 的 view files,基本上會包含 admin.php, index.php, create.php, update.php, view.php 還有一些用下底線開頭的 _form.php, _search.php, _view.php 檔案,簡單瞭解了一下其產生列表的方式,會在需要產生列表的檔案去使用這個 widget:
$this->widget('zii.widgets.CGridView', array(....) );
其中,在後面所帶的array裡,會看到 : array( 'class'=>'CButtonColumn', ),
這些預設產生的 Button 就是在這個 Array 產生的,接下來可以看一下官網提供的一些設定api,基本上,這些 Button 的 class, 內容文字, 連結, 底圖都能換。




設定很多,我以我會用到的一些需求為例:
template 屬性:
可以定義icon的出現順序,但若比方說你只寫 'template'=>{view} 那麼只會出現檢視的那顆icon。
array( 'class'=>'CButtonColumn', 'template'=>'{view}{delete}{update}', ),


deleteButtonOptions 屬性 : 設定 delete icon 的基本屬性 , 以我的例子為例,我想使用 glyphicons 的 icon , 就必須把 delete button class 改成我要的 glyphicon glyphicon-trash。





ar…

認識 Pure CSS 之筆記二:了解Buttons, Tables, Menus

此篇是延續上一篇的內容:認識 Pure CSS 之筆記一:了解Base, Grids, Forms


Buttons:
button一直是我覺得網站上應該要蠻單純的元件,統一風格,大小不要忽大忽小是我最喜歡的狀態。在這裡介紹一下 Pure 的 Button ,幾個大方向要記而已,還蠻單純的。

如果要產生一般的button,使用 class name :pure-button (不論用在<a>還是<button>)。如果要 disable 效果,請累加 class name : pure-button-disabled ,例:pure-button pure-button-disabled。如果要 active 效果,請累加 class name : pure-button-active ,例:pure-button pure-button-active。primary效果,例:pure-button pure-button-primary。客制化你自己的 button , 希望你的客制化 button 的 css 命名可以 follow pure 的命名方式,如 pure-button-red, pure-button-success, pure-button-info,...。pure button 的 size有分幾種等級:xsmall : pure-button  pure-button-xsmallsmall :  pure-button pure-button-smalldefault : pure-button large :  pure-button  pure-button-largexlarge :  pure-button pure-button-xlargebutton 裡要有 icon嗎? 沒問題,pure 是搭配 Font Awesome ,詳情的載入方式請看pure button 介紹,使用的時候是類似在 pure-button 裡面包 <i class="icon-XXX"></i>。
Tables:

猜猜看pure 的 table 要加什麼樣的 class name 在 table 的標籤上 ? 前面 button 用的是 pure-button,table 則是使用 pu…

認識 Pure CSS 之筆記一:了解Base, Grids, Forms

圖片
最近本來看一點 Bootstrap 3 RC1,因為 RC1 是我一直有點興趣的 Flat Design 的風格,不過目前用起來沒有想像中 Flat (目前我正在期待正式版),突然想到還有另一套可以用,那就是 Pure 了(是說他也出來一陣子了XD)!
簡單逛了一下 Pure 的網站,只能說我是越看越喜歡,他主打的是輕量而且符合 RWD,又有 Flat Design, 輕又簡單明瞭,大概是我喜歡它的主因吧!另一方面是被網站上的範例給迷住 ,感覺得會讓人很有自信的去使用。


Pure 把一般網站上會用得到元素分成幾大類,也就是在官網上面看到的那幾類,就連從github下載下來也以這幾類作為資料夾的分類:

Base主要是使用 normalize.css,你可以把 normalize.css 想成是跟 reset.css '類似' 功能的css檔(說是類似但還是有些不一樣), normalize.css 是一套支援 HTML5 標準的 css reset,然後目前 normalize.css 已經出到 v.2.x 的版本了,不過在 Pure 的文件明確地寫到,目前 Pure 使用 v.1.x 版本,因為 v.1.x 較能支援比較老舊的 IE 版本 ( 原文參考 : We use Normalize v1.x because it supports older versions of Internet Explorer. )。另一件事情是,所有的 Pure 的模組都是建立在 normalize.css 之下。H1~H6 的字型大小的單位是使用 em。關於 ol, ol, dl, Pure都有預設的樣式,如果是想要用這些做 Menus 的東西,建議你另外看 Menus 的系列。Grids( and Responsive Grids)grid ,如果有用過 grid 的人,看文件應該不會太難理解,不過我從以前就沒有好好理解過 grid,可能是我不喜歡這麼多 class name 加在 html 標籤裡。Pure 的 grid , 只用一個 pure-g 就是一個 row 或是一個 grid, 使用 pure-u-*-* 代表 pure-g 裡面的 columns 或是 units 。 每個 pure-g 可以包含好幾個 pure-u-*-*。pure-u-*-*…

您也遇過Call to undefined function tidy_parse_string()嗎?

圖片
不知道大家有沒有遇過個問題,明明tidy之前裝起來好好的,怎麼突然換台電腦git pull下來變成這副德性,這裡提供我的解法:(不是唯一解法)


1. 確認php.ini有打開extension=php_tidy.dll。



2. 要重新啓動apache。



3. 啓動之後,如果還有這個問題,務必打開phpinfo.php頁面,或是自己開一個頁面寫個:

<?php
    phpinfo();
?>

就可以測試了,搜尋tidy有沒有在phpinfo()裡面,如果有的話,應該就沒什麼問題。


注意,如果tidy沒有出現在phpinfo(),表示你的PHP沒有裝tidy。快去找裝法吧!




參考連結:

http://board.phpbuilder.com/showthread.php?10324474-Call-to-undefined-function-tidy_parse_string()How enable the PHP Tidy extension for MAMPInstalling Tidy 2.0 PHP extension on Ubuntu 10.10

奇怪的error之Parse error: syntax error, unexpected $end

Parse error: syntax error, unexpected $end。

這個奇怪錯誤訊息,
出現在我把一個原本使用較低版本的php寫的網站移植到版本較高的php的server。
天吶!四處怎麼點頁面都是這個error,真是差點瘋掉。
是不是php版本問題,我不確定,因為這次的環境跟之前不一樣,除了php版本不同之外,之前是用window當server,而現在是用Linux當server。

後來的解決方式是一頁一頁檢查是不是所有的php tag都是完整的。
所謂完整就是:
<?php //content ?>

因為我有幾個php的tag漏了php,只寫<? //content ?>,這就是造成我這些error的重大兇手。
這件事告訴我以後寫php多謹慎一點,像今天這種情況,就是我平常累積的壞習慣造成的,謹記在心。




如果你也有這個error,提供以下連結讓您參考:

PHP Parse Error: syntax error, unexpected $end 错误解决Parse error: parse error, unexpected $end  (個人蠻推薦這篇的,解釋蠻完整的。)Parse error : Syntax error, Unexpected end of file in PHP [closed]

Joomla! 3,來換個語系好了(英文切換繁中)

不知道為什麼架在windows上的joomla!3在換語系上面非常的順暢,反之使用mac時一直出現問題(也許是檔案權限或是有的沒的),後來也沒換成功><

以下簡報供您參考: 連結

Joomla! 3.X.X 安裝初體驗與步驟分享

這應該是我第一次認真用架站吧...以前沒有特別需要會想要用這個。
安裝了一整晚加上整理文件弄到12點多(昏)
在這裡先補上我的投影片: 連結

 我的環境等等...
作業系統使用的是windows7。裝上XAMPP的1.8.2。使用的php是5.4.16。目前用的是joomla 3.1.5,總之以3以上為主,目前還不考慮用2.5。心路歷程:
php版本很重要。遇到怪bug不如重裝符合需求的環境,因為網路上的回答常常千奇百怪,一點小錯誤會引發的原因有很多種,這時後就是不要發懶,與其東補西補不如砍掉重練(重裝符合環境的XAMPP或是appserv)。有了XAMPP跟appserv什麼都幫你包好了... ,而且用xampp跟appserv的好處是不管你是資料庫進不去還是忘記資料庫密碼還是環境跟joomla不合還是甚麼大大小小問題只要uninstall之後再重裝其他版本的就好。需要耐心.... 第一次解壓縮下來的joomla,會有一個installation資料夾,那也是安裝介面的路徑(ex:http://localhost/myjoomla/installation),初學第一次安裝使用他們的介面一步一步走感覺很方便,我原本以為我自己寫一些設定在他們的config資料夾之類的。祝您也安裝成功! 晚安地球人

event.preventDefault()跟return false的差別是?

不知道大家知不知道event.preventDafault()跟return false的差別是什麼?
有的話歡迎一起討論,可以一起長知識XD

這個問題很有趣,是我這幾天工作突然在stackoverflow看到有人發問,特別把網址存起來想說有時間再回來看。老實說我也不是很清楚這兩者的真正差別(一整個亂用XD)。

我只記得以前自己看書做網頁上的某個表單送出,會先自己寫個驗證,哪個欄位沒有填就要有個alert,然後不能讓表單送出,所以那時候學會了return false。:p
至於preventDefault()是我在前一間公司學到的經驗,就是我在一個有好幾個父元素的某個標籤(ex.<a>),綁定了click事件,結果並沒有如我預期發生,產生了一些詭異的現象,那時候還以為是syntax的bug,因為那時候不懂冒泡事件。
by the way, 大家可以參考我去年寫的note(><):

先不管冒泡事件,拉回正題繼續討論event.preventDafault v.s return false!
大家可以參考一下這篇文章 :
event.preventDefault() vs. return false 我大概用中文解釋一下這篇的內容:

event.preventDefault()會阻擋預設要發生的事件.event.stopPropagation()會阻擋發生冒泡事件.而return false則是前面兩者的事情他都會做:他會做 event.preventDefault();他會做 event.stopPropagation();停止callback function的執行並且立即return回來

不要總是偏好使用某一種方式,什麼時候該用什麼,還是要視你的目標跟預期狀況而決定。

相關參考:

jQuery Events: Stop (Mis)Using Return False[jQuery] Re: Any benefit to using event.preventDefault() over "return false" to cancel out an href click?
這篇是John Resig回應的一個問題,他的回答是return false也做了event.preventDefault()跟event.stopPro…

當網站的畫面有跑版或其他前端相關的bug,該如何處理?

做前端如果一直遇到莫名bug,會是一件很麻煩的事情.
可以的話就要盡量debug,問題出在哪都還不確定,盡量別推說是瀏覽器的錯:P
所以當網站的畫面有跑版或其他前端相關的bug,該如何處理?

我這裡提供一些我自己的方法:

若是跑版問題,是否該檢查一下html結構是符合邏輯的(ex: 行內元素v.s塊級元素; tag沒包好...etc),會不會當初為了趕出prototype而做出來所以沒搞好架構。瞭解你下過的css以及從別的地方copy過來的css,有時候可以注意 :hover 跟 :active 或 :focus 是不是下過了什麼css,這種事情還蠻容易被忽略。z-index; 浮動(float); clearfix; position:absolute v.s relative等等之類的問題。你的css所使用的單位,不要沒下:active時是用px, :active時卻是em,單位要多注意。是不是在其他地方使用了important或是再之後載入的css把它override了? (使用開發人員工具多檢測)每個瀏覽器都可能有自己的預設的html tag樣式,你是否已經reset了。瞭解你的程式碼...注意是否有用jQuery的selector去控制某Dom的css,以及其執行的時間點。是不是使用其他JavaScript Framework或是library有影響畫面的?上社群問人。找stackoverflow(推!)。問同事。上線前還有機會debug,(如果你還有精神加班的話)別太快放棄。 感謝Caesar分享他的經驗,特此補上幾點:)
check js error is or not ( chrome developer tool)clear cookie and session and local strorageopen incognito windowswitch another browser
目前就這些了 有想到我在補上來:P 也歡迎大家提供自己的想法.