//sort results by date usort($datas, 'RSS::date_sort'); //cut some items $datas = array_splice($datas, 0, $num); //parse template and collect results $outputs = array(); foreach ($datas as $param) { //translate rss date (Fri, 01 Apr 2011 14:13:08 +0400) to readable view //need $dateFormat. If no $dateFormat - don't touch date $param[date] = RSS::format_date($param[date], $dateFormat); if ($tpl) { //has chunk array_push($outputs, $modx->parseChunk($tpl, $param, '[+', '+]')); } else { //no chunk, use default template array_push($outputs, RSS::parse_tpl($default_tpl, $param)); } } //join results to string $output = implode($outputs, "\n\n"); //if cache is on if ($cacheAge) { //store cache for future generations! $cache->set($baseurl, $output); } } return $output; /**********************/ //Class incapsulating functions to avoid coincidence of functions names class RSS {