列出文章
				 | 
			 
			
				| 
					頁: [1] 2 
				 | 
			 
		 
		
		
		
		
			
				
					
						
							| 
								4
							 | 
							
								 開發 / 外掛程式 / Re: 讓 authimage 顯示中文的數字
							 | 
							
								於: 三月 12, 2007, 07:51:33 上午
							 | 
						 
						
							
								我有看到那篇, 不過, 我也是用 debian/etch, 並沒有自己重編 php, 都使用內建的模組, 並沒有與你一樣的問題.
  apt装的lamp会装上很多php模块的,我的虽然是在debian下,但apache和php是自己编译的所以会遇到这个问题 希望twu2继续多出好东西啊 :)  
							 | 
						 
						
							| 
							 | 
						 
					 
				 | 
			 
		 
		
		
			
				
					
						
							| 
								6
							 | 
							
								 開發 / 外掛程式 / Re: 修改 LifeType 的 AuthImage, 使用 Better Captcha 的圖形
							 | 
							
								於: 三月 11, 2007, 10:28:38 上午
							 | 
						 
						
							
								这个是我改好的for 1.0的pluginauthimage.class.php文件,有需要的朋友可以直接拿来用了,数字1有时有点难看,我也去掉了 <?php
      include_once( PLOG_CLASS_PATH."class/plugin/pluginbase.class.php" );     include_once( PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" ); 	include_once( PLOG_CLASS_PATH."class/dao/model.class.php" ); 	include_once( PLOG_CLASS_PATH."class/net/rawrequestgenerator.class.php" );     include_once( PLOG_CLASS_PATH."class/misc/glob.class.php" );     include_once( PLOG_CLASS_PATH."plugins/authimage/class/security/authimagefilter.class.php" );	
      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      * Modified by: Mark Wu      */     class PluginAuthImage extends PluginBase     {         var $pluginEnabled;         var $default;         var $cacheFolder;                  function PluginAuthImage()         {             $this->PluginBase();                          $this->id = "authimage";             $this->author = "Mark Wu";             $this->desc = 'This plugin offers extra comment authentication for pLog. The idea is inspired by <a href="http://www.gudlyf.com/index.php?p=376">WordPress AuthImage Plugin</a> written by Gudlyf.';
              $this->locales = Array( "en_UK" , "zh_TW" , "zh_CN", "es_ES" );                          $this->init();                       }
  		function init() 		{ 			// register the filter 			$this->registerFilter( "AuthImageFilter" );
              $this->registerAdminAction( "authimage", "PluginAuthImageConfigAction" ); 			$this->registerAdminAction( "updateAuthImageConfig", "PluginAuthImageUpdateConfigAction" ); 			$this->registerBlogAction( "AuthImageShow", "PluginAuthImageShowAction" ); 			 			$menu =& Menu::getMenu(); 			if( !$menu->entryExists( "/menu/controlCenter/manageAntiSpamPlugins" ))						 				$this->addMenuEntry( "/menu/controlCenter", "manageAntiSpamPlugins", "", "", true, false );			             $this->addMenuEntry( "/menu/controlCenter/manageAntiSpamPlugins", "AuthImage", "?op=authimage", "" ); 		}   		function register() 		{             $config =& Config::getConfig();             $this->cacheFolder = $config->getValue('temp_folder'); 			$this->cacheFolder = $this->cacheFolder.'/authimage/'.$this->blogInfo->getId(); 			if( !File::exists( $this->cacheFolder )) { 				File::createDir( $this->cacheFolder ); 			} 		     		    $blogSettings = $this->blogInfo->getSettings(); 			$this->pluginEnabled = $blogSettings->getValue( "plugin_authimage_enabled" ); 			$this->length = $blogSettings->getValue( "plugin_authimage_length" ); 			$this->key = $blogSettings->getValue( "plugin_authimage_key" ); 			$this->default = $blogSettings->getValue( "plugin_authimage_default" ); 		}
  	    function isEnabled() 	    { 	        return $this->pluginEnabled; 	    }
          function pluginTemplatePage( $template )         {  			$rg = new RawRequestGenerator($this->blogInfo);                      	$rg->addParameter( "op", "AuthImageShow" );             $rg->addParameter( "blogId", $this->blogInfo->getId());
              $templatePage = $rg->getIndexUrl().$rg->getRequest();
              return $templatePage;         }
          function show() { 		$authImageUrl = $this->generateImageUrl();         $authImage = $this->pluginTemplatePage( "authimage" );               if ( $authImageUrl ) 			  return '<img src="'.$authImageUrl.'" style="vertical-align:middle;" alt="authimage" />'; else  			  return ' you did not have gd support';         }
          function showImage() { 		// 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);         /*    $code = $this->generateCode();             $encrypt = $this->encrypt($code, $this->key);             $background = AUTHIMAGE_BACKGROUND_FOLDER.$this->default;            $tempFile = $this->cacheFolder."/".$encrypt.".gif";
              if(function_exists ( 'imagecreatefromgif' )){                 $image = @imagecreatefromgif($background) or die("Cannot Initialize new GD image stream"); 			} 			else if(function_exists ( 'imagecreatefrompng' )){                 $image = @imagecreatefrompng($background) or die("Cannot Initialize new GD image stream");              } else { 			  die("Server doesn't support GIF or PNG creation. Sorry.");             }                                     $textColor = imageColorAllocate($image, 0x00, 0x00, 0x00);             ImageString($image, 5, 7, 2, $code, $textColor);
              if ( !function_exists ( 'ImageGIF' ) ) {                 ImagePNG($image, $tempFile);             } else {               ImageGIF($image, $tempFile);             } */             $temp = fopen($tempFile,"rb");             $buffer = fread($temp,filesize($tempFile));             fclose($temp);                // Now zero-length the file. No need for its content anymore.             $temp = fopen($tempFile,"w");             fwrite($temp, NULL);             fclose($temp);
              // Now chmod it so it can be deleted later by the user             chmod($tempFile, 0666);              	// twu2 20061016 begin 	            //header("Content-type: image/gif"); 	            header("Content-type: image/".$image_format); 	// twu2 20061016 end
  	echo $buffer;         }
          // encrypt string         function encrypt($string, $key) {             $plainText = $string.$key;             $encodeText = md5($plainText);             return $encodeText;         }         	         function generateCode() {             $code = "";             // twu2 20061016 begin 			            //for($i=0; $i < $this->length; $i++) $code .= rand(0,9); 			       //$hash = "0123456789"; 			      //$hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 			       $hash = "03456789ABCDEFGHKMNPQRWXYZ"; 			       $len = strlen($hash) - 1; 			            for($i=0; $i < $this->length; $i++) $code .= $hash[rand(0,$len)]; 			// twu2 20061016 end
  			return $code;         }                          function deleteExpiredAuthImage( $expiretime ) {             $path = PLOG_CLASS_PATH . $this->cacheFolder;             if ( is_dir($path) )              {                  $handle=opendir($path);                  while (false!==($file = readdir($handle))) {                      if ($file != "." && $file != ".." && $file != "index.htm") {                           $diff = time() - filectime("$path/$file");                         if ($diff > $expiretime) unlink("$path/$file");                     }                  }                 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 generateImageUrl() 				 { 			    $rg = new RawRequestGenerator($this->blogInfo); 	            $rg->addParameter( "op", "AuthImageShow" ); 	            $rg->addParameter( "blogId", $this->blogInfo->getId()); 				$imageUrl = $rg->getIndexUrl().$rg->getRequest();                 if ( !function_exists ('gd_info') ) {               // We don't have gd support compiled in, lets 			// inform the user about it              return false;             }             return 			$imageUrl; 			 }
  		        /** 		          * 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 		
      }          ?>
   
							 | 
						 
						
							| 
							 | 
						 
					 
				 | 
			 
		 
		
			
				
					
						
							| 
								7
							 | 
							
								 開發 / 外掛程式 / Re: 修改 LifeType 的 AuthImage, 使用 Better Captcha 的圖形
							 | 
							
								於: 三月 11, 2007, 10:19:59 上午
							 | 
						 
						
							| 
								 编译php的时候加如下参数就好了
  --with-gd --enable-gd-native-ttf --with-png --with-zlib-dir=/usr/ --with-ttf --with-jpeg-dir=/usr/ --with-freetype-dir=/usr/ --with-xpm-dir=/usr/X11R6/
  这个是debian里的,其他发行版估计位置会不一样
  感谢twu2的插件 
							 | 
						 
						
							| 
							 | 
						 
					 
				 | 
			 
		 
		
		
		
		
		
		
			
				
					
						
							| 
								13
							 | 
							
								 支援 / 使用與操作 / Re: 无法输入\字符的问题
							 | 
							
								於: 十一月 12, 2006, 08:12:03 下午
							 | 
						 
						
							| 
								 多谢了 twu2你的blog的code标签是怎么做的啊? 能否告知? 我那边的blog估计也要经常帖代码,这个挺爽的。 
							 | 
						 
						
							| 
							 | 
						 
					 
				 | 
			 
		 
		
		
		
				 | 
			 
		  | 
	 
  
         |