function.randomize.php 948 Bytes
<?php
function smarty_function_randomize($params, &$smarty) {
	if (!isset($params['var']) || strlen($params['var']) <= 0) {
		return ;
	}
	
	if (isset($params['from']) && is_array($params['from']) && count($params['from']) > 1) {
		if (isset($params['sub_place']) && is_numeric($params['sub_place'])) {
			$temp = array();
			foreach ($params['from'] as $key => $value) {
				if ($value['sub_place'] == $params['sub_place']) {
					$temp[$key] = $value;
				}
			}
			
			if (count($temp) == 1) {
				$temp = array_keys($temp);
				$smarty->assign($params['var'], $temp[0]);
			} elseif (count($temp) > 1) {
				$temp = array_keys($temp);
				$smarty->assign($params['var'], $temp[rand(0, count($temp) - 1)]);
			} else {
				$smarty->assign($params['var'], rand(0, (count($params['from']) - 1)));
			}
		} else {
			$smarty->assign($params['var'], rand(0, (count($params['from']) - 1)));
		}
	} else {
		$smarty->assign($params['var'], 0);
	}
}
?>