New caching system for photos
This commit is contained in:
		
					parent
					
						
							
								5635fe250c
							
						
					
				
			
			
				commit
				
					
						46c5a97a20
					
				
			
		
					 4 changed files with 29 additions and 5 deletions
				
			
		
							
								
								
									
										15
									
								
								boot.php
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								boot.php
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -520,6 +520,19 @@ if(! class_exists('App')) {
 | 
			
		|||
			$this->is_tablet = $mobile_detect->isTablet();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function get_basepath() {
 | 
			
		||||
 | 
			
		||||
			$basepath = get_config("system", "basepath");
 | 
			
		||||
 | 
			
		||||
			if ($basepath == "")
 | 
			
		||||
				$basepath = $_SERVER["DOCUMENT_ROOT"];
 | 
			
		||||
 | 
			
		||||
			if ($basepath == "")
 | 
			
		||||
				$basepath = $_SERVER["PWD"];
 | 
			
		||||
 | 
			
		||||
			return($basepath);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function get_baseurl($ssl = false) {
 | 
			
		||||
 | 
			
		||||
			$scheme = $this->scheme;
 | 
			
		||||
| 
						 | 
				
			
			@ -1895,7 +1908,7 @@ function clear_cache($basepath = "", $path = "") {
 | 
			
		|||
			$fullpath = $path."/".$file;
 | 
			
		||||
			if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != ".."))
 | 
			
		||||
				clear_cache($basepath, $fullpath);
 | 
			
		||||
			if ((filetype($fullpath) == "file") and filectime($fullpath) < (time() - $cachetime))
 | 
			
		||||
			if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime)))
 | 
			
		||||
				unlink($fullpath);
 | 
			
		||||
		}
 | 
			
		||||
		closedir($dh);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -854,8 +854,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// replace the special char encoding
 | 
			
		||||
 | 
			
		||||
	$s = htmlspecialchars($s,ENT_QUOTES,'UTF-8');
 | 
			
		||||
	$s = htmlspecialchars($s,ENT_NOQUOTES,'UTF-8');
 | 
			
		||||
	return $s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,6 +105,9 @@ function poller_run(&$argv, &$argc){
 | 
			
		|||
	// clear old item cache files
 | 
			
		||||
	clear_cache();
 | 
			
		||||
 | 
			
		||||
	// clear cache for photos
 | 
			
		||||
	clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
 | 
			
		||||
 | 
			
		||||
	$manual_id  = 0;
 | 
			
		||||
	$generation = 0;
 | 
			
		||||
	$hub_update = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,7 @@ function photo_init(&$a) {
 | 
			
		|||
	global $_SERVER;
 | 
			
		||||
 | 
			
		||||
	$prvcachecontrol = false;
 | 
			
		||||
	$file = "";
 | 
			
		||||
 | 
			
		||||
	switch($a->argc) {
 | 
			
		||||
		case 4:
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +21,7 @@ function photo_init(&$a) {
 | 
			
		|||
			break;
 | 
			
		||||
		case 2:
 | 
			
		||||
			$photo = $a->argv[1];
 | 
			
		||||
			$file = $photo;
 | 
			
		||||
			break;
 | 
			
		||||
		case 1:
 | 
			
		||||
		default:
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +44,6 @@ function photo_init(&$a) {
 | 
			
		|||
		exit;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	$default = 'images/person-175.jpg';
 | 
			
		||||
 | 
			
		||||
	if(isset($type)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +95,7 @@ function photo_init(&$a) {
 | 
			
		|||
		foreach( Photo::supportedTypes() as $m=>$e){
 | 
			
		||||
			$photo = str_replace(".$e",'',$photo);
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		if(substr($photo,-2,1) == '-') {
 | 
			
		||||
			$resolution = intval(substr($photo,-1,1));
 | 
			
		||||
			$photo = substr($photo,0,-2);
 | 
			
		||||
| 
						 | 
				
			
			@ -115,6 +116,8 @@ function photo_init(&$a) {
 | 
			
		|||
				intval($resolution)
 | 
			
		||||
			);
 | 
			
		||||
 | 
			
		||||
			$public = ($r[0]['allow_cid'] == '') AND ($r[0]['allow_gid'] == '') AND ($r[0]['deny_cid']  == '') AND ($r[0]['deny_gid']  == '');
 | 
			
		||||
 | 
			
		||||
			if(count($r)) {
 | 
			
		||||
				$data = $r[0]['data'];
 | 
			
		||||
				$mimetype = $r[0]['type'];
 | 
			
		||||
| 
						 | 
				
			
			@ -198,6 +201,12 @@ function photo_init(&$a) {
 | 
			
		|||
		header("Cache-Control: max-age=31536000");
 | 
			
		||||
	}
 | 
			
		||||
	echo $data;
 | 
			
		||||
 | 
			
		||||
	// If the photo is public and there is an existing photo directory store the photo there
 | 
			
		||||
	if ($public and ($file != ""))
 | 
			
		||||
		if (is_dir($_SERVER["DOCUMENT_ROOT"]."/photo"))
 | 
			
		||||
			file_put_contents($_SERVER["DOCUMENT_ROOT"]."/photo/".$file, $data);
 | 
			
		||||
 | 
			
		||||
	killme();
 | 
			
		||||
	// NOTREACHED
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue