public function browseDocuments($interactif_id, $visiteur_id_param = "", $params = array('page_size' => 100, 'offset' => 1)) { $sf_root_dir = sfConfig::get('sf_root_dir') . '/web/interactif'; $host_url = 'http://' . sfConfig::get('app_front_url') . '/interactif'; $finder = new sfFinder(); $finder->follow_link(); $dirs = array(); $visiteur_id = ''; $path = '/' . $interactif_id . '/'; //die($sf_root_dir.$path); $cpt_offset = 0; $cpt_page_size = 0; $old_visiteur = ''; foreach ($finder->in($sf_root_dir . $path . '/' . $visiteur_id_param) as $file) { //echo 'search in '. $file; if (is_file($file)) { //echo $file .' == ' . $sf_root_dir.$path .'<br>'; $filepath = str_replace($sf_root_dir . $path, "", $file); //echo $filepath. ' <br>'; $split = explode("/", $filepath); //print_r($split); if (count($split) < 2) { continue; } $cpt_offset++; //echo "\n OFFSET= ".$cpt_offset . ' <= '.$params['offset']; if ($cpt_offset <= $params['offset']) { continue; } if (count($split) > 1) { if ($cpt_page_size < $params['page_size']) { //echo "\n PAGESIZE= ".$cpt_page_size . ' < '.$params['page_size']; if ($visiteur_id_param == '') { $visiteur_id = $split[0]; } else { $visiteur_id = $visiteur_id_param; } $visiteur = array(); if ($old_visiteur != $visiteur_id) { $visiteur_info = Doctrine::getTable('Visiteur')->findOneByGuid($visiteur_id); if ($visiteur_info) { $visiteur = array('pseudo_son' => $visiteur_info->getPseudoSon()); } } $old_visiteur = $visiteur_id; $filename = $split[1]; if ($filename == '.DS_Store') { continue; } $url_path = str_replace('//', '/', $path . '/' . $visiteur_id . '/' . $filename); $result = array("url" => $host_url . $url_path, "creation_date" => date("Y-m-d H:i:s", filemtime($file))); $dirs["visiteurs"][$visiteur_id][] = array_merge($visiteur, $result); } $cpt_page_size++; } } } //print_r($dirs); return $dirs; }