'\\"', "\n" => "", "\r" => "")); } public function export($path=false) { if (!$path) { $path = LENCRIER_DATA_ROOT . '/documents/'.$this->id.'/export-journal-'.$this->id.'.lencrier'; } $fp = gzopen($path, 'w9'); gzputs($fp, "##lencrier.backup.header.v2\n"); gzputs($fp, "##lencrier.backup.section.journal\n"); $journal = $this->getJournalResume(); gzputs($fp, "title=".$this->escape($journal['titre'])."\n"); $i = 1; while ($ecrit = $this->getEcrit()) { gzputs($fp, "##lencrier.backup.section.ecrit.".$i.".metas\n"); gzputs($fp, 'title="'.$this->escape($ecrit['titre'])."\"\n"); gzputs($fp, 'date="'.date(DATE_W3C, (int)$ecrit['date'])."\"\n"); gzputs($fp, 'status="'.(int)$ecrit['status']."\"\n"); gzputs($fp, "##lencrier.backup.section.ecrit.".$i.".content.html\n"); gzputs($fp, rtrim($ecrit['texte_html']) . "\n"); $i++; } $i = 1; $parents = array(); while ($message = $this->getMessageForum(true)) { $parents[$message['id']] = $i; $parent = 0; if ($message['parent'] != 0 && isset($parents[$message['parent']])) { $parent = $parents[$message['parent']]; } gzputs($fp, "##lencrier.backup.section.forum.".$i.".metas\n"); gzputs($fp, 'title="'.$this->escape($message['titre'])."\"\n"); gzputs($fp, 'name="'.$this->escape($message['nom'])."\"\n"); gzputs($fp, 'contact="'.$this->escape($message['contact'])."\"\n"); gzputs($fp, 'date="'.date(DATE_W3C, (int)$message['date'])."\"\n"); gzputs($fp, 'parent="'.(int)$parent."\"\n"); gzputs($fp, 'nbreplies="'.(int)$message['reponses']."\"\n"); gzputs($fp, 'lastreply="'.date(DATE_W3C, (int)$message['dernier_message'])."\"\n"); gzputs($fp, 'ip="'.$this->escape($message['ip'])."\"\n"); gzputs($fp, 'status="'.(int)$message['status']."\"\n"); gzputs($fp, 'uri="'.$this->escape($message['uri'])."\"\n"); gzputs($fp, "##lencrier.backup.section.forum.".$i.".content.html\n"); gzputs($fp, rtrim($message['texte_html']) . "\n"); $i++; } $i = 1; $documents_path = utils::getJournalDatasPath($this->id); $files = utils::recurseListFiles($documents_path); foreach ($files as $file) { $filename = basename($file); $dir = str_replace($documents_path . '/', '', dirname($file)); if (preg_match('!^export-journal-!i', $filename)) { continue; } gzputs($fp, "##lencrier.backup.section.file.$i.metas\n"); gzputs($fp, "name=".$this->escape(basename($file))."\n"); gzputs($fp, "directory=".$this->escape($dir)."\n"); gzputs($fp, "hash=".md5_file($file)."\n"); gzputs($fp, "##lencrier.backup.section.file.$i.content\n"); $f = fopen($file, 'rb'); stream_copy_to_stream($f, $fp, 10 * 1024 * 1024); fclose($f); gzputs($fp, "\n"); $i++; } gzclose($fp); return true; } } ?>