protected function get_file_name_param()
 {
     if (isset($_GET['token'])) {
         $medium = new Medien();
         $medium->loadByToken($_GET['token']);
         return $medium->me_dateiname;
     } else {
         return null;
     }
 }
 /**
  * Lädt die anzuzeigenenden Dateien. Entweder nur die im übergebenen Ordner
  * oder falls das Rekursiv-Flag gesetzt ist auch alle Dateien in untergeordneten
  * Ordnern
  * @param int $ordner -1 der Klassen-Ordner, sonst die ID
  */
 public function loadDateien($ordner = -1)
 {
     if ($ordner == -1) {
         $this->dateien = array();
         $ordner = $this->ordner;
     }
     $medien = new Medien();
     $this->dateien = array_merge($this->dateien, $medien->loadByFilter(array('kollektion' => $ordner)));
     if ($this->rekursiv) {
         $unterordner = new Kollektion();
         $unterordner = $unterordner->loadByFilter(array('parent' => $ordner));
         foreach ($unterordner as $aktOrdner) {
             $this->loadDateien($aktOrdner->id);
         }
     }
 }
 /**
  * @param string $title
  * @param string $file
  * @return Medien|null
  */
 public function newMedium($title, $file)
 {
     $this->verzeichnisseAnlegen();
     $path = pathinfo($file);
     $medien = new Medien();
     $medien->me_kollektion = $this->id;
     $medien->me_titel = $title;
     $medien->me_dateiname = $path['basename'];
     $medien->me_erweiterung = strtolower($path['extension']);
     $medien->me_groesse = filesize($file);
     $medien->save();
     if (copy($file, 'medien/' . $this->id . '/' . $path['basename'])) {
         return $medien;
     } else {
         return null;
     }
 }
 protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, $index = null, $content_range = null)
 {
     // TODO: Refactor!
     if (isset(Application::getCurrentRequest()->target) && Application::getCurrentRequest()->target != '') {
         $name = Application::getCurrentRequest()->target;
     }
     $file = parent::handle_file_upload($uploaded_file, $name, $size, $type, $error, $index, $content_range);
     if (empty($file->error) && $this->kollektionId > 0) {
         $medium = new Medien();
         $medium->me_kollektion = $this->kollektionId;
         $medium->me_titel = $file->name;
         $medium->me_dateiname = $file->name;
         $medium->me_erweiterung = strtolower(substr(strrchr($name, '.'), 1));
         $medium->me_groesse = $file->size;
         $medium->me_upload_am = date('d.m.Y');
         $medium->me_upload_von = Security::getUserId();
         if (isset(Application::getCurrentRequest()->token) && Application::getCurrentRequest()->token != '') {
             $medium->me_token = Application::getCurrentRequest()->token;
         }
         $medium->save();
         $file->id = $medium->id;
     }
     return $file;
 }
 /**
  * Löscht abgelaufene Dateien
  */
 public function removeExpiredShares()
 {
     $buffer_days = 15;
     $medien = Medien::filter(array('share' => 1));
     $send = false;
     $nachricht = "Folgende abgelaufene Dateien wurden automatisch gelöscht: \n\n";
     foreach ($medien as $medium) {
         $invalid = strtotime($medium->me_valid_until);
         if (strtotime("+" . $buffer_days . "days", $invalid) < time()) {
             $nachricht .= $medium->me_titel . "\n";
             $medium->delete();
             $send = true;
         }
     }
     if ($send) {
         $empfaenger = Configuration::get('mail.shareInfo');
         $betreff = '[' . Configuration::get('site.title') . '] Geteilte Dateien wurden gelöscht';
         return PhpMailer::getInstance()->sendMail($empfaenger, $betreff, $nachricht);
     }
 }