allow randomness to be limited, because sql's OFFSET N is O(n)
This commit is contained in:
		
							parent
							
								
									e6411c32aa
								
							
						
					
					
						commit
						9341c408b9
					
				| @ -101,12 +101,15 @@ class Image | |||||||
|         return ($row ? new Image($row) : null); |         return ($row ? new Image($row) : null); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static function by_random(array $tags=[]): ?Image |     public static function by_random(array $tags=[], int $limit_range=0): ?Image | ||||||
|     { |     { | ||||||
|         $max = Image::count_images($tags); |         $max = Image::count_images($tags); | ||||||
|         if ($max < 1) { |         if ($max < 1) { | ||||||
|             return null; |             return null; | ||||||
|         }		// From Issue #22 - opened by HungryFeline on May 30, 2011.
 |         }		// From Issue #22 - opened by HungryFeline on May 30, 2011.
 | ||||||
|  |         if ($max > $limit_range) { | ||||||
|  |             $max = $limit_range; | ||||||
|  |         } | ||||||
|         $rand = mt_rand(0, $max-1); |         $rand = mt_rand(0, $max-1); | ||||||
|         $set = Image::find_images($rand, 1, $tags); |         $set = Image::find_images($rand, 1, $tags); | ||||||
|         if (count($set) > 0) { |         if (count($set) > 0) { | ||||||
|  | |||||||
| @ -395,7 +395,7 @@ class TagList extends Extension | |||||||
|             } |             } | ||||||
|             $h_tag = html_escape($row['tag']); |             $h_tag = html_escape($row['tag']); | ||||||
|             $link = $this->tag_link($row['tag']); |             $link = $this->tag_link($row['tag']); | ||||||
|             $image = Image::by_random([$row['tag']]); |             $image = Image::by_random([$row['tag']], 100); | ||||||
|             if (is_null($image)) { |             if (is_null($image)) { | ||||||
|                 continue; |                 continue; | ||||||
|             } // one of the popular tags has no images
 |             } // one of the popular tags has no images
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user