36
|
建議 / 要求與建議 / 討論區搜尋問題
|
於: 十一月 04, 2006, 09:00:18 上午
|
Sorry, 這個問題與 LifeType 無關, 不過我在 "站務建議" 那區無法發表新主題 (設定有誤嗎? 不能讓人發表, 要怎麼讓人建議?)
早上要搜尋 "迴響" 時, 發現會說明有 7 頁, 但是選擇 2-7 頁時, 都會出現沒有相符的結果. 原本以為是中文搜尋有關, 不過, 剛剛用別的中文又查了一次, 並不會有這個問題.
|
|
|
41
|
支援 / 安裝與設定 / Re: 哪裡可以下載 lifetype1.1 的gallery外掛
|
於: 十月 19, 2006, 03:08:37 下午
|
可以抓 LifeType 1.1 svn 的 plugins 裡頭的 gallery 那個目錄出來用 (在 unported 目錄裡頭). 這個不用做任何修改就可以在 1.1 中使用. (我之前回報過 1.1 的一個 bug, 與這個外掛有關, 會造成 gallery 不能用, 不過後來把 LifeType 有關這個的問題修正後, gallery 完全不用動就可以使用了: http://bugs.lifetype.net/view.php?id=976在 bug 修正後, 我也回覆說 gallery 外掛可以正常使用. 不過... 它還是一直被放在 unported 裡頭. PS. 沒記錯的話, 1.0.x 使用的 gallery 外掛與 1.1 用的應該是一樣的. 沒印象有什麼需要改的 (1.0->1.1 外掛好像 API 只有一個地方有差別, 忘了這個有沒有用到).
|
|
|
43
|
開發 / 外掛程式 / 修改 LifeType 的 AuthImage, 使用 Better Captcha 的圖形
|
於: 十月 16, 2006, 01:33:37 下午
|
在 PHPBB 有一個 Better Captcha MOD, 所產生的識別碼圖形, 並不會像 FreeCap 所產生的那般, 十分難辨識. 而 LifeType 本身的 AuthImage 所產生的圖形, 又太有規律. 所以, 打算讓 AuthImage 產生圖形的方式, 用 Better Captcha 方式來產生. 首先, 先到這兒抓取 Better Captcha. 抓回解開之後, 把 fonts 這個目錄放到 authimage 的目錄下頭. 然後修改 pluginauthimage.class.php 如下: --- authimage.old/pluginauthimage.class.php 2006-07-05 10:19:57.000000000 +0800 +++ authimage/pluginauthimage.class.php 2006-10-16 14:20:28.744067612 +0800 @@ -8,7 +8,10 @@ define( "AUTHIMAGE_FILE", "/plugins/authimage/authimage.php" ); define( "AUTHIMAGE_BACKGROUND_FOLDER", PLOG_CLASS_PATH."plugins/authimage/backgrounds/" ); - +// twu2 20061016 begin + define( "AUTHIMAGE_FONT_FOLDER", PLOG_CLASS_PATH."plugins/authimage/fonts/" ); +// twu2 20061016 end + /** * Plugin that offers comment authentication image for current blog * Original Author: Gudlyf http://www.gudlyf.com/index.php?p=376 @@ -93,8 +96,9 @@ function show() { $authImageUrl = $this->generateImageUrl(); + //return '<img src="'.$authImageUrl.'" style="vertical-align:middle;" width="70px" height="20px" alt="authimage" />'; if ( $authImageUrl ) - return '<img src="'.$authImageUrl.'" style="vertical-align:middle;" width="70px" height="20px" alt="authimage" />'; + return '<img src="'.$authImageUrl.'" style="vertical-align:middle;" alt="authimage" />'; else return 'You don\'t have GD support compiled in, we cannot create an authimage. Please activate GD Support.'; } @@ -103,6 +107,16 @@ // Delete those cached authimage files that never used $this->deleteExpiredAuthImage($this->expiredTime); +// twu2 20061016 begin + $code = $this->generateCode(); + $encrypt = $this->encrypt($code, $this->key); + if ( function_exists ( 'ImageGIF' ) ) + $image_format = 'gif'; + else + $image_format = 'png'; + $tempFile = $this->cacheFolder."/".$encrypt.".".$image_format; + $this->captcha_createimage($code, $image_format, $tempFile); +/* old method for image $code = $this->generateCode(); $encrypt = $this->encrypt($code, $this->key); $background = AUTHIMAGE_BACKGROUND_FOLDER.$this->default; @@ -125,6 +139,8 @@ } else { ImageGIF($image, $tempFile); } +*/ +// twu2 20061016 end $temp = fopen($tempFile,"rb"); $buffer = fread($temp,filesize($tempFile)); fclose($temp); @@ -137,7 +153,10 @@ // Now chmod it so it can be deleted later by the user chmod($tempFile, 0666); - header("Content-type: image/gif"); +// twu2 20061016 begin + //header("Content-type: image/gif"); + header("Content-type: image/".$image_format); +// twu2 20061016 end echo $buffer; } @@ -150,7 +169,14 @@ function generateCode() { $code = ""; - for($i=0; $i < $this->length; $i++) $code .= rand(0,9); +// twu2 20061016 begin + //for($i=0; $i < $this->length; $i++) $code .= rand(0,9); + //$hash = "0123456789"; + //$hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + $hash = "0123456789ABCDEFGHKMNPQRWXYZ"; + $len = strlen($hash) - 1; + for($i=0; $i < $this->length; $i++) $code .= $hash[rand(0,$len)]; +// twu2 20061016 end return $code; } @@ -168,6 +194,135 @@ closedir($handle); } } + +// twu2 20061016 begin + function captcha_createimage($code, $image_format, $tempFile) + { + $breedte = rand(256, 384); + $hoogte = rand(64, 96); + $img = imagecreatetruecolor($breedte,$hoogte); + $achtergrond = imagecolorallocate($img, $this->captcha_color("bg"), $this->captcha_color("bg"), $this->captcha_color("bg")); + + imagefilledrectangle($img, 0, 0, $breedte-1, $hoogte-1, $achtergrond); + $hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + $hash_len = strlen($hash); + for($g = 0;$g < 30; $g++) + { + $t = $hash[rand(0, $hash_len)]; + + $ypos = rand(0,$hoogte); + $xpos = rand(0,$breedte); + + $kleur = imagecolorallocate($img, $this->captcha_color("bgtekst"), $this->captcha_color("bgtekst"), $this->captcha_color("bgtekst")); + + if (!($g % 2)) + { + $scribx = rand(0,($breedte*2)); + $scriby = rand(0,($hoogte*2)); + + $wibblex = rand(0,($breedte*2)); + $wibbley = rand(0,($hoogte*2)); + + imageline($img, rand(0, $scribx-$xpos), rand(0, $scriby+$ypos), rand(0, $wibblex), rand(0, $wibbley), $kleur+$g); + imageellipse($img, rand(0, $scribx+$xpos), rand(0, $scriby-$ypos), rand(0, $scriby), rand(0, $scribx), $kleur-$g); + } + + imagettftext($img, $this->captcha_size(), $this->captcha_move(), $xpos, $ypos, $kleur, $this->captcha_font(), $t); + } + $stukje = $breedte / (strlen($code) + 3); + + for($j = 0;$j < strlen($code); $j++) + { + $tek = $code[$j]; + $ypos = rand(32,$hoogte-8); + $xpos = $stukje * ($j+2); + + $kleur2 = imagecolorallocate($img, $this->captcha_color("tekst"), $this->captcha_color("tekst"), $this->captcha_color("tekst")); + + imagettftext($img, $this->captcha_size(), $this->captcha_move(), $xpos, $ypos, $kleur2, $this->captcha_font() , $tek); + } + + if ($image_format == 'gif') + imagegif($img, $tempFile); + else + imagepng($img, $tempFile); + imagedestroy($img); + } + + /** + * Some functions :) + * Also orginally written by mastercode.nl + **/ + /** + * Function to create a random color + * @auteur mastercode.nl + * @param $type string Mode for the color + * @return int + **/ + function captcha_color($type) + { + switch($type) + { + case "bg": + $kleur = rand(224,255); + break; + case "tekst": + $kleur = rand(0,127); + break; + case "bgtekst": + $kleur = rand(200,224); + break; + default: + $kleur = rand(0,255); + break; + } + return $kleur; + } + /** + * Function to ranom the size + * @auteur mastercode.nl + * @return int + **/ + function captcha_size() + { + $grootte = rand(24,32); + return $grootte; + } + /** + * Function to random the posistion + * @auteur mastercode.nl + * @return int + **/ + function captcha_move() + { + $draai = rand(-25,25); + return $draai; + } + /** + * Function to return a ttf file from fonts map + * @auteur mastercode.nl + * @return string + **/ + function captcha_font() + { + $f = @opendir(AUTHIMAGE_FONT_FOLDER); + $ar = array(); + while(($file = @readdir($f)) !== false) + { + if(!in_array($file,array('.','..')) && eregi('.ttf',$file)) + { + $ar[] = $file; + } + } + if(count($ar)) + { + shuffle($ar); + $i = rand(0,(count($ar) - 1)); + return AUTHIMAGE_FONT_FOLDER . $ar[$i]; + } + } +// twu2 20061016 end + } ?> patch 可以到這兒抓: http://www.teatime.com.tw/~tommy/mypatch/lifetype_authimage_better_captcha.patch我修改了 generateCode() 的部份, 讓出現的字串為數字與大寫的英文字母, 但是把其中幾個比較容易弄錯的字母移除. 如果你想修改出現的字串, 請修改這個 function 內的 $hash 變數值就可以.
|
|
|
|
|
|