Ejemplo n.º 1
0
 public function getExistentFilenames($F, $pid)
 {
     //if no filenames already exists in target then the result will be an empty array
     $rez = array();
     foreach ($F as $f) {
         if ($this->fileExists($pid, $f['name'], @$f['dir'])) {
             $rez[] = $f;
         }
     }
     switch (sizeof($rez)) {
         case 0:
             break;
         case 1:
             //single match: retreive match info for content
             //(if matches with current version or to an older version)
             $existentFileId = $this->getFileId($pid, $rez[0]['name'], @$rez[0]['dir']);
             $rez[0]['existentFileId'] = $existentFileId;
             $file = DM\Files::read($existentFileId);
             $content = DM\FilesContent::read($file['content_id']);
             $md5 = $this->getFileMD5($rez[0]);
             $data = array();
             if ($md5 == $content['md5']) {
                 $data = $file;
                 $data['text'] = L\get('FileContentsIdentical');
             }
             if (empty($rez[0]['msg'])) {
                 $version = DM\FilesVersions::getVersionByMD5($existentFileId, $md5);
                 if (!empty($version)) {
                     $data = $version;
                     $data['text'] = L\get('FileContentsIdenticalToAVersion');
                 }
             }
             if (!empty($data)) {
                 $user = User::getDisplayName($data['cid']);
                 $agoTime = Util\formatAgoTime($data['cdate']);
                 $rez[0]['msg'] = str_replace(array('{timeAgo}', '{user}'), array($agoTime, $user), $data['text']);
             }
             /* suggested new filename */
             $subdirId = $pid;
             if (!empty($rez[0]['dir'])) {
                 $subdirId = $this->getFileId($pid, '', $rez[0]['dir']);
             }
             $rez[0]['suggestedFilename'] = Objects::getAvailableName($subdirId, $rez[0]['name']);
             /* end of suggested new filename */
             break;
         default:
             // multiple files match
             break;
     }
     return $rez;
 }