67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Zotlabs\Widget;
 | |
| 
 | |
| require_once('include/photos.php');
 | |
| 
 | |
| class Photo_rand {
 | |
| 
 | |
| 	function widget($arr) {
 | |
| 
 | |
| 		$style = false;
 | |
| 
 | |
| 		if(array_key_exists('album', $arr) && isset($arr['album']))
 | |
| 			$album = $arr['album'];
 | |
| 		else
 | |
| 			$album = '';
 | |
| 
 | |
| 		$channel_id = 0;
 | |
| 		if(array_key_exists('channel_id', $arr) && intval($arr['channel_id']))
 | |
| 			$channel_id = intval($arr['channel_id']);
 | |
| 		if(! $channel_id)
 | |
| 			$channel_id = \App::$profile_uid;
 | |
| 		if(! $channel_id)
 | |
| 			return '';
 | |
| 
 | |
| 		$scale = ((array_key_exists('scale',$arr)) ? intval($arr['scale']) : 0);
 | |
| 
 | |
| 		$ret = photos_list_photos(array('channel_id' => $channel_id),\App::get_observer(),$album);
 | |
| 
 | |
| 		$filtered = array();
 | |
| 		if($ret['success'] && $ret['photos'])
 | |
| 		foreach($ret['photos'] as $p)
 | |
| 			if($p['imgscale'] == $scale)
 | |
| 				$filtered[] = $p['src'];
 | |
| 
 | |
| 		if($filtered) {
 | |
| 			$e = mt_rand(0, count($filtered) - 1);
 | |
| 			$url = $filtered[$e];
 | |
| 		}
 | |
| 
 | |
| 		if(strpos($url, 'http') !== 0)
 | |
| 			return '';
 | |
| 	
 | |
| 		if(array_key_exists('style', $arr) && isset($arr['style']))
 | |
| 			$style = $arr['style'];
 | |
| 	
 | |
| 		// ensure they can't sneak in an eval(js) function
 | |
| 
 | |
| 		if(strpos($style,'(') !== false)
 | |
| 			return '';
 | |
| 	
 | |
| 		$url = zid($url);
 | |
| 
 | |
| 		$o = '<div class="widget">';
 | |
| 
 | |
| 		$o .= '<img class="zrl" '
 | |
| 			. (($style) ? ' style="' . $style . '"' : '')
 | |
| 			. ' src="' . $url . '" alt="' . t('photo/image') . '">';
 | |
| 
 | |
| 		$o .= '</div>';
 | |
| 
 | |
| 		return $o;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| 
 |