Exemplo n.º 1
0
 /**
  * 指定されたファイルの文字コードを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;
     }
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * 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;
     }
 }
Exemplo n.º 6
0
 /**
  * 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;
 }
Exemplo n.º 7
0
    /**
     * 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&uuml;ckgabe der LeG-Card / L&ouml;schung der Benutzerdaten</h2></p><br>' . 'Hiermit wird best&auml;tigt, dass die Schulb&uuml;cher von ' . $user['forename'] . ' ' . $user['name'] . ' vollst&auml;ndig zur&uuml;ckgegeben wurden. <br/>
	Hiermit wird best&auml;tigt, dass s&auml;mtliche personenbezogenen Daten am ' . date("d.m.Y") . ' aus dem System gel&ouml;scht wurden.<br/>';
            if ($user['credit'] == "0.00") {
                $html .= 'Es liegt kein Restguthaben vor.<br/>';
            } else {
                $html .= 'Es liegt ein Restguthaben in H&ouml;he von ' . $user['credit'] . ' &euro; vor. Dieses muss beim Caterer abgeholt werden.<br/>';
            }
            $html .= 'Mit der R&uuml;ckgabe der LeG-Card kann das Pfandgeld in H&ouml;he von 3,50 &euro; zzgl. 0,50 &euro;, je nach Zustand der H&uuml;lle, ausbezahlt werden.<br/>
<hr>
<p align="center"><h3>Auszahlung des Restguthabens</h3></p><br>
Restguthaben in H&ouml;he von ' . $user['credit'] . ' &euro; 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&uuml;lergenossenschaft Gnissel des LeG Uelzen spenden m&ouml;chten
		oder eine &Uuml;berweisung auf ein Bankkonto w&uuml;nschen.<br>

[&nbsp;&nbsp;] Das Pfandgeld m&ouml;chte ich an Gnissel spenden<br>
[&nbsp;&nbsp;] Ich m&ouml;chte das Pfandgeld auf folgendes Konto &uuml;berwiesen haben:<br>
Kontoinhaber:   <br>
Kontonummer:<br>
BLZ:		<br>
Kreditinstitut: <br><br>

Uelzen, den ___.___.2013
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unterschrift Elternteil bzw. vollj&auml;hriger Sch&uuml;ler<br>


<hr>
<p align="center"><h3>Abschnitt f&uuml;r den Caterer</h3></p><br>
 Restguthaben in H&ouml;he von ' . $user['credit'] . ' &euro; am ___.___.2013 erhalten.<br><br>
		<br><br>Unterschrift Elternteil bzw. vollj&auml;hriger Sch&uuml;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())));
        }
    }