/** * 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); }