/** * 指定されたファイルの文字コードをSjis-winからUTF-8に変換したテンポラリファイルを作成して返す * * @param string $filePath ファイルパス * @return TemporaryFile 文字コードをUTF8に変換したテンポラリファイル */ public static function getTemporaryFileConvertSjisWin2Utf8($filePath) { $tmp = new TemporaryFile(); $fp = fopen($filePath, 'r'); while (($line = fgets($fp)) !== false) { $line = mb_convert_encoding($line, 'UTF-8', 'sjis-win'); $tmp->append($line); } return $tmp; }
/** * Create a new temporary file from an article file. * @param $articleFile object * @param $userId int * @return object The new TemporaryFile or false on failure */ function articleToTemporaryFile($articleFile, $userId) { // Get the file extension, then rename the file. $fileExtension = $this->parseFileExtension($articleFile->getFileName()); if (!$this->fileExists($this->filesDir, 'dir')) { // Try to create destination directory $this->mkdirtree($this->filesDir); } $newFileName = basename(tempnam($this->filesDir, $fileExtension)); if (!$newFileName) { return false; } if (copy($articleFile->getFilePath(), $this->filesDir . $newFileName)) { $temporaryFileDao =& DAORegistry::getDAO('TemporaryFileDAO'); $temporaryFile = new TemporaryFile(); $temporaryFile->setUserId($userId); $temporaryFile->setFileName($newFileName); $temporaryFile->setFileType($articleFile->getFileType()); $temporaryFile->setFileSize($articleFile->getFileSize()); $temporaryFile->setOriginalFileName($articleFile->getOriginalFileName()); $temporaryFile->setDateUploaded(Core::getCurrentDate()); $temporaryFileDao->insertTemporaryFile($temporaryFile); return $temporaryFile; } else { return false; } }
/** * Internal function to return a TemporaryFile object from a row. * @param $row array * @return TemporaryFile */ function &_returnTemporaryFileFromRow(&$row) { $temporaryFile = new TemporaryFile(); $temporaryFile->setId($row['file_id']); $temporaryFile->setFileName($row['file_name']); $temporaryFile->setFileType($row['file_type']); $temporaryFile->setFileSize($row['file_size']); $temporaryFile->setUserId($row['user_id']); $temporaryFile->setOriginalFileName($row['original_file_name']); $temporaryFile->setDateUploaded($this->datetimeFromDB($row['date_uploaded'])); HookRegistry::call('TemporaryFileDAO::_returnTemporaryFileFromRow', array(&$temporaryFile, &$row)); return $temporaryFile; }
/** * CsvFileWriter constructor. * * @param array $options folder => CSVファイルを生成するフォルダ header => array(key => ヘッダ名) ヘッダ&カラム名 */ public function __construct($options = array()) { $folderPath = Hash::get($options, 'folder', null); parent::__construct($folderPath); $this->_options = $options; if (Hash::get($this->_options, 'header', false)) { // headerオプションが指定されてたらヘッダ出力 $this->add($this->_options['header']); } }
/** * Upload the file and add it to the database. * @param $fileName string index into the $_FILES array * @param $userId int * @return object The new TemporaryFile or false on failure */ function handleUpload($fileName, $userId) { // Get the file extension, then rename the file. $fileExtension = $this->parseFileExtension($this->getUploadedFileName($fileName)); if (!$this->fileExists($this->filesDir, 'dir')) { // Try to create destination directory $this->mkdirtree($this->filesDir); } $newFileName = basename(tempnam($this->filesDir, $fileExtension)); if (!$newFileName) { return false; } if ($this->uploadFile($fileName, $this->filesDir . $newFileName)) { $temporaryFileDao =& DAORegistry::getDAO('TemporaryFileDAO'); $temporaryFile = new TemporaryFile(); $temporaryFile->setUserId($userId); $temporaryFile->setFileName($newFileName); $temporaryFile->setFileType($_FILES[$fileName]['type']); $temporaryFile->setFileSize($_FILES[$fileName]['size']); $temporaryFile->setOriginalFileName(TemporaryFileManager::truncateFileName($_FILES[$fileName]['name'], 127)); $temporaryFile->setDateUploaded(Core::getCurrentDate()); $temporaryFileDao->insertTemporaryFile($temporaryFile); return $temporaryFile; } else { return false; } }
/** * Removes Expired Temporary files * @return int The count of removed Entries */ protected static function removeExpired() { $now = self::toDatetime(time()); $oldEntries = TableMng::query("SELECT * FROM SystemTemporaryFiles WHERE until < '{$now}'"); $deletedEntries = 0; if (count($oldEntries)) { foreach ($oldEntries as $entry) { $temp = TemporaryFile::load($entry['ID']); $temp->remove(); $deletedEntries += 1; } } return $deletedEntries; }
/** * create a PDF for the Message * @todo Refactor this Code */ protected function createPdf($user, $uid) { try { require_once PATH_INCLUDE . '/pdf/tcpdf/config/lang/ger.php'; require_once PATH_INCLUDE . '/pdf/tcpdf/tcpdf.php'; // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('LeG Uelzen'); $pdf->SetKeywords(''); // set default header data $pdf->SetHeaderData('../../../res/images/logo.jpg', 15, 'LeG Uelzen', "Abmeldung von: " . $user['forename'] . " " . $user['name'] . "\nKlasse: " . $user['grade'], array(0, 0, 0), array(0, 0, 0)); $pdf->setFooterData($tc = array(0, 0, 0), $lc = array(0, 0, 0)); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set some language-dependent strings $pdf->setLanguageArray($l); // --------------------------------------------------------- // set default font subsetting mode $pdf->setFontSubsetting(true); // Set font // dejavusans is a UTF-8 Unicode font, if you only need to // print standard ASCII chars, you can use core fonts like // helvetica or times to reduce file size. $pdf->SetFont('helvetica', '', 11, '', true); // Add a page // This method has several options, check the source code documentation for more information. $pdf->AddPage(); // set text shadow effect $pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.2, 'depth_h' => 0.2, 'color' => array(196, 196, 196), 'opacity' => 1, 'blend_mode' => 'Normal')); // Set some content to print $html = '<p align="center"><h2>Rückgabe der LeG-Card / Löschung der Benutzerdaten</h2></p><br>' . 'Hiermit wird bestätigt, dass die Schulbücher von ' . $user['forename'] . ' ' . $user['name'] . ' vollständig zurückgegeben wurden. <br/> Hiermit wird bestätigt, dass sämtliche personenbezogenen Daten am ' . date("d.m.Y") . ' aus dem System gelöscht wurden.<br/>'; if ($user['credit'] == "0.00") { $html .= 'Es liegt kein Restguthaben vor.<br/>'; } else { $html .= 'Es liegt ein Restguthaben in Höhe von ' . $user['credit'] . ' € vor. Dieses muss beim Caterer abgeholt werden.<br/>'; } $html .= 'Mit der Rückgabe der LeG-Card kann das Pfandgeld in Höhe von 3,50 € zzgl. 0,50 €, je nach Zustand der Hülle, ausbezahlt werden.<br/> <hr> <p align="center"><h3>Auszahlung des Restguthabens</h3></p><br> Restguthaben in Höhe von ' . $user['credit'] . ' € am ___.___.2013 erhalten.<br><br> <br> Unterschrift Caterer <br><hr> <p align="center"><h3>Pfanderstattung</h3></p><br> Bitte geben Sie diesen Abschnitt im Lessing-Gymnasium ab.<br> Bitte kreuzen Sie an, ob Sie den Pfandbetrag an die Schülergenossenschaft Gnissel des LeG Uelzen spenden möchten oder eine Überweisung auf ein Bankkonto wünschen.<br> [ ] Das Pfandgeld möchte ich an Gnissel spenden<br> [ ] Ich möchte das Pfandgeld auf folgendes Konto überwiesen haben:<br> Kontoinhaber: <br> Kontonummer:<br> BLZ: <br> Kreditinstitut: <br><br> Uelzen, den ___.___.2013 Unterschrift Elternteil bzw. volljähriger Schüler<br> <hr> <p align="center"><h3>Abschnitt für den Caterer</h3></p><br> Restguthaben in Höhe von ' . $user['credit'] . ' € am ___.___.2013 erhalten.<br><br> <br><br>Unterschrift Elternteil bzw. volljähriger Schüler '; // Print text using writeHTMLCell() $pdf->writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', $html, $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true); // --------------------------------------------------------- // Close and output PDF document // This method has several options, check the source code documentation for more information. $pdfStr = $pdf->Output('deleted_' . $uid . '.pdf', 'S'); $file = TemporaryFile::init($pdfStr, time(), strtotime('+1 day'), "delete-PDF for User with ID \"{$uid}\""); $fileId = $file->store(); return $fileId; } catch (Exception $e) { die(json_encode(array('value' => 'error', 'message' => 'Konnte die Abschieds-PDF-Datei nicht generieren' . $e->getMessage()))); } }