--- /dev/null
+<?php
+
+/*
+
+Jappix - An open social platform
+This is the PHP script used to generate a chat log
+
+-------------------------------------------------
+
+License: AGPL
+Author: Vanaryon
+Last revision: 26/08/11
+
+*/
+
+// PHP base
+define('JAPPIX_BASE', '..');
+
+// Get the needed files
+require_once('./functions.php');
+require_once('./read-main.php');
+require_once('./read-hosts.php');
+
+// Optimize the page rendering
+hideErrors();
+compressThis();
+
+// Not allowed for a special node
+if(isStatic() || isUpload())
+ exit;
+
+// Create the HTML file to be downloaded
+if(isset($_POST['content']) && isset($_POST['xid']) && !empty($_POST['xid']) && isset($_POST['nick']) && !empty($_POST['nick']) && isset($_POST['avatar']) && !empty($_POST['avatar']) && isset($_POST['date']) && !empty($_POST['date']) && isset($_POST['type']) && !empty($_POST['type'])) {
+ // Get the POST vars
+ $original = $_POST['content'];
+ $xid = $_POST['xid'];
+ $nick = $_POST['nick'];
+ $avatar = $_POST['avatar'];
+ $date = $_POST['date'];
+ $type = $_POST['type'];
+
+ // Generate the XID link
+ $xid_link = 'xmpp:'.$xid;
+
+ if($type == 'groupchat')
+ $xid_link .= '?join';
+
+ // Generates the avatar code
+ if($avatar != 'none')
+ $avatar = '<div class="avatar-container">'.$avatar.'</div>';
+ else
+ $avatar = '';
+
+ // Generates an human-readable date
+ $date = explode('T', $date);
+ $date = explode('-', $date[0]);
+ $date = $date[2].'/'.$date[1].'/'.$date[0];
+
+ // Generate some values
+ $content_dir = '../store/logs/';
+ $filename = 'chat_log-'.md5($xid.time());
+ $filepath = $content_dir.$filename.'.html';
+
+ // Generate Jappix logo Base64 code
+ $logo = base64_encode(file_get_contents(JAPPIX_BASE.'/img/sprites/logs.png'));
+
+ // Create the HTML code
+ $new_text_inter =
+'<!DOCTYPE html>
+<html>
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>'.$nick.' ('.$xid.')</title>
+ <style type="text/css">
+ * {
+ margin: 0;
+ padding: 0;
+ }
+
+ body {
+ background-color: #424242;
+ font-family : Verdana, Arial, Helvetica, sans-serif;
+ font-size: 0.8em;
+ text-shadow: 0 0 5px white;
+ color: white;
+ margin: 8px;
+ padding: 8px 12px;
+ }
+
+ a {
+ color: white;
+ }
+
+ #head {
+
+ }
+
+ #head .avatar-container {
+ text-align: center;
+ float: left;
+ height: 70px;
+ width: 70px;
+ margin-right: 18px;
+ }
+
+ #head .avatar {
+ max-height: 70px;
+ max-width: 70px;
+ }
+
+ #head h1 {
+ font-size: 2.2em;
+ margin: 0;
+ text-shadow: 1px 1px 1px black;
+ }
+
+ #head h3 {
+ font-size: 0.95em;
+ margin: 0;
+ }
+
+ #head h5 {
+ font-size: 0.9em;
+ margin: 8px 0 16px 0;
+ }
+
+ #head h3,
+ #head h5 {
+ text-shadow: 0 0 1px black;
+ }
+
+ #head a.logo {
+ position: absolute;
+ top: 16px;
+ right: 20px;
+ }
+
+ #content {
+ background-color: #e8f1f3;
+ color: black;
+ padding: 14px 18px;
+ border-radius: 4px;
+ clear: both;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ box-shadow: 0 0 20px #202020;
+ -moz-box-shadow: 0 0 20px #202020;
+ -webkit-box-shadow: 0 0 20px #202020;
+ }
+
+ #content a {
+ color: black;
+ }
+
+ #content .one-group {
+ border-bottom: 1px dotted #d0d0d0;
+ padding-bottom: 8px;
+ margin-bottom: 10px;
+ }
+
+ #content .one-group b.name {
+ display: block;
+ margin-bottom: 4px;
+ }
+
+ #content .one-group b.name.me {
+ color: #123a5c;
+ }
+
+ #content .one-group b.name.him {
+ color: #801e1e;
+ }
+
+ #content .one-group span.date {
+ float: right;
+ font-size: 0.9em;
+ }
+
+ #content .user-message {
+ margin-bottom: 3px;
+ }
+
+ #content .system-message {
+ color: #053805;
+ margin-bottom: 3px;
+ padding-left: 0 !important;
+ }
+
+ #content .system-message a {
+ color: #053805;
+ }
+
+ .hidden {
+ display: none !important;
+ }
+ </style>
+</head>
+
+<body>
+ <div id="head">
+ '.$avatar.'
+
+ <h1>'.$nick.'</h1>
+ <h3><a href="'.$xid_link.'">'.$xid.'</a></h3>
+ <h5>'.$date.'</h5>
+
+ <a class="logo" href="https://project.jappix.com/" target="_blank">
+ <img src="data:image/png;base64,'.$logo.'" alt="" />
+ </a>
+ </div>
+
+ <div id="content">
+ '.$original.'
+ </div>
+</body>
+</html>'
+;
+
+ $new_text = stripslashes($new_text_inter);
+
+ // Write the code into a file
+ file_put_contents($filepath, $new_text);
+
+ // Security: remove the file and stop the script if too bit (+6MiB)
+ if(filesize($filepath) > 6000000) {
+ unlink($filepath);
+ exit;
+ }
+
+ // Return to the user the generated file ID
+ exit($filename);
+}
+
+?>