/**
  * Loads a news page object.
  *
  * @param string $dataDir Defines the dir, where the news content is located.
  * @param int $page Desired page number.
  *
  * @return NewsItem The NewsItem domain object.
  * @throws IncludeException In case no news files are found.
  *
  * @author Christian Achatz
  * @version
  * Version 0.1, 02.02.2007<br />
  * Version 0.2, 18.09.2008 (Introduced variable data dir)<br />
  * Version 0.3, 23.08.2012 (Change to new File-/Folder-class)<br />
  */
 public function getNewsByPage($dataDir, $page)
 {
     // cut trailing slash if necessary
     if (substr($dataDir, strlen($dataDir) - 1) == '/') {
         $dataDir = substr($dataDir, 0, strlen($dataDir) - 1);
     }
     // read all files located there
     $folder = new Folder();
     $rawFiles = $folder->open($dataDir)->getContent();
     // get files, that match the current language
     /* @var $files FilesystemItem[] */
     $files = [];
     foreach ($rawFiles as $data) {
         if (substr_count($data->getName(), 'news_' . $this->getLanguage() . '_') > 0) {
             $files[] = $data;
         }
     }
     // throw error when page count is zero!
     $newsCount = count($files);
     if ($newsCount == 0) {
         throw new IncludeException('[NewsPagerProvider::getNewsByPage()] No news files are ' . 'given for language ' . $this->getLanguage(), E_USER_ERROR);
     }
     // if page number is lower then zero, correct it!
     if ($page <= 0) {
         $page = 1;
     }
     // if page number is higher then max, correct it!
     if ($page > $newsCount) {
         $page = $newsCount;
     }
     // read content of file
     $rawItem = json_decode(file_get_contents($dataDir . '/' . $files[$page - 1]->getName()));
     // fill a new news content object
     $item = new NewsItem();
     $item->setHeadline($rawItem->headline);
     $item->setSubHeadline($rawItem->subline);
     $item->setContent($rawItem->content);
     $item->setNewsCount($newsCount);
     return $item;
 }
 /**
  * Löscht die Übergebene Datei. Wird nichts übergeben, werden alle Datein gelöscht.
  *
  * @param string $uploadname
  *
  * @author Werner Liemberger <*****@*****.**>
  * @version 1.0, 14.03.2011<br>
  * @version 1.1, 14.08.2012 (Change to new File-/Folder-class)<br>
  */
 public function deleteFile($uploadname = null)
 {
     $uploadpath = $this->getUploadPath();
     if ($uploadname === null) {
         $folder = new Folder();
         $files = $folder->open($uploadpath)->getContent();
         foreach ($files as $file) {
             if (file_exists($file)) {
                 $file->delete();
             }
         }
     } else {
         if (file_exists($uploadpath . '/' . $uploadname)) {
             $file = new File();
             $file->open($uploadpath . '/' . $uploadname)->delete();
         }
     }
     $this->deleteFileFromSession($uploadname);
 }