- <?php 
-   
- class ul_rip { 
-   
- /* 
- 	** DUTCH ** 
- 	Deze class kan een plaatje die verwerken die is geupload of van een andere website komt.  
- 	Er word ook een thumbnail gegenereert, er kan met een apparte aanvraag ook een update worden gedaan in het database. door de extensie erbij te laden 
-   
- 	Wanneer de classe als eerste word aangeroepen moeten er twee variabelen gegeven worden :: 
- 		Eerste parameter		: 	de dir waar de foto uit eindelijk heen moet(  interne dir ) 
- 		Tweede parameter	: 	de dir waar de foto uit eindelijk heen moet(  HTTP ) ( optioneel , wanneer gegeven zal de class een array retourneren met bestand naam, url voor de foto en thumb ) 
- 	De dir voor de thumbnails zal automatisch worden genomen : dir waar de foto komt en in die dir de dir thumbs 
- 	De dir's moeten correct ge chmod zijn 
-   
- 	Er kunnen dan 2 functies worden aangeroepen :: 
- 		rip_file			:	zal de foto van een externe locatie kopieren en verwerken 
- 		ul_file			:	zal de foto van een interne locatie ( upload formulier ) verwerken 
- 	Deze functies hebben dezelfde parameters 
- 		Eerste parameter		:	locatie van het bestand 
- 		Tweede parameter	:	nieuwe naam van het bestand, (  OPTIONEEL ) 
- 	Ze zullen het nieuwe bestand returnen 
-   
- 	** ENLISH ** 
- 	This class is able to load an image and copy it to the website and proces it 
- 	A thumbnail will be generated, by adding the extension you can olso update the mysql db 
-   
- 	When the class is first called 2 variables must be givin :: 
- 		First parameter		:	dir where the image should end up ( internal dir ) 
- 		Second parameter		:	dir where the image should end up ( HTTP ) ( optional, when given the class will return an array with the image name, and urls for the image and thumb ) 
- 	De dir for the thumbnails will be automaticily selected, the dir where the image will be stored and in there the folder thumbs 
- 	The dirs must be correctly chmodded 
-   
- 	Then 2 functions can be can be called : 
- 		rip_file			:	will copy an image from an external location and proces it 
- 		ul_file			:	will proces an internal image e.g : upload form 
- 	These functions both have the same parameters : 
- 		First parameter		:	location of the image 
- 		Second parameter		:	the new name of the image, ( extension is needed if the first parameter doesn't contain a extension else file will end up not having an extension e.g. in an upload form ) ( OPTIONAL ) 
- 	They will return the new filename 
-   
- 	Created by Sc0tTy on 26-09-2006 
- 	Last modified on 03-10-2006 
- 	www.SenS-Design.nl 
- */ 
-   
- 	// Classe starten en de settings goedzetten 
- 	function ul_rip( $pro_dir , $pro_url = FALSE ) { 
-   
- 		 $this->pro_dir = $pro_dir; 
- 		 $this->pro_url = $pro_url; 
- 	} 
-   
- 	function rip_file() { 
-   
- 		// Argumenten in array zetten 
-   
- 		// Kijken of de inhoud van het bestand kan worden gelezen 
- 		@$handle = fopen ( $this->arguments[0], "r" ); 
- 		if ( !$handle ) { 
- 			return FALSE; 
- 		} 
-   
- 		// Bestand inlezen 
- 		if ( !$file ) { 
- 			return FALSE; 
- 		} 
-   
- 		// Naam pakken 
- 		$this->get_name(); 
-   
- 		// Tijdelijk bestand aanmaken 
- 		$wfile = fopen( $this->file , "w" ); 
-   
- 		// Kopieren 
-   
- 		// Handler sluiten 
-   
- 		//  Het geuploade bestand verwerken 
- 		$this->handle_file(); 
-   
- 		return $this->arr_names; 
- 	} 
-   
- 	function ul_file() { 
-   
- 		// Argumenten in array zetten 
-   
- 		// Naam pakken 
- 		$this->get_name(); 
-   
- 		// Plaatje naar dir zetten en hernoemen 
- 		rename( $this->arguments[0] , $this->file ); 
-   
- 		//  Het geuploade bestand verwerken 
- 		$this->handle_file(); 
-   
- 		return $this->arr_names; 
- 	} 
-   
- 	// Naam pakken 
- 	function get_name() { 
-   
- 		// Naam en extensie opslaan 
- 		$arr_name = explode( '/' , $this->arguments[0] ); 
- 		$arr_name = explode( '.' , $name ); 
- 		$this->name = $arr_name[0]; 
- 		if ( $this->arguments[1] ) { 
- 			$arr_name = explode( '.' , $this->arguments[1] ); 
- 			$this->name = $arr_name[0]; 
- 		} 
-   
- 		// Naam vast zetten 
- 		$this->file = $this->pro_dir . $this->name . '.jpg'; 
-   
- 		// Array voor retourneren vastzetten 
- 		$this->arr_names = $this->name . '.jpg'; 
- 		if ( $this->pro_url ) { 
- 			$this->arr_names = array( 
- 				$this->name . '.jpg' , 
- 				$this->pro_url . $this->name . '.jpg' , 
- 				$this->pro_url . 'thumbs/' . $this->name . '.jpg' 
- 			); 
- 		} 
- 	} 
-   
- 	function handle_file() { 
-   
- 		// Plaatje zonodig verkleinen 
- 		$this->resize_file(); 
-   
- 		// Thumbnail maken 
- 		$this->create_thumb(); 
-   
- 		// Chmodden 
- 		chmod( $this->file , 0777 ); 
- 		chmod( $this->thumb , 0777 ); 
- 	} 
-   
- 	function resize_file() { 
-   
- 		if ( !isset( $min_width ) ) { 
- 			$min_width = 1; 
- 			$up_width = 0.1; 
- 		} 
-   
- 		// Verkleinen tot dat file size minder of gelijk is aan 131072 ( 128kb ) 
- 		if ( filesize( $this->file ) > 131073 ) { 
-   
- 			// Foto aanmaken 
- 			$type = $type['mime']; 
-   
- 			switch ( $type ) { 
- 				case 'image/png' : $image = imagecreatefrompng( $this->file ); break; 
- 				case 'image/bmp' : $image = imagecreatefromwbmp( $this->file ); break; 
- 				case 'image/gif' : $image = imagecreatefromgif( $this->file ); break; 
- 				case 'image/jpeg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 				case 'image/jpg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 				case 'image/pjpeg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 			} 
- 			if ( !$image ) { 
- 				die ( "ERROR :: An error occured when trying to read the files image construction." );  
- 			} 
-   
- 			//Hoogte n breedte 
- 			$width = imagesx( $image ); 
- 			$height = imagesy( $image ); 
-   
- 			// Hoogte en breedte uitrekenen 
- 			$nwidth = intval( $width/$min_width ); 
- 			$tmp = $width/$nwidth; 
- 			$nheight = intval( $height/$tmp ); 
-   
- 			// Maak blanke image 
- 			$newsize = imagecreatetruecolor( $nwidth , $nheight ); 
- 			if ( !$newsize ) { 
- 				die ( "ERROR :: An error occured when trying to create a blank image." );  
- 			} 
-   
- 			// Verkleinen 
- 			$result = imagecopyresampled( $newsize, $image, 0, 0, 0, 0, $nwidth, $nheight, $width, $height ); 
- 			if ( !$result ) { 
- 				die ( "ERROR :: An error occured when trying to resize and write the original image to the blank image." );  
- 			} 
-   
- 			// Opslaan 
- 			$result = imagejpeg( $newsize , $this->file . '_temp' , 100 ); 
- 			if ( !$result ) { 
- 				die ( "ERROR :: An error occured when trying to write new image to the original file." );  
- 			} 
-   
- 			//Opschonen 
- 			imagedestroy( $newsize ); 
- 			imagedestroy( $image ); 
-   
- 			// Kijken of hij kleiner is 
- 			if ( filesize( $this->file . '_temp' ) > 131073 ) { 
- 				$min_width *= filesize( $this->file )/131073; 
- 				$this->resize_file(); 
- 			} else { 
- 				rename( $this->file . '_temp' , $this->file ); 
- 			} 
- 		} 
- 	} 
-   
- 	function create_thumb() { 
-   
- 		// Foto aanmaken 
- 		$type = $type['mime']; 
-   
- 		switch ( $type ) { 
- 			case 'image/png' : $image = imagecreatefrompng( $this->file ); break; 
- 			case 'image/bmp' : $image = imagecreatefromwbmp( $this->file ); break; 
- 			case 'image/gif' : $image = imagecreatefromgif( $this->file ); break; 
- 			case 'image/jpeg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 			case 'image/jpg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 			case 'image/pjpeg' : $image = imagecreatefromjpeg( $this->file ); break; 
- 		} 
- 		if ( !$image ) { 
- 			die ( "ERROR :: An error occured when trying to read the files image construction." );  
- 		} 
-   
- 		//Hoogte n breedte 
- 		$width = imagesx( $image ); 
- 		$height = imagesy( $image ); 
-   
- 		// Hoogte en breedte uitrekenen 
- 		$nwidth = 255; 
- 		$tmp = $width/$nwidth; 
- 		$nheight = $height/$tmp; 
-   
- 		if ( $nheight > 200 ) { 
- 			$tmp = $nheight/200; 
- 			$nwidth /= $tmp; 
- 			$nheight = 200; 
- 		} 
-   
- 		// Maak blanke image 
- 		$thumb = imagecreatetruecolor( $nwidth , $nheight ); 
- 		if ( !$thumb ) { 
- 			die ( "ERROR :: An error occured when trying to create a blank image." );  
- 		} 
-   
- 		// Verkleinen 
- 		$result = imagecopyresampled( $thumb, $image, 0, 0, 0, 0, $nwidth, $nheight, $width, $height ); 
- 		if ( !$result ) { 
- 			die ( "ERROR :: An error occured when trying to resize and write the original image to the blank image." );  
- 		} 
-   
- 		// Thumbnail locatie noteren 
- 		$this->thumb = $this->pro_dir . 'thumbs/' . $this->name . '.jpg'; 
-   
- 		// Wegschrijven 
- 		$result = imagejpeg( $thumb , $this->thumb ); 
-   
- 		if ( !$result ) { 
- 			die ( "ERROR :: An error occured when trying to write new image to the original file." );  
- 		} 
-   
- 		//Opschonen 
- 		imagedestroy( $thumb ); 
- 		imagedestroy( $image ); 
- 	} 
- } 
-   
- // Update de mysql tabel 
- class ul_rip_update extends ul_rip { 
-   
- 	function update() { 
- 		/* 
- 			THIS IS AN EXAMPLE , WHEN YOU GIVE THE URL IN THE CLASS , YOU COULD USE THE ARRAY 
-   
- 			DIT IS EEN VOORBEELD, WANNEER JE DE URL GEEFT KUN JE DE ARRAY GEBRUIKEN 
- 		*/ 
-   
- 		// Database updaten 
- 		$result = mysql_secure_query( 
- 		" 
- 			UPDATE 
- 				YOUR TABLE 
- 			SET 
- 				foto = '?' , 
- 				thumb = '?' 
- 			WHERE 
- 				artnr = ? 
- 			LIMIT 1 
- 		", 
- 			$this->pro_url . $this->name . '.jpg', 
- 			$this->pro_url . 'thumb/' . $this->name . '.jpg', 
- 			$this->arguments[1] 
- 		); 
-   
- 		if ( !$result ) { 
- 			return FALSE; 
- 		} 
- 		return TRUE; 
- 	} 
- } 
-   
-   
- ?>